Mineração de dados - linguagem de consulta

O Data Mining Query Language (DMQL) foi proposto por Han, Fu, Wang, et al. para o sistema de mineração de dados DBMiner. A linguagem de consulta de mineração de dados é, na verdade, baseada na linguagem de consulta estruturada (SQL). Linguagens de consulta de mineração de dados podem ser projetadas para suportar mineração de dados ad hoc e interativa. Este DMQL fornece comandos para especificar primitivos. O DMQL também pode funcionar com bancos de dados e data warehouses. DMQL pode ser usado para definir tarefas de mineração de dados. Em particular, examinamos como definir data warehouses e data marts em DMQL.

Sintaxe para especificação de dados relevantes para a tarefa

Aqui está a sintaxe do DMQL para especificar dados relevantes para a tarefa -

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

Sintaxe para especificar o tipo de conhecimento

Aqui, discutiremos a sintaxe para caracterização, discriminação, associação, classificação e previsão.

Caracterização

A sintaxe para caracterização é -

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

A cláusula de análise especifica medidas agregadas, como contagem, soma ou% de contagem.

Por exemplo -

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

Discriminação

A sintaxe para Discriminação é -

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

Por exemplo, um usuário pode definir grandes gastadores como clientes que compram itens que custam $ 100 ou mais em média; e gastadores de orçamento, como clientes que compram itens por menos de US $ 100 em média. A extração de descrições discriminantes para clientes de cada uma dessas categorias pode ser especificada no DMQL como -

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

Associação

A sintaxe para associação é -

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

Por exemplo -

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

onde X é a chave da relação com o cliente; P e Q são variáveis ​​predicativas; e W, Y e Z são variáveis ​​de objeto.

Classificação

A sintaxe para classificação é -

mine classification [as pattern_name]
analyze classifying_attribute_or_dimension

Por exemplo, para padrões de mineração, classificando a classificação de crédito do cliente onde as classes são determinadas pelo atributo credit_rating e a classificação da mina é determinada como classifyCustomerCreditRating.

analyze credit_rating

Predição

A sintaxe para predição é -

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

Sintaxe para especificação de hierarquia de conceito

Para especificar hierarquias de conceito, use a seguinte sintaxe -

use hierarchy <hierarchy> for <attribute_or_dimension>

Usamos sintaxes diferentes para definir diferentes tipos de hierarquias, 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

Sintaxe para especificação de medidas de interesse

Medidas de interesse e limites podem ser especificados pelo usuário com a declaração -

with <interest_measure_name>  threshold = threshold_value

Por exemplo -

with support threshold = 0.05
with confidence threshold = 0.7

Sintaxe para apresentação de padrões e especificação de visualização

Temos uma sintaxe que permite aos usuários especificar a exibição de padrões descobertos em uma ou mais formas.

display as <result_form>

Por exemplo -

display as table

Especificação completa de DMQL

Como gerente de mercado de uma empresa, você gostaria de caracterizar os hábitos de compra dos clientes que podem comprar itens com preços não inferiores a $ 100; com relação à idade do cliente, tipo de item adquirido e local onde o item foi adquirido. Você gostaria de saber a porcentagem de clientes com essa característica. Em particular, você está interessado apenas em compras feitas no Canadá e pagas com um cartão de crédito American Express. Você gostaria de ver as descrições resultantes na forma de uma tabela.

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

Padronização de Linguagens de Mineração de Dados

Padronizar os idiomas de mineração de dados atenderá aos seguintes propósitos -

  • Ajuda no desenvolvimento sistemático de soluções de mineração de dados.

  • Melhora a interoperabilidade entre vários sistemas e funções de mineração de dados.

  • Promove educação e aprendizagem rápida.

  • Promove o uso de sistemas de mineração de dados na indústria e na sociedade.