为什么要数据挖掘原语和语言?•一个完全自动(不需要人为干预或指导)的数据挖掘机器只可能是“一只疯了的怪兽”。–会产生大量模式(重新把知识淹没)–会涵盖所有数据,使得挖掘效率低下–大部分有价值的模式集可能被忽略–挖掘出的模式可能难以理解,缺乏有效性、新颖性和实用性——令人不感兴趣。•没有精确的指令和规则,数据挖掘系统就没法使用。•用数据挖掘原语和语言来指导数据挖掘。数据挖掘原语的组成部分•数据挖掘原语应该包括以下部分:–说明数据库的部分或用户感兴趣的数据集–要挖掘的知识类型–用于指导挖掘的背景知识–模式评估、兴趣度量–如何显示发现的知识•数据挖掘原语用于用户和数据挖掘系统通信,让用户能从不同的角度和深度审查和发现结果,并指导挖掘过程。说明数据挖掘任务的原语•任务相关的数据–数据库(仓库)名、数据立方体、选择条件、相关属性、分组条件•挖掘的知识类型–特征化、区分、关联、分类/预测、聚类•背景知识–概念分层,关联的确信度•模式兴趣度度量–简单性、确定性、实用性、新颖性•发现模式的可视化–规则、表、图表、图、判定树…任务相关的数据•用户感兴趣的只是数据库或数据仓库的一个子集。–相关的操作:DB-选择、投影、连接、聚集等;DW-切片、切块–初始数据关系•数据子集选择过程产生的新的数据关系–可挖掘的视图•用于数据挖掘相关任务的数据集任务相关的数据——例子•挖掘加拿大顾客和他们常在AllElectronics购买的商品间的关联规则–数据库(仓库)名(e.g.AllElectronics_db)–包含相关数据的表或数据立方体名(e.g.item,customer,purchases,item_sold)–选择相关数据的条件(今年、加拿大)–相关的属性或维(item表的name和price,customer表的income和age)要挖掘的知识类型•要挖掘的知识类型将决定使用什么数据挖掘功能。–概念描述(特征化和区分),关联规则,分类/预测,聚类和演化分析等•模式模板–又称元模式或元规则,用来指定所发现模式所必须匹配的条件,用于指导挖掘过程。关联规则元模式——例子•研究AllElectronics的顾客购买习惯,使用如下关联规则:–P(X:customer,W)∧Q(X,Y)=buys(X,Z)•X---customer表的关键字•P,Q---谓词变量•W,Y,Z---对象变量•模板具体化–age(X,“30…39”)∧income(X,“40k…49k”)=buys(X,“VCR”)[2.2%,60%]–occupation(x,“student”)∧age(X,“20…29”)=buys(X,“computer”)[1.4%,70%]背景知识:概念分层•背景知识是关于挖掘领域的知识–概念分层是背景知识的一种,它允许在多个抽象层上发现知识。•概念分层以树形结构的节点集来表示,其中每个节点本身代表一个概念,根节点称为all,而叶节点则对应于维的原始数据值。–概念分层中,自顶向底进行层的标识,即all为0层,向下依次为1,2,3等层概念分层——上卷和下钻•在概念分层中应用上卷操作(概化),使得用户可以使用较高层次概念替代较低层次概念–可以在更有意义,更高、更抽象的层次观察数据,从而使发现的模式更加容易理解。–上卷操作使得数据得到压缩,在这个压缩的数据集上进行挖掘可以减少I/O操作,使得挖掘的效率提高。•概念分层的下钻操作使用较低层概念代替较高层概念,从而使用户能够对过于一般化的数据做更详细分析。•上卷和下钻操作让用户以不同视图观察数据,洞察隐藏的数据联系。•概念分层的自动生成。•在同一个维上,可能根据用户的观点不同,存在多个概念分层。概念分层的类型•四种常用的概念分层类型–模式分层•E.g.,streetcityprovincecountry–集合分组分层•E.g.,{20-39}=young,{40-59}=middle_aged–操作导出的分层•e.g.fromhan@cs.sfu.cawecanget•login_namedepartmentuniversitycountry–基于规则的分层•low_profit_margin(X)=price(X,P1)andcost(X,P2)and(P1-P2)$50•high_profit_margin(X)=price(X,P1)andcost(X,P2)and(P1-P2)$250兴趣度度量•没有兴趣度度量,挖掘出来的有用模式,很可能会给淹没在用户不感兴趣的模式中。•兴趣度的客观度量方法:根据模式的结构和统计,用一个临界值来判断某个模式是不是用户感兴趣的。•常用的四种兴趣度的客观度量:–简单性–确定性–实用性–新颖性简单性和确定性•简单性(simplicity)–模式是否容易被人所理解–模式结构的函数(模式的长度、属性的个数、操作符个数)。e.g.规则长度或者判定树的节点个数。•确定性(certainty)–表示一个模式在多少概率下是有效的。–置信度(A=B)=(包含A和B的元组值)/(包含A的元组值),e.g.buys(X,“computer)=buys(X,“software”)[30%,80%]–100%置信度:准确的。实用性和新颖性•实用性–可以用支持度来进行度量:支持度(A=b)=(包含A和B的元组数)/(元组总数)e.g.buys(X,“computer)=buys(X,“software”)[30%,80%]–同时满足最小置信度临界值和最小支持度临界值的关联规则称为强关联规则。•新颖性–提供新信息或提高给定模式集性能的模式–通过删除冗余模式来检测新颖性(一个模式已经为另外一个模式所蕴涵)–Location(X,“Canada”)=buys(X,“Sony_TV”)[8%,70%]–Location(X,“Vancouver”)=buys(X,“Sony_TV”)[2%,70%]发现模式的表示和可视化•以多种形式显示挖掘出来的模式:表、图、判定树、数据立方体等等,以适合不同背景的用户的需要。•使用概念分层,用更有意义,更容易理解的高层概念来替代低层概念;并通过上卷、下钻等操作从不同的抽象级审视所发现的模式。•特定知识类型的表示。一种数据挖掘查询语言DMQL•DMQL的设计目的–支持特别的和交互的数据查询,以便利于灵活和有效的知识发现•提供一种类似于SQL的标准化查询语言•希望达到SQL在关系数据库中的地位•系统开发和演化的基础•方便的信息交互,广泛的技术支持,商业化,广为认可•设计挑战–数据挖掘任务涉及面宽•数据特征、关联规则、分类、演变分析…每种任务都有不同的需求DMQL的语法•采用与SQL相类似的语法,便于与SQL的集成。•允许在多个抽象层上,由关系数据库和数据仓库进行多类型知识的特殊挖掘•DMQL的设计基于数据挖掘原语,相应的,其语法中应该包括对以下任务的指定:–说明数据库的部分或用户感兴趣的数据集–要挖掘的知识类型–用于指导挖掘的背景知识–模式评估、兴趣度量–如何显示发现的知识任务相关数据说明的语法•任务相关数据说明应包括的内容:–包含相关数据的数据库或数据仓库–相关的表名或数据立方体的名字–选择相关数据的条件–探察的相关属性或维–关于检索数据的排序和分组指令任务相关数据说明子句•说明相关的数据库或数据仓库–usedatabasedb_name或usedatawarehousedw_name•指定涉及的表或数据立方体,定义检索条件–Fromrelation(s)/cube(s)[wherecondition]•列出要探察的属性或维–Inrelevancetoattributeordimension_list•相关数据的排序–orderbyorder_list•相关数据的分组–groupbygrouping_list•相关数据的分组条件:–havingcondition任务相关数据说明——示例•挖掘加拿大顾客与在AllElectronics经常购买的商品之间的关联规则usedatabaseAllElectronics_dbinrelevancetoI.name,I.price,C.income,C.agefromcustomerC,itemI,purchasesP,items_soldSwhereI.item_ID=S.item_IDandS.trans_ID=P.trans_IDandP.cust_ID=C.cust_IDandC.country=“Canada”groupbyP.date指定挖掘知识类型•要挖掘的知识类型将决定所使用的数据挖掘功能。•几种主要的数据挖掘功能–特征化•目标数据的一般特征或特性汇总–数据区分•将目标对象的一般特性与一个或多个对比类对象的特性相比较–关联分析•发现关联规则,这些规则展示属性-值频繁的在给定数据中集中一起出现的条件–分类•找出区分数据类或概念的模型(或函数),以便用之标志未知的对象类。–聚类分析、孤立点分析、演变分析…指定挖掘知识类型——特征化•目标数据的一般特征或特性汇总–语法Mine_Knowledge_Specification::=minecharacteristics[aspattern_name]analyzemeasure(s)•analyze子句指定聚集度量(count,sum,count%),通过这些度量对每个找到的数据特征进行计算•示例:顾客购买习惯的特征描述,对于每一特征,显示满足特征的任务相关元组的百分比minecharacteristicsascustPurchasinganalyzecount%指定挖掘知识类型——数据区分•将目标对象的一般特性与一个或多个对比类对象的特性相比较–语法Mine_Knowledge_Specification::=minecomparison[aspattern_name]fortarget_classwheretarget_condition{versuscontrast_class_iwherecontrast_condition_i}analyzemeasure(s)•analyze子句指定聚集度量(count,sum,count%),将对每个描述进行计算或显示•示例:用户将客户区分为大顾客与小顾客,并显示满足每个区分的元组数Mine_Knowledge_Specification::=minecomparisonaspurchaseGroupsforbigSpenderswhereavg(I.price)≧$100versusbudgetSpenderswhereavg(I.price)≦$100analyzecount指定挖掘知识类型——关联•发现关联规则,这些规则展示属性-值频繁的在给定数据中集中一起出现的条件–语法Mine_Knowledge_Specification::=mineassociations[aspattern_name]•matching子句后面往往可以跟元模式,用来指定用户有兴趣探察的数据束或假定•示例:使用元模式指导的挖掘来指定用于描述顾客购买习惯的关联规则挖掘Mine_Knowledge_Specification::=mineassociationsasbuyingHabbitsmatchingP(X:customer,W)∧Q(X,Y)=buys(X,Z)指定挖掘知识类型——分类•找出区分数据类或概念的模型(或函数),以便用之标志未知的对象类–语法Mine_Knowledge_Specification::=mineclassification[aspattern_name]analyzeclassifying_attribute_or_dimension•analyze子句说明根据某个属性或维进行分类,通常每个分类属性的或维的值就代表一个分类•示例:挖掘客户的信用等级模式mineclassificationasclassifyCustCredit