Exploration de données - Langage de requête

Le langage de requête d'exploration de données (DMQL) a été proposé par Han, Fu, Wang et al. pour le système d'exploration de données DBMiner. Le langage de requête d'exploration de données est en fait basé sur le langage de requête structuré (SQL). Les langages de requête d'exploration de données peuvent être conçus pour prendre en charge l'exploration de données ad hoc et interactive. Ce DMQL fournit des commandes pour spécifier des primitives. Le DMQL peut également fonctionner avec des bases de données et des entrepôts de données. DMQL peut être utilisé pour définir des tâches d'exploration de données. En particulier, nous examinons comment définir les entrepôts de données et les data marts dans DMQL.

Syntaxe pour la spécification des données pertinentes pour la tâche

Voici la syntaxe de DMQL pour spécifier les données pertinentes pour la tâche -

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

Syntaxe pour spécifier le type de connaissances

Ici, nous discuterons de la syntaxe pour la caractérisation, la discrimination, l'association, la classification et la prédiction.

Caractérisation

La syntaxe de la caractérisation est -

mine characteristics [as pattern_name]
   analyze  {measure(s) }

La clause d'analyse spécifie des mesures agrégées, telles que count, sum ou count%.

Par exemple -

Description describing customer purchasing habits.
mine characteristics as customerPurchasing
analyze count%

Discrimination

La syntaxe de la discrimination est -

mine comparison [as {pattern_name]}
For {target_class } where  {t arget_condition } 
{versus  {contrast_class_i }
where {contrast_condition_i}}  
analyze  {measure(s) }

Par exemple, un utilisateur peut définir les gros dépensiers comme des clients qui achètent des articles qui coûtent 100 $ ou plus en moyenne; et ceux qui dépensent leur budget en tant que clients qui achètent des articles à moins de 100 $ en moyenne. L'exploration des descriptions discriminantes pour les clients de chacune de ces catégories peut être spécifiée dans le DMQL comme -

mine comparison as purchaseGroups
for bigSpenders where avg(I.price) ≥$100
versus budgetSpenders where avg(I.price)< $100
analyze count

Association

La syntaxe pour Association est -

mine associations [ as {pattern_name} ]
{matching {metapattern} }

Par exemple -

mine associations as buyingHabits
matching P(X:customer,W) ^ Q(X,Y) ≥ buys(X,Z)

où X est la clé de la relation client; P et Q sont des variables de prédicat; et W, Y et Z sont des variables d'objet.

Classification

La syntaxe de la classification est -

mine classification [as pattern_name]
analyze classifying_attribute_or_dimension

Par exemple, pour extraire des modèles, classer la cote de crédit des clients où les classes sont déterminées par l'attribut credit_rating et la classification de la mine est déterminée comme classifyCustomerCreditRating.

analyze credit_rating

Prédiction

La syntaxe de la prédiction est -

mine prediction [as pattern_name]
analyze prediction_attribute_or_dimension
{set {attribute_or_dimension_i= value_i}}

Syntaxe pour la spécification de la hiérarchie de concepts

Pour spécifier des hiérarchies de concepts, utilisez la syntaxe suivante -

use hierarchy <hierarchy> for <attribute_or_dimension>

Nous utilisons différentes syntaxes pour définir différents types de hiérarchies telles que -

-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

Syntaxe pour la spécification des mesures d'intérêt

Les mesures d'intérêt et les seuils peuvent être spécifiés par l'utilisateur avec la déclaration -

with <interest_measure_name>  threshold = threshold_value

Par exemple -

with support threshold = 0.05
with confidence threshold = 0.7

Syntaxe pour la présentation des modèles et la spécification de la visualisation

Nous avons une syntaxe, qui permet aux utilisateurs de spécifier l'affichage des modèles découverts sous une ou plusieurs formes.

display as <result_form>

Par exemple -

display as table

Spécification complète de DMQL

En tant que gestionnaire de marché d'une entreprise, vous souhaitez caractériser les habitudes d'achat des clients qui peuvent acheter des articles au prix d'au moins 100 $; en ce qui concerne l'âge du client, le type d'article acheté et le lieu où l'article a été acheté. Vous souhaitez connaître le pourcentage de clients ayant cette caractéristique. En particulier, vous êtes uniquement intéressé par les achats effectués au Canada et payés avec une carte de crédit American Express. Vous souhaitez afficher les descriptions résultantes sous forme de tableau.

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

Normalisation des langages d'exploration de données

La normalisation des langages d'exploration de données servira les objectifs suivants -

  • Aide au développement systématique de solutions d'exploration de données.

  • Améliore l'interopérabilité entre plusieurs systèmes et fonctions d'exploration de données.

  • Favorise l'éducation et l'apprentissage rapide.

  • Favorise l'utilisation des systèmes d'exploration de données dans l'industrie et la société.