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.