Data mining - linguaggio di query
Il Data Mining Query Language (DMQL) è stato proposto da Han, Fu, Wang, et al. per il sistema di data mining DBMiner. Il Data Mining Query Language è in realtà basato sullo Structured Query Language (SQL). I linguaggi di query di data mining possono essere progettati per supportare il data mining interattivo e ad hoc. Questo DMQL fornisce i comandi per specificare le primitive. Il DMQL può funzionare anche con database e data warehouse. DMQL può essere utilizzato per definire attività di data mining. In particolare, esaminiamo come definire data warehouse e data mart in DMQL.
Sintassi per la specifica dei dati rilevanti per l'attività
Ecco la sintassi di DMQL per specificare i dati rilevanti per l'attività:
use database database_name
or
use data warehouse data_warehouse_name
in relevance to att_or_dim_list
from relation(s)/cube(s) [where condition]
order by order_list
group by grouping_list
Sintassi per specificare il tipo di conoscenza
Qui discuteremo la sintassi per caratterizzazione, discriminazione, associazione, classificazione e previsione.
Caratterizzazione
La sintassi per la caratterizzazione è:
mine characteristics [as pattern_name]
analyze {measure(s) }
La clausola di analisi specifica le misure aggregate, come count, sum o count%.
Ad esempio:
Description describing customer purchasing habits.
mine characteristics as customerPurchasing
analyze count%
Discriminazione
La sintassi per la discriminazione è:
mine comparison [as {pattern_name]}
For {target_class } where {t arget_condition }
{versus {contrast_class_i }
where {contrast_condition_i}}
analyze {measure(s) }
Ad esempio, un utente può definire chi spende molto come clienti che acquistano articoli che costano in media $ 100 o più; e coloro che spendono il budget come clienti che acquistano articoli a meno di $ 100 in media. L'estrazione di descrizioni discriminanti per i clienti da ciascuna di queste categorie può essere specificata nel DMQL come:
mine comparison as purchaseGroups
for bigSpenders where avg(I.price) ≥$100
versus budgetSpenders where avg(I.price)< $100
analyze count
Associazione
La sintassi per Associazione è -
mine associations [ as {pattern_name} ]
{matching {metapattern} }
Ad esempio -
mine associations as buyingHabits
matching P(X:customer,W) ^ Q(X,Y) ≥ buys(X,Z)
dove X è la chiave della relazione con il cliente; P e Q sono variabili predicato; e W, Y e Z sono variabili oggetto.
Classificazione
La sintassi per la classificazione è:
mine classification [as pattern_name]
analyze classifying_attribute_or_dimension
Ad esempio, per estrarre i modelli, classificare la solvibilità del cliente in cui le classi sono determinate dall'attributo credit_rating e la classificazione mineraria è determinata come classifyCustomerCreditRating.
analyze credit_rating
Predizione
La sintassi per la previsione è:
mine prediction [as pattern_name]
analyze prediction_attribute_or_dimension
{set {attribute_or_dimension_i= value_i}}
Sintassi per la specifica della gerarchia dei concetti
Per specificare le gerarchie dei concetti, utilizzare la seguente sintassi:
use hierarchy <hierarchy> for <attribute_or_dimension>
Usiamo diverse sintassi per definire diversi tipi di gerarchie come -
-schema hierarchies
define hierarchy time_hierarchy on date as [date,month quarter,year]
-
set-grouping hierarchies
define hierarchy age_hierarchy for age on customer as
level1: {young, middle_aged, senior} < level0: all
level2: {20, ..., 39} < level1: young
level3: {40, ..., 59} < level1: middle_aged
level4: {60, ..., 89} < level1: senior
-operation-derived hierarchies
define hierarchy age_hierarchy for age on customer as
{age_category(1), ..., age_category(5)}
:= cluster(default, age, 5) < all(age)
-rule-based hierarchies
define hierarchy profit_margin_hierarchy on item as
level_1: low_profit_margin < level_0: all
if (price - cost)< $50
level_1: medium-profit_margin < level_0: all
if ((price - cost) > $50) and ((price - cost) ≤ $250))
level_1: high_profit_margin < level_0: all
Sintassi per la specifica delle misure di interesse
Le misure e le soglie di interesse possono essere specificate dall'utente con la dichiarazione -
with <interest_measure_name> threshold = threshold_value
Ad esempio -
with support threshold = 0.05
with confidence threshold = 0.7
Sintassi per la presentazione del modello e le specifiche di visualizzazione
Abbiamo una sintassi che consente agli utenti di specificare la visualizzazione dei modelli rilevati in una o più forme.
display as <result_form>
Ad esempio -
display as table
Specifica completa di DMQL
In qualità di market manager di un'azienda, vorresti caratterizzare le abitudini di acquisto dei clienti che possono acquistare articoli a un prezzo non inferiore a $ 100; rispetto all'età del cliente, al tipo di articolo acquistato e al luogo in cui l'articolo è stato acquistato. Vorresti conoscere la percentuale di clienti che hanno quella caratteristica. In particolare, sei interessato solo agli acquisti effettuati in Canada e pagati con carta di credito American Express. Si desidera visualizzare le descrizioni risultanti sotto forma di tabella.
use database AllElectronics_db
use hierarchy location_hierarchy for B.address
mine characteristics as customerPurchasing
analyze count%
in relevance to C.age,I.type,I.place_made
from customer C, item I, purchase P, items_sold S, branch B
where I.item_ID = S.item_ID and P.cust_ID = C.cust_ID and
P.method_paid = "AmEx" and B.address = "Canada" and I.price ≥ 100
with noise threshold = 5%
display as table
Standardizzazione dei linguaggi di data mining
La standardizzazione dei linguaggi di data mining servirà ai seguenti scopi:
Aiuta lo sviluppo sistematico di soluzioni di data mining.
Migliora l'interoperabilità tra più sistemi e funzioni di data mining.
Promuove l'istruzione e l'apprendimento rapido.
Promuove l'uso di sistemi di data mining nell'industria e nella società.