📜  数据挖掘查询语言

📅  最后修改于: 2022-05-13 01:57:03.166000             🧑  作者: Mango

数据挖掘查询语言

数据挖掘是从一堆未处理的原始数据中提取和处理用户数据的过程。通过将这些数据集聚合成一个汇总格式,可以解决金融、营销和许多其他领域中出现的许多问题。在拥有大量数据的现代世界中,数据挖掘是不断发展的技术领域之一,它在我们生活中所依赖的许多行业中发挥着应用作用。在该领域已经进行了许多开发和研究,并且还公开了许多系统。由于数据挖掘中有许多过程和功能需要完成,因此需要一个非常完善的用户界面。尽管关系系统有许多完善的用户界面,但 Han、Fu、Wang 等人。 提出了数据挖掘查询语言(DMQL),以进一步构建更多的开发系统并创新该领域的多种研究。尽管我们不能将 DMQL 视为标准语言。它是一种派生语言,可作为执行数据挖掘技术的通用查询语言。 DMQL 在 DB 矿工系统中执行,用于从多个数据库层收集数据。

DMQL 设计思路:

DMQL 是基于结构化查询语言 (SQL) 设计的,而结构化查询语言又是一种关系查询语言。

  • 数据挖掘请求:对于给定的数据挖掘任务,必须以数据挖掘请求的形式定义相应的数据集。让我们看一个例子。由于用户可以请求数据库中数据集的任何特定部分,因此数据挖掘者可以在数据挖掘过程之前使用数据库查询来检索合适的数据集。如果数据挖掘者无法聚合特定数据,那么他会收集超集,从中可以导出所需数据。这证明了在数据挖掘中需要查询语言作为其子任务。由于人工无法从庞大的数据集中提取相关数据,因此数据挖掘技术中存在许多开发方法。但这样做有时可能会导致收集用户请求的相关数据的任务失败。通过使用 DMQL,一个从数据库中检索特定数据集或数据的命令,它为用户提供了期望的结果,并在满足用户的期望方面提供了全面的体验。
  • 背景知识:对数据集及其在数据库中的关系的先验知识有助于挖掘数据。通过了解关系或任何有用的信息可以简化提取和聚合的过程。例如,数据集数量的概念层次结构可以通过轻松收集所需数据来提高过程效率和准确性。通过了解层次结构,可以轻松地概括数据。
  • 泛化:当数据仓库的数据集中的数据没有被泛化时,通常数据会以未处理的原始完整性约束、粗略关联的多值数据集及其依赖关系的形式出现。但是通过使用查询语言的泛化概念可以帮助将原始数据处理成精确的抽象。它还适用于具有质量聚合的多级数据收集。当更大的数据库出现时,泛化将在数据收集的概念级别提供理想的结果方面发挥重要作用。
  • 灵活性和交互性:为了避免从数据库中收集不太理想或不需要的数据,必须为灵活的数据挖掘指定有效的暴露值或阈值,并提供使用户体验有趣的强制性交互。这样的阈值可以与数据挖掘的查询一起提供。

数据挖掘的四个参数:

  • 第一个参数是以关系查询的形式从数据库中获取相关数据集。通过指定此原语,检索相关数据。
  • 第二个参数是提取的资源/信息的类型。该原语包括泛化、关联、分类、表征和判别规则。
  • 第三个参数是数据集的层次结构或泛化关系或背景知识,如前面在 DMQL 设计中所说。
  • 最后一个参数是收集到的数据的熟练程度,可以用特定的阈值表示,而阈值又取决于数据挖掘中使用的规则类型。

DMQL 中的基本语法:

DMQL 获取类似于关系查询语言SQL的语法。它是在巴科斯瑙尔形式(BNF)符号/语法的帮助下设计的。在这种表示法中,“[ ]”或“{ }”表示 0 或其他可能性。

要检索相关数据集:

句法:

use database (database_name)
{use hierarchy (hierarchy_name) for (attribute)}
(rule_specified)
related to(attribute_or_aggreagate_list)
from(relation(s)) [where(condition)]
[order by(order_list)]
{with [(type_of)] threshold = (threshold_value) [for(attribute(s))]}

在上述数据挖掘查询中,第一行检索所需的数据库(database_name)。第二行使用具有给定属性的层次结构(hierarchy_name)。 (rule_specified) 表示要指定的规则类型。要找出各种规定的规则,必须根据有助于泛化的属性或聚合找到相关的集合。 from 和 where 子句确保满足给定的条件。然后使用“order by”对与属性相关的指定阈值对它们进行排序。

对于 DMQL 中的规则:

句法:

概括:

generalize data [into (relation_name)]

协会:

find association rules [as (rule_name)]

分类:

find classification rules [as (rule_name) ] according to [(attribute)]

表征:

find characteristic rules [as (rule_name)]

歧视:

find discriminant rules [as (rule_name)]
for (class_1) with (condition_1)
from (relation(s)_1)
in contrast to (class_2) with (condition_2)
from (relation(s)_2)
{ in contrast to (class_i) with (condition_i)
from (relation(s)_i)}

规则挖掘中的阈值种类:

在数据挖掘过程中,维护一组阈值对于从大量数据中提取有用且引人入胜的数据集非常重要。此阈值还有助于衡量数据的相关性,并有助于推动搜索有趣的数据集。

规则挖掘中的阈值类型可以分为三类。

  • 重要性阈值:为了在数据挖掘过程中呈现数据集,数据集必须经过验证,以确保其自身至少具有某种具有合理意义的模式证明。根据挖掘关联规则,它们被称为最小支持阈值。在此最小支持阈值内找到的模式称为频繁数据项。根据特征规则,它们被称为噪声阈值。不能跨越该阈值的模式被称为噪声。
  • 规则冗余阈值:此阈值可防止将要呈现的数据集的冗余。也就是说,将要提供的规则不应与现有规则相同。
  • Rule Confidence Threshold:规则(X->Y)中条件Y下X的概率,概率必须通过这个规则置信度阈值才能确定。

句法:

with (threshold_name) threshold = value_of_threshold

例子:

with confidence threshold = 0.9
with redundancy threshold = 0.04

概念层次的表示:

概念层次有助于精确的数据挖掘过程。这基于数据的关系和分组。此概念层次结构必须灵活,以便在遇到新数据集时动态进行更改。

  • 在架构级别:

使用数据集属性之间的关系,可以在模式级别指定概念层次结构。

询问:

define hierarchy student_result_hierarchy on marks as [year, department, class, section]

在上面的例子中,属性系比学生的年级更通用,但比学生学习的班级和部门更不通用。现在以模式级别的内置层次结构为例:

询问:

define hierarchy period_hierarchy on date as [day, month, year]
  • 通过设置分组:

在此,层次结构是基于概念分组技术指定的,这些技术提供了较低和较高级别的明显外观。

define hierarchy age_hierarchy for book on audience as
level1: {children, young_adult, adult} < level0: all
level2:{8, ..., 12} 

在上面的示例中,书籍的类别按年龄集或范围分组。

  • 操作派生层次结构:

在这个层次结构中,数据是数字属性的形式。它可以通过比较范围甚至使用数据算法进行聚类来完成。

define hierarchy age_hierarchy for book on audience as
{age_group(1), ..., age_group(3)}  
:= cluster(default, age, 3) < all(age)
  • 基于规则的层次结构:

在这个层次结构中,规范是根据规则完成的。在较低级别会有少量规则,在较高级别会增加。

define hierarchy book_royalty_hierarchy on book as
level1: low_royalty < level0: all

if ( maximum_selling_price)< Rs. 300
 level_1:  moderate-royalty < level_0:  all
 
if ((maximum_selling_price) > Rs. 300)  and ((maximum_selling_price) ≤ Rs. 275))  
  level_1:  high_royalty < level_0:  all

在上面的示例中,使用基于规则的层次结构解释了作者根据最高售价 (MRP) 范围为他的书获得的版税。

对于模式的呈现:

为了增强用户的体验,用户可以请求指定的数据集或模式以指定的格式查看。

句法:

display as (result_format)

例子:

display as graph

图书数据库中的 DMQL 规范:

考虑具有以下模式的图书数据库。

询问:

book( book_name, book_id, book_category,genre, book_type)
author(author_name,phone_no,address)
publishing(publisher_name, publishing_id,cost)
buyer(buyer_name,buyer_id,buyer_address)

作为一家国家出版社的营销经理,Joel 想要描述价格不低于 300 卢比的图书的购买者的购买趋势,包括图书类别、图书类型(电子书/平装本)以及买家购买的类型。目的是找到具有给定特征趋势的买家百分比。 Joel 只对购买电子书感兴趣。他想以表格的形式显示结果数据。

询问:

use database national_publisher
use hierarchy age_hierarchy for B.category
mine characteristics as buyerPurchasing
analyze sell%
related to B.category,B.type,B.genre
from buyer X, Book B, purchase P, books_sold S, book_category C
where B.ID = S.book_ID and P.buyer_ID = X.buyer_ID and
B.type = "ebook" and B.price ≥ 300
with noise threshold = 0.7%
display as table 

在数据挖掘领域,需要高效的图形用户界面(GUI)来执行高效的功能。在 GUI 中,SQL 等关系数据库语言在创建许多开发系统中发挥着重要作用。但是我们可以将 DMQL 作为一种核心查询语言来执行任何专门基于数据挖掘的应用程序,这有助于构建更有效的 GUI。如果将 DMQL 的使用标准化为数据挖掘过程的核心查询语言,那么数据挖掘中数据的收集、操作和呈现就会变得容易。 DMQL 在数据挖掘中具有许多优势。但是,它仍然有局限性。当涉及到使用图形或改进的呈现结构的已开发 GUI 时,定位变得困难。所以,只有经过严格的试验,DMQL才能取代SQL成为数据挖掘中的核心查询语言。