Учебники

Data Mining — Язык запросов

Язык Data Mining Query Language (DMQL) был предложен Han, Fu, Wang, et al. для системы интеллектуального анализа данных DBMiner. Язык запросов интеллектуального анализа данных фактически основан на языке структурированных запросов (SQL). Data Mining Query Languages ​​могут быть разработаны для поддержки специального и интерактивного анализа данных. Этот DMQL предоставляет команды для определения примитивов. DMQL также может работать с базами данных и хранилищами данных. DMQL может использоваться для определения задач интеллектуального анализа данных. В частности, мы рассмотрим, как определить хранилища данных и витрины данных в DMQL.

Синтаксис для спецификации данных, связанных с задачей

Вот синтаксис DMQL для указания данных, относящихся к задаче —

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

Синтаксис для указания вида знаний

Здесь мы обсудим синтаксис для характеристики, дискриминации, ассоциации, классификации и прогнозирования.

характеристика

Синтаксис для характеристики —

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

Предложение анализа определяет совокупные показатели, такие как количество, сумма или количество%.

Например —

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

дискриминация

Синтаксис для дискриминации —

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

Например, пользователь может определить крупных клиентов как клиентов, которые покупают товары в среднем по 100 долларов или более; и бюджет тратится как клиенты, которые покупают товары в среднем менее чем за 100 долларов. Изучение описания дискриминантов для клиентов из каждой из этих категорий может быть указано в DMQL как —

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

ассоциация

Синтаксис для ассоциации is-

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

Например —

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

где X — ключ отношения с клиентом; P и Q — переменные предиката; и W, Y и Z являются объектными переменными.

классификация

Синтаксис для классификации —

mine classification [as pattern_name]
analyze classifying_attribute_or_dimension

Например, для майнинга шаблонов, классификации кредитного рейтинга клиента, где классы определяются атрибутом credit_rating, а классификация шахты определяется как classifyCustomerCreditRating.

analyze credit_rating

прогнозирование

Синтаксис для прогнозирования —

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

Синтаксис для спецификации иерархии понятий

Чтобы указать иерархии понятий, используйте следующий синтаксис —

use hierarchy <hierarchy> for <attribute_or_dimension>

Мы используем разные синтаксисы для определения различных типов иерархий, таких как:

-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

Синтаксис для спецификации мер интереса

Меры и пороги заинтересованности могут быть указаны пользователем с помощью заявления —

with <interest_measure_name>  threshold = threshold_value

Например —

with support threshold = 0.05
with confidence threshold = 0.7

Синтаксис для представления шаблона и спецификации визуализации

У нас есть синтаксис, который позволяет пользователям указывать отображение обнаруженных шаблонов в одной или нескольких формах.

display as <result_form>

Например —

display as table

Полная спецификация DMQL

Как менеджер по маркетингу компании, вы хотели бы охарактеризовать покупательские привычки клиентов, которые могут покупать товары по цене не менее 100 долларов США; с учетом возраста покупателя, типа приобретенного товара и места, где он был приобретен. Вы хотели бы знать процент клиентов, имеющих эту характеристику. В частности, вас интересуют только покупки, сделанные в Канаде и оплаченные кредитной картой American Express. Вы хотели бы просмотреть результирующие описания в виде таблицы.

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

Стандартизация языков интеллектуального анализа данных

Стандартизация языков интеллектуального анализа данных будет служить следующим целям —

Помогает систематической разработке решений для интеллектуального анализа данных.

Улучшает взаимодействие между несколькими системами и функциями интеллектуального анализа данных.

Способствует образованию и быстрому обучению.

Способствует использованию систем интеллектуального анализа данных в промышленности и обществе.