数据挖掘和知识工程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、给出KDD的定义和处理过程。
答:KDD的定义是:从大量数据中提取出可信的、新颖的、有用的且可以被人理解的模式的高级处理过程。因此,KDD是一个高级的处理过程,它从数据集中识别出以模式形式表示的知识。这里的“模式”可以看成知识的雏形,经过验证、完善后形成知识:“高级的处理过程”是指一个多步骤的处理过程,多步骤之间相互影响反复调整,形成一种螺旋式上升的过程。
KDD的全过程有五个步骤:1、数据选择:确定发现任务的操作对象,即目标数据,它是根据用户的需要从原始数据库中抽取的一组数据;2、数据预处理:一般可能包括消除噪声、推到技术却只数据、消除重复记录、完成数据类型转换等;3、数据转换:其主要目的是消减数据维数或降维,即从初始特征中找出真正有用的特征以减少数据开采时要考虑的特征或变量个数;4、数据挖掘:这一阶段包括确定挖掘任务/目的、选择挖掘方法、实施数据挖掘;5、模式解释/评价:数据挖掘阶段发现出来的模式,经过用户或机器的评价,可能存在冗余或无关的模式,需要剔除;也有可能模式不满足用户的要求,需要退回到整个发现阶段之前,重新进行KDD过程。
2、阐述数据挖掘产生的背景和意义。
答:数据挖掘产生的背景:随着信息科技的进步以及电子化时代的到来,人们以更快捷、更容易、更廉价的方式获取和存储数据,使得数据及信息量以指数方式增长。据粗略估计,一个中等规模企业每天要产生100MB以上的商业数据。而电信、银行、大型零售业每天产生的数据量以TB来计算。人们搜集的数据越来越多,剧增的数据背后隐藏着许多重要的信息,人们希望对其进行更高层次的分析,以便更好的利用这些数据。
先前的数据库系统可以高效的实现数据的录入、查询、统计等功能,但无法发现数据中存在的关系与规则,无法根据现有的数据来预测未来的发展趋势。缺乏挖掘数据背后隐藏的知识的手段。导致了“数据爆炸但知识贫乏”的现象。于是人们开始提出“要学会选择、提取、抛弃信息”,并且开始考虑:如何才能不被信息淹没?如何从中及时发现有用的知识、提高信息利用率?如何从浩瀚如烟海的资料中选择性的搜集他们认为有用的信息?这给我们带来了另一些头头疼的问题:第一是信息过量,难以消化;第二是信息真假难以辨别;第三是信息安全难以保证;第四是信息形式不一致,难以统一处理。
面对这一挑战,面对数量很大而有意义的信息很难得到的状况面对大量繁杂而分散的数据资源,随着计算机数据仓库技术的不断成熟,从数据中发现知识
(Knowledge Discovery in Database)及其核心技术——数据挖掘(Data Mining)便应运而生,并得以蓬勃发展,越来越显示出其强大的生命力。
数据挖掘的意义:数据挖掘之所以被称为未来信息处理的骨干技术之一,主要在于它正以一种全新的概念改变着人类利用数据的方式。在20世纪,数据库技术取得了重大的成果并且得到了广泛的应用。但是,数据库技术作为一种基本的信息储存和管理方式,仍然是以联机事务处理为核心应用,缺少对决策、分析、预测等高级功能的支持机制。众所周知,随着硬盘存储容量及的激增以及磁盘阵列的普及,数据库容量增长迅速,数据仓库以及Web等新型数据源出现,联机分析处理、决策支持以及分类、聚类等复杂应用成为必然。面对这样的挑战,数据挖掘和知识发现技术应运而生,并显现出强大的生命力。数据挖掘和知识发现使数据处理技术进入了一个更加高级的阶段。它不仅能对过去的数据进行查询,而且能够找出过去数据之间的潜在联系,进行更高层次的分析,以便更好地作出决策、预测未来的发展趋势等等。通过数据挖掘,有价值的知识、规则或更高层次的信息就能够从数据库的相关数据集合中抽取出来,从而使大型数据库作为一个丰富、可靠的资源为知识的提取服务。
3、给出一种关联规则的算法描述,并举例说明。
答:Apriori算法描述:Apriori算法由Agrawal等人于1993年提出,是最有影响的挖掘布尔关联规则频繁项集的算法,它通过使用递推的方法生成所有频繁项目集。基本思想是将关联规则挖掘算法的设计分解为两步:(1)找到所有频繁项集,含有 k 个项的频繁项集称为 k-项集。Apriori使用一种称作逐层搜索的迭代方法,k-项集用于探索(k+1)-项集。首先,出频繁 1-项集的集合。该集合记作L1。L1用于找频繁 2-项集的集合L2,而L2用于找L3,如下去,直到不能找到频繁k-项集。找出每个Lk都需要一次数据库扫描。为提高频繁项集层产生的效率,算法使用Apriori性质用于压缩搜索空间。(2)使用第一步中找到的频繁项集产生关联规则。从算法的基本思想可知,Apriori算法的核心和关键在第一步。而第一步的关键是如何将Apriori性质用于算法,利用Lk - 1找Lk。这也是一个由连接和剪枝组成的两步过程:(1)连接步:为找Lk,通过Lk -1与自己连接产生候选k-项集的集合。该候选项集的集合记作Ck。设l1和l2是Lk - 1中的项集。记号li[j]表示li的第j项(例如,l1[k-2]表示l1的倒数第3项)。为方便计,假定事务或项集中的项按字典次序排序。执行连接Lk - 1 Lk - 1;其中,Lk - 1的元素是可连接的,如果它们前(k-2)项相同;即Lk - 1的元素l1和l2是可连接的,如果(l1[1] = l2[1]) ∧ (l1[2] = l2[2]) ∧ ... ∧ (l1 [k-2] = l2 [k-2]) ∧ (l1 [k-1] < l2 [k-1])。条件
(l1[k-1] < l2[k-1])是简单地保证不产生重复。连接l1和l2产生的结果项集是l1[1] l1[2]... l1 [k-1] l2[k-1]。(2)剪枝步:Ck 是Lk 的超集;即,它的成员可以是,也可以不是频繁的,但所有的频繁k-项集都包含在Ck 中。扫描数据库,确定Ck 中每个候选的计数,从而确定Lk (即,根据定义,计数值不小于最小支持度计数的所有候选是频繁的,从而属于Lk )。然而,Ck 可能很大,这样所涉及的计算量就很大。为压缩Ck ,可以用以下办法使用Apriori 性质:任何非频繁的(k-1)-项集都不可能是频繁k-项集的子集。因此,如果一个候选k-项集的(k-1)-子集不在Lk - 1中,则该候选也不可能是频繁的,从而可以由Ck 中删除。
Apriori 算法举例:如有如下数据
每一行表示一条交易,共有9行,既9笔交
易,左边表示交易ID ,右边表示商品名称。最小
支持度是22%,那么每件商品至少要出现9*22%=2次才算频繁。第一次扫描数据库,使得在每条交易中,按商品名称递增排序。
第二次扫描数据,找频繁项集为1
的元素有:
左边表示商品名称,右边表示出现的次数,都大于阈值2。