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.