Minería de datos: lenguaje de consulta

El lenguaje de consulta de minería de datos (DMQL) fue propuesto por Han, Fu, Wang, et al. para el sistema de minería de datos DBMiner. El lenguaje de consulta de minería de datos se basa en realidad en el lenguaje de consulta estructurado (SQL). Los lenguajes de consulta de minería de datos pueden diseñarse para admitir minería de datos interactiva y ad hoc. Este DMQL proporciona comandos para especificar primitivas. DMQL también puede funcionar con bases de datos y almacenes de datos. DMQL se puede utilizar para definir tareas de minería de datos. En particular, examinamos cómo definir almacenes de datos y mercados de datos en DMQL.

Sintaxis para la especificación de datos relevantes para la tarea

Aquí está la sintaxis de DMQL para especificar datos relevantes para la tarea:

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

Sintaxis para especificar el tipo de conocimiento

Aquí discutiremos la sintaxis para Caracterización, Discriminación, Asociación, Clasificación y Predicción.

Caracterización

La sintaxis para la caracterización es:

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

La cláusula de análisis especifica medidas agregadas, como recuento, suma o porcentaje de recuento.

Por ejemplo

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

Discriminación

La sintaxis de la discriminación es:

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

Por ejemplo, un usuario puede definir a los grandes gastadores como los clientes que compran artículos que cuestan $ 100 o más en promedio; y gastadores de presupuesto como clientes que compran artículos a menos de $ 100 en promedio. La extracción de descripciones discriminantes para clientes de cada una de estas categorías se puede especificar en DMQL como:

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

Asociación

La sintaxis de Asociación es

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

Por ejemplo:

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

donde X es la clave de la relación con el cliente; P y Q son variables de predicado; y W, Y y Z son variables de objeto.

Clasificación

La sintaxis de Clasificación es:

mine classification [as pattern_name]
analyze classifying_attribute_or_dimension

Por ejemplo, para los patrones de minería, la clasificación de la calificación crediticia del cliente donde las clases están determinadas por el atributo credit_rating, y la clasificación de la mina se determina como classifyCustomerCreditRating.

analyze credit_rating

Predicción

La sintaxis para la predicción es:

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

Sintaxis para la especificación de jerarquía de conceptos

Para especificar jerarquías de conceptos, utilice la siguiente sintaxis:

use hierarchy <hierarchy> for <attribute_or_dimension>

Usamos diferentes sintaxis para definir diferentes tipos de jerarquías como:

-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

Sintaxis para la especificación de medidas de interés

El usuario puede especificar las medidas de interés y los umbrales con la declaración:

with <interest_measure_name>  threshold = threshold_value

Por ejemplo:

with support threshold = 0.05
with confidence threshold = 0.7

Sintaxis para la presentación de patrones y la especificación de visualización

Tenemos una sintaxis que permite a los usuarios especificar la visualización de patrones descubiertos en una o más formas.

display as <result_form>

Por ejemplo:

display as table

Especificación completa de DMQL

Como gerente de mercado de una empresa, le gustaría caracterizar los hábitos de compra de los clientes que pueden comprar artículos a un precio no menor a $ 100; con respecto a la edad del cliente, el tipo de artículo comprado y el lugar donde se compró el artículo. Le gustaría saber el porcentaje de clientes que tienen esa característica. En particular, solo le interesan las compras realizadas en Canadá y pagadas con una tarjeta de crédito American Express. Le gustaría ver las descripciones resultantes en forma de tabla.

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

Estandarización de lenguajes de minería de datos

La estandarización de los lenguajes de minería de datos servirá para los siguientes propósitos:

  • Ayuda al desarrollo sistemático de soluciones de minería de datos.

  • Mejora la interoperabilidad entre múltiples sistemas y funciones de minería de datos.

  • Promueve la educación y el aprendizaje rápido.

  • Promueve el uso de sistemas de minería de datos en la industria y la sociedad.