数据挖掘过程
请各位同学学习参考教材的第三章!!!!!
各位宝贝同学可以结合课程内容在线学习!!!
请各位同学学习课程PPT中第三节的数据挖掘过程!!!!!
一、数据挖掘步骤
基本的数据挖掘步骤,如下:

1、数据预处理
在数据挖掘中数据的质量是关键,低质量的数据无论采用什么数据挖掘方法都不可能得到高质量的知识。直接来源于数据源的数据可能是不完整的、含有噪声的、并且是不一致的,这就需要进行数据预处理。数据预处理主要包括数据清理、数据集成、数据变换和数据规约等,通过数据预处理,使数据转换为可以直接应用数据挖掘工具进行挖掘的高质量数据。
2、数据挖掘算法
根据数据挖掘任务和数据性质选择合适的数据挖掘算法挖掘模式。数据挖掘算法不仅与目标数据集有关,也与数据挖掘的任务相关。
3、评估与表示
去除无用的或冗余的模式,将有趣的模式以用户能理解的方式表示,并储存或提交给用户。
二、数据清理
数据清理的作用就是清除数据噪声和与挖掘主题明显无关及不一致的数据,包括填补空缺的值,平滑噪声数据,识别、删除孤立点,解决不一致性。
1、处理空缺值
(1)忽略元组。
也就是将存在遗漏信息属性值的对象(元组,记录)删除,从而得到一个完备的信息表。这种方法简单易行,在对象有多个属性缺失值、被删除的含缺失值的对象与信息表中的数据量相比非常小的情况下是非常有效的,类标号(假设是分类任务)缺少时通常使用。然而,这种方法却有很大的局限性。它是以减少历史数据来换取信息的完备,会造成资源的大量浪费,丢弃了大量隐藏在这些对象中的信息。在信息表中本来包含的对象很少的情况下,删除少量对象就足以严重影响到信息表信息的客观性和结果的正确性;当每个属性空值的百分比变化很大时,它的性能非常差。因此,当遗漏数据所占比例较大,特别当遗漏数据非随机分布时,这种方法可能导致数据发生偏离,从而引出错误的结论。
(2)人工填写空缺值。由于最了解数据的还是用户自己,因此这个方法产生数据偏离最小,可能是填充效果最好的一种。然而一般来说,该方法很费时,当数据规模很大、空值很多的时候,该方法是不可行的。
(3)使用一个全局变量填充空缺值,例如使用unknown或-∞,即将空值作为一种特殊的属性值来处理。
这样将形成另一个有趣的概念,可能导致严重的数据偏离,一般不推荐使用。
(4)使用属性的平均值填充空缺值,或者使用与给定元组属同一类的所有样本的平均值。
将信息表中的属性分为数值属性和非数值属性来分别进行处理。如果空值是数值型的,就根据该属性在其他所有对象的取值的平均值来填充该缺失的属性值;如果空值是非数值型的,就根据统计学中的众数原理,用该属性在其他所有对象的取值次数最多的值(即出现频率最高的值)来补齐该缺失的属性值。另外有一种与其相似的方法叫条件平均值填充法(Conditional Mean Completer)。在该方法中,缺失属性值的补齐同样是靠该属性在其他对象中的取值求平均得到,但不同的是用于求平均的值并不是从信息表所有对象中取,而是从与该对象具有相同决策属性值的对象中取得。这两种数据的补齐方法,其基本的出发点都是一样的,以最大概率可能的取值来补充缺失的属性值,只是在具体方法上有一点不同。与其他方法相比,它是用现存数据的多数信息来推测缺失值。
(5)使用最可能的值填充空缺值。这种方法是用空缺属性值的所有可能的属性取值来填充,能够得到较好的补齐效果。但是,当数据量很大或者遗漏的属性值较多时,其计算的代价很大,可能的测试方案很多。另有一种方法,填补遗漏属性值的原则是一样的,不同的只是从决策相同的对象中尝试所有的属性值的可能情况,而不是根据信息表中所有对象进行尝试,这样能够在一定程度上减小原方法的代价。
【补充】空缺值产生的原因
在各种实用的数据库中,属性值缺失的情况经常发全甚至是不可避免的。空缺值产生的原因多种多样,主要分为机械原因和人为原因。机械原因是由于机械原因导致的数据收集或保存的失败造成的数据缺失,比如数据存储的失败,存储器损坏,机械故障导致某段时间数据未能收集(对于定时数据采集而言)。人为原因是由于人的主观失误、历史局限或有意隐瞒造成的数据缺失,比如,在市场调查中被访人拒绝透露相关问题的答案,或者回答的问题是无效的,数据录入人员失误漏录了数据。
空缺值产生的几个具体实例:
有些信息暂时无法获取。例如在医疗数据库中,并非所有病人的所有临床检验结果都能在给定的时间内得到,就致使一部分属性值空缺出来。又如在申请表数据中,对某些问题的反映依赖于对其他问题的回答。
有些信息是被遗漏的。可能是因为输入时认为不重要、忘记填写了或对数据理解错误而遗漏,也可能是由于数据采集设备的故障、存储介质的故障、传输媒体的故障、一些人为因素等原因而丢失了。
有些对象的某个或某些属性是不可用的。也就是说,对于这个对象来说,该属性值是不存在的,如一个未婚者的配偶姓名、一个儿童的固定收入状况等。
2、消除噪声数据
噪声是指一个测量变量中的随机错误或偏差。引起噪声数据的原因可能有数据收集工具的问题、数据输入错误、数据传输错误、技术限制或命名规则的不一致。通常采用分箱、聚类等数据平滑方法来消除噪声数据。
(1)分箱
分箱方法通过考察数据的近邻(即周围的值)来光滑有序数据值。这些有序的值被分不到一些桶或箱中。由于分箱方法考察近邻的值,因此它进行局部光滑。
对于用箱的平均值平滑,箱中每一个值都被替换为箱中的均值。
对于用箱的中值平滑,此时,箱中的每一个值都被替换为该箱的中位数。
对于用箱的边界值平滑,给定箱中的最大和最小值同样被视为箱边界,而箱中的每一个值都被替换为最近的边界值。
一般而言,宽度越大,光滑效果越明显。箱也可以是等宽的,其中每个箱值的区间范围是常量。分箱也可以作为一种离散化技术使用。
【例】某商品价格的排序后数据是4,8,15,21,21,24,25,28,34。
采用深度为3的等深方法划分为3个箱:
箱1:4,8,15
箱2:21,21,24
箱3:25,28,34
采用箱平均值平滑的结果如下:
箱1:该箱平均值为9,均用9平滑,4,8,15→9,9,9
箱2:该箱平均值为22,均用22平滑,21,21,24→22,22,22
箱3:该箱平均值为29,均用29平滑,25,28,34→29,29,29
采用箱边界平滑的结果如下:
箱1:该箱左边界4,中间值8用4平滑,4,8,15→4,4,15
箱2:该箱左边界21,中间值21用21平滑,21,21,24→21,21,24
箱3:该箱左边界25,中间值28用25平滑,25,28,34→25,25,34
(2)聚类
通过聚类分析查找孤立点,去除孤立点以消除噪声。聚类算法可以得到若干数据类(簇),在所有类外的数据可视为孤立点。
(3)计算机和人工检查相结合
通过计算机检测可疑数据,然后对它们进行人工判断。
例如:在针对银行信用欺诈行为的探测中,计算机将差异程度大于阈值的模式记录到一个表中,再通过人工审查表中的模式可以识别孤立点。
(4)回归
也可以用一个函数拟合数据来光滑数据,这种技术称为回归。线性回归涉及找出拟合两个属性(或变量)的最佳直线,使得一个属性可以用来预测另一个。多元线性回归是线性回归的扩充,其中涉及的属性多于两个,并且数据拟合到一个多维曲面。
3、消除不一致
数据可能包含不一致的值。比如地址字段列出了邮政编码和城市名,但是有的邮政编码区域并不包含在对应的城市中。可能是人工输入该信息时录颠倒了两个数字,或许是在手写体扫描时读错了一个数字。无论导致不一致的原因是什么,重要的是能检测出来,并且如果可能的话,纠正这种错误。
有些不一致类型容易检测,例如人的身高不应当是负的。有些情况下,可能需要查阅外部信息源,例如当保险公司处理赔偿要求时,它将对照顾客数据库核对赔偿单上的姓名与地址。
检测到不一致后,有时可以对数据进行更正。产品代码可能有“校验”数字,或者可以通过一个备案的已知产品代码列表,复核产品代码;如果发现它不正确但接近一个已知代码,则纠正它。纠正不一致需要额外的或冗余的信息。
【案例】 不一致的海洋表面温度 该例解释实际的时间序列数据中的不一致性。这些数据是在海洋的不同点测量的海洋表面温度(SST)。最初人们利用船或浮标使用海洋测量方法收集SST数据,而最近开始使用卫星来收集这些数据。为了创建长期的数据集,需要使用这两种数据源。然而,由于数据来自不同的数据源,两部分数据存在微妙的不同。这种差异显示在图2.7中,该图显示了各年度之间SST值的相关性。如果某两个年度的SST值是正相关的,则对应于这两年的位置为白色,否则为黑色。(季节性的变化从数据中删除,否则所有的年都是高度相关的。)数据汇集在一起的地方(1983年)有一个明显的变化。在1958~1982年和1983~1999年两组中,每组内的年相互之间趋向于正相关,但与另一组的年负相关。这并不意味着该数据不能用,但是分析者应当考虑这种差异对数据挖掘分析的潜在影响。

三、数据集成
数据集成是将多个数据源中的数据整合到一个一致的数据存储(如数据仓库)中。这些数据源可能包括多个数据库、数据立方体或一般文件。由于数据源的多样性,这就需要解决可能出现的各种集成问题。
模式集成和对象匹配可能需要技巧。来自多个信息源的现实世界的等价实体如何才能匹配?这涉及实体识别问题。例如,数据分析者或计算机如何才能确信一个数据库中的customer_id和另一个数据库中的cust_number指的是相同的属性?每个属性的元数据包括名字、含义、数据类型和属性的允许取值范围,以及处理空白、零或null值的空值规则。
1、数据模式集成
通过整合不同数据源中的元数据来实施数据模式的集成。特别需要解决各数据源中属性等命名不一致的问题。
2、检测并解决数据值的冲突
对现实世界中的同一实体,来自不同数据源的属性值可能是不同的。可能的原因有不同的数据表示、不同的度量等。例如学生成绩,有的用100制,有的用5等制,这都需要纠正并统一。
原因:不同的数据表示,不同的度量等等。如重量属性可能在一个系统中按公制单位存放,而在另一系统中按英制单位存放.数据在语义上的差异是数据集成经常遇见的问题。连锁旅馆,不同城市的房价不仅可能涉及不同的货币,而且可能涉及不同的服务(如免费早餐)和税收。
解决冲突的简单办法是指定某一系统在冲突中占主要地位。
3、处理数据集成中的冗余数据
集成多个数据源时,经常会出现冗余数据,常见的有属性冗余,如果一个属性可以由另外一个表导出,则它是冗余属性。
如工资表中的应发工资、应扣部分、实发工资都是由其它属性导出。由属性或维命名的不一致也可能导致数据集中的冗余。
有些冗余可以采用相关分析检测。例如,给定A、B两个属性,根据对应的数据可以分析出一个属性能够多大程度上蕴涌另一个属性,属性A、B之间的相关性可用下式度量:

其中,
注:
四、数据变换
数据变换的作用就是将数据转换为易于进行数据挖掘的数据存储形式。最常见的数据变换方法是规格化,即将属性数据按比例缩放,使之落入一个小的特定区间。
1、最小-最大规范化
对给定的数值属性A,[minA,maxA]为A规格化前的取值区间,[new_minA,new_maxA]为A规格化后的取值区间,最小-最大规格化根据下式将A的值v规格化为值v':

例如,某属性规格化前的取值区间为[-100,100],规格化后的取值区间为[0,1],采用最小-最大规格化属性值66,变换方式为:

2、零-均值规格化
对给定的数值属性A, 、σA分别为A的平均值、标准差,零-均值规格化根据下式将A的值v规格化为值v':

例如,某属性的平均值、标准差分别为80、25,采用零-均值规格化66:

3、小数定标规格化
属性A,max|A|为A的最大绝对值,j为满足
的最小整数,小数定标规格化根据下式将A的值v规格化为值v':

例如,属性A规格化前的取值区间为[-120,110],采用小数定标规格化66,A的最大绝对值为120,j为3,66规格化后为:

五、数据规约
为什么需要进行数据规约?一是,数据仓库中往往存有海量数据。二是,在整个数据集上进行复杂的数据分析与挖掘需要很长的时间。
数据归约又称数据约简或数据简化。对于大数据集,通过数据归约可以得到其归约表示,它小得多,但仍接近于保持原数据的完整性,这样在归约后的数据集上挖掘将更有效,并产生相同(或几乎相同)的分析结果。
数据归约有多方面的好处。关键的好处是,如果维度(数据属性的个数)较低,许多数据挖掘算法的效果就会更好。部分是因为维归约可以删除不相关的特征并降低噪声,另一部分是因为维灾难。(维灾难在下面解释。)还有一个好处是维归约可以使模型更容易理解,因为模型可能只涉及较少的属性。此外,数据归约也可以更容易让数据可视化。即使数据归约没有将数据归约到二维或三维,数据也可以通过观察属性对或三元组属性达到可视化,并且这种组合的数目也会大大减少。最后,使用数据归约降低了数据挖掘算法的时间和内存需求。
数据归约主要有属性归约和记录归约两类。
1、属性规约
属性归约又称为维归约、属性子集选择、特征子集选择,它通过删除不相关的或冗余的属性减小数据集。目标是找出最小属性集,使得数据在其上的概率分布尽可能地接近在原属性集上的概率分布。
冗余特征重复了包含在一个或多个其他属性中的许多或所有信息。例如,一种产品的购买价格和所支付的销售税额包含许多相同的信息。不相关特征包含对于手头的数据挖掘任务几乎完全没用的信息,例如学生的ID号码对于预测学生的总平均成绩是不相关的。冗余和不相关的特征可能降低分类的准确率,影响所发现的聚类的质量。
2、记录规约
记录归约是指通过用少量记录代表或替换原有记录来减小数据集。记录归约的基本方法有抽样和数据概化。
(1)抽样
抽样是一种选择数据对象子集进行分析的常用方法。抽样就是用数据的较小随机样本表示大的数据。在统计学中,抽样长期用于数据的事先调查和最终的数据分析。在数据挖掘中,抽样也非常有用。然而,在统计学和数据挖掘中,抽样的动机并不相同。统计学家使用抽样的原因是获取感兴趣的整个数据集的代价太高并且太费时间,而数据挖掘人员进行抽样,通常是因为处理所有数据所需的内存或时间方面的计算成本太高。在某些情况下,使用抽样的算法可以压缩数据量,以便可以使用更好但开销较大的数据挖掘算法。有效抽样的主要原理如下:如果样本是有代表性的,则使用样本与使用整个数据集的效果几乎一样。反过来说,若样本近似地具有与原数据集相同的(感兴趣的)性质,则称样本是有代表性的。如果数据对象的均值(平均值)是感兴趣的性质,而样本具有近似于原数据集的均值,则样本就是有代表性的。由于抽样是一个统计过程,特定样本的代表性是不一样的,因此最好能做的就是选择一个抽样方案,以确保以很高的概率得到有代表性的样本。如下所述,这涉及选择适当的样本容量以及抽样技术。
包括:简单随机抽样(包括有放回和无放回)、聚类抽样、分层选样。
无放回抽样——每个选中项立即从构成总体的所有对象集中删除;
有放回抽样——对象被选中时不从总体中删除。在有放回抽样中,相同的对象可能被多次抽出。当样本与数据集相比相对较小时,两种方法产生的样本差别不大。但是对于分析,有放回抽样较为简单,因为在抽样过程中,每个对象被选中的概率保持不变。
当总体由不同类型的对象组成并且每种类型的对象数量差别很大时,简单随机抽样不能充分地代表不太频繁出现的对象类型。在分析需要所有类型的代表时,这可能出现问题。例如,当为稀有类构建分类模型时,样本中适当地提供稀有类是至关重要的,因此需要提供具有不同频率的感兴趣的项的抽样方案。
分层抽样(stratified sampling)就是这样的方法,它从预先指定的组开始抽样。在最简单的情况下,尽管每组的大小不同,但是从每组抽取的对象个数相同。另一种变种是从每一组对象抽取的样本数量正比于该组的大小。
【补充】抽样与信息损失 一旦选定抽样技术,就需要选择样本容量。较大的样本容量增大了样本具有代表性的概率,但也抵消了抽样带来的许多好处。反过来,使用较小容量的样本,可能丢失模式或检测出错误的模式。图2.9a显示了包含8000个二维点的数据集,而图2.9b和图2.9c显示了从该数据集抽取的容量分别为2000和500的样本。该数据集的大部分结构都出现在2000个点的样本中,但是许多结构在500个点的样本中丢失了。

【补充】确定合适的样本容量 为了说明确定合适的样本容量需要系统的方法,考虑下面的任务。
确定一个数据集,它包含少量容量大致相等的组。从每组至少找出一个代表点。假定每个组内的对象高度相似,但是不同组中的对象不太相似。下图显示了一个理想簇(组)的集合,这些点可能从中抽取。

使用抽样可以有效地解决该问题。一种方法是取数据点的一个小样本,逐对计算点之间的相似性,然后形成高度相似的点组。从每个点组取一个点,则可以得到具有代表性的点的集合。然而,按照该方法,需要确定样本的容量,它以很高的概率确保得到期望的结果,即从每个簇至少找出一个代表点。图b显示了随着样本容量从10变化到60,从10个组的每一个组中得到一个对象的概率。有趣的是,使用容量为20的样本,只有很小的机会(20%)得到包含所有10个组的样本。即便使用容量为30的样本,得到不包含所有10个组中对象的样本的概率也很高(几乎40%)。
(2)数据概化
数据概化也称为数据泛化,就是将数据源中的跟任务相关的数据集从较低的概念层抽象到较高的概念层的过程。
数据概化的一个基本方法是面向属性的归纳,根据属性的概念分层,通过阈值控制,将属性的低层属性值用相应高层概念替换,合并后得到原数据集的记录归约结果。类似于数据立方体在记录个数聚集函数上的上卷操作。
六、离散化
对于数值属性来说,由于数据的可能取值范围的多样性,导致可能包含的值太多使数据挖掘难以得到用户满意的知识。而知识本身也是基于较高层次的概念来获取的。
连续属性的离散化就是在特定的连续属性的值域内设定若干个离散化的划分点,将属性的值域范围划分为一些离散化区间,最后用不同的符号或整数值(这些离散化区间的标记)表示落在每个子区间中的属性值。
(1)分箱
分箱是一种基于箱的指定个数自顶向下的分裂技术,也可以用于记录归约和概念分层产生的离散化方法。例如,通过使用等宽或等频分箱,然后用箱均值或中位数替换箱中的每个值,可以将属性值离散化,就像分别用箱的均值或箱的中位数平滑一样。它是一种非监督的离散化技术,对用户指定的箱个数很敏感。
(2)直方图分析
直方图分析也是一种非监督离散化技术。直方图将一个属性的值划分成不相交的区间,称作桶。例如,在等宽直方图中,将值分成相等的划分或区间,在等深直方图中,值被划分成其中每一部分包含相同个数的样本。每个桶有一个标记,用它替代落在该桶中的属性值,从而达到属性值离散化的目的。
【例】直方图。下面的数据是AllElectronics通常销售的商品的单价表(按美元取整)。已对数据进行了排序:1, 1, 5, 5, 5,5, 5, 8, 8, 10, 10, 10, 10, 12, 14, 14, 14, 15, 15, 15, 15, 15, 15, 18, 18, 18, 18, 18, 18, 18, 18, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 25, 25, 25, 25, 25, 28, 28, 30, 30, 30。

(3)聚类
聚类分析是一种流行的数据离散化方法。它将对象划分为群或聚类,使得每个聚类中的对象“类似”,但与其他聚类中的对象“相异”。通过聚类算法将属性的值划分成簇或组,每个簇或组有一个标记,用它替代该簇或组中的属性值。
七、数据挖掘的算法
1、数据挖掘算法的基本特征
数据挖掘算法着重强调两个基本特征:有效性和可伸缩性。
一个有效的数据挖掘算法是指满足挖掘任务的要求,获得用户满意的知识。
一个数据挖掘算法具有良好的可伸缩性是指对小数据集和大规模数据有同样的效果,也就是说,如果给定内存和磁盘空间等可利用的系统资源,其运行时间应当随数据的规模近似线性地增加。
2、数据挖掘算法的分类
(1)基于学习方式的分类
有导师学习(监督学习):输入数据中有导师信号,以概率函数、代数函数或人工神经网络为基函数模型,采用迭代计算方法,学习结果为函数。
无导师学习(非监督学习):输入数据中无导师信号,采用聚类方法,学习结果为类别。典型的无导师学习有发现学习、聚类、竞争学习等。
强化学习(增强学习):以环境反馈(奖/惩信号)作为输入,以统计和动态规划技术为指导的一种学习方法。
(2)基于数据形式的分类
结构化学习:以结构化数据为输入,以数值计算或符号推演为方法。典型的结构化学习有神经网络学习、统计学习、决策树学习、规则学习。
非结构化学习:以非结构化数据为输入,典型的非结构化学习有类比学习、案例学习、解释学习、文本挖掘、图像挖掘、Web挖掘等。
(3)基于学习目标的分类
概念学习:即学习的目标和结果为概念,或者说是为了获得概念的一种学习。典型的概念学习有示例学习。
规则学习:即学习的目标和结果为规则,或者说是为了获得规则的一种学习。典型的规则学习有决策树学习。
函数学习:即学习的目标和结果为规则,或者说是为了获得函数的一种学习。典型的函数学习有神经网络学习。
类别学习:即学习的目标和结果为对象类,或者说是为了获得类别的一种学习。典型的类别学习有聚类分析。
贝叶斯网络学习:即学习的目标和结果是贝叶斯网络,或者说是为了获得贝叶斯网络的一种学习。其又可分为结构学习和参数学习。

