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à.