当前位置:文档之家› 第2章 数据挖掘方法和最佳实践

第2章 数据挖掘方法和最佳实践

第2章 数据挖掘方法和最佳实践
第2章 数据挖掘方法和最佳实践

第2章数据挖掘方法和最佳实践

数据挖掘的方法越严格就越复杂,如果缺少其中一个步骤,数据挖掘工作就可能失败。因此,掌握良好的方法论是学习数据挖掘的关键,根据作者多年数据挖掘经验,在国内外先进经验的基础上,发展了一套有效的习惯性方法。本章将把这些实践活动总结出的有序步骤,作为数据挖掘的方法论来展示。数据挖掘是一个自然的迭代过程,有些过程需要多次重复进行,完全跳过某个过程不一定恰当。

2.1为什么需要方法

数据挖掘是从过去获取知识用于未来更好决策的一种方法。本章介绍的实践方法主要为了避免知识获取过程中出现以下两个不希望的结果:

●获取不真实的知识;

●获取真实但无用的知识。

就像水手要学会绕开海上的漩涡和海中的暗礁等危险一样,数据挖掘人员需要了解如何避免这些常见的陷阱。

2.1.1获取不真实的知识

获取不真实的知识比获取无用的知识更加危险,因为人们可能依据这些不正确的信息做出重要的决策;如果依据不正确的信息进行医学决策,那将是致命的。数据挖掘的结果似乎通常是可靠的,因为从表面上看,是基于科学的方式而获取的。这种可靠性外观很具有欺骗性:因为数据本身可能是不正确的,或者与当时的问题没有关联;发现的模式可能只反映了过去的决策,也可能根本什么也没反映;一些数据转换(如汇总)可能破坏或者隐藏了一些重要信息。下面讨论可能导致错误结论的常见问题。

1. 模式可能不代表任何底层规划

人类常常根据一些模式来预测未来,因为模式通常反应了一些现实世界运转的底层原理。比如:月亮的圆缺、四季的更替、日夜的轮转,甚至喜爱的电视节目在一周的某一天的某个固定时间的规则出现都是有用的,因为它是稳定的,因而是有预测性的。可以使用这些模式来决定什么时候种植何种药材是安全的,可以给录像机编好录制节目时间表。另一些模式显然不具有任何预测能力,如果抛一枚硬币一连出现了五次正面向上的情况,第六次抛起仍然有50%的可能会反面朝上。数据挖掘人员面临的挑战是计算出哪些模式可用于预测,哪些不能。

发现不能推广的模式的技术术语是过度适应(overfitting)。过度适应导致不稳定的模型,这些模型可能某一天起作用,但是另一天却不起作用。建立稳定的模型是数据挖掘方法的主要目标。

2. 模型集可能不能反映相关人群的总体状况

模型集是用于建立数据模型的历史数据的集合。为使从数据集提取的推论正确,模型集必须反映模型所描述、分类和评分的人群的总体状况。不能正确反映母体数据的样本是有偏差的。使用有偏差的样本作为模型集就会导致获取不完全真实的结果,当然这也是很难避免的。例如,现实客户不同于潜在客户,因为他们代表的是在过去的时间里,一直积极响应任何信息、服务和各种吸引客户的促销活动的那些人群。对当前客户的研究可能得到更多同样的结论。如果过去的市场营销活动追逐的是那些市区的富有消费者,那么任何用当前客户与一般人群的比较都可能显示客户应该倾向于富有的城市人。这样的模型可能错过使中等收入的郊区居民成为客户的机会。而使用有偏差样本的结果比仅仅错过营销机会更糟。

细心关注模型集样本数据的筛选和取样,对成功的数据挖掘至关重要。

2.1.2获取真实但无用的知识

获取无用知识的情况,虽然不像不真实的内容那样危险,却是非常普遍遇到的现象。获取的无用知

识主要包括如下两类。

1. 获取已知的知识

数据挖掘应该提供新的信息。例如,住在没有送货上门地区的人,不会订阅报纸,即使他们可能响应订阅服务,服务也不会开始;如果在一些特殊的偏远山区地区没有某类保健按摩椅产品销售,可能厂家就不会在那里提供这种椅子的维修服务。我们曾经见到很多这样的发现,不是这些模式没有意义,只是它们可能使某些不明显的模式黯淡。

获取已知的知识确实可以给我们一个有用的提示,从技术角度来说,这表明数据挖掘工作确有成效,而且数据本身也已经相当精确,这是非常令人鼓舞的。如果数据和所应用的数据挖掘技术足以发现已知正确的事实,据此可以相信其他发现也可能为真。数据挖掘也经常揭示应该知道但至今还不知道的事情,例如:退休人员对定期健康保健服务的响应可能性不大。

2. 获取不能使用的知识

数据挖掘也时常揭示真实的和事先不知道的某些关系,但是仍然很难利用它们,有时候问题在于规章的限制。例如:客户的电子病历也许间接的表明医院之间某些科室的密切关系,但是这些科室可能不被允许利用这个有利条件。

另一些时候,数据挖掘发现重要的结果可能不在公司可控制范围之内。比如:一种产品可能更适合某些气候,但是我们很难改变气候;可能由于地形原因,在某些地区的某种服务会很差,但这也很难改变。

数据挖掘方法论的目的是避免获得不真实的知识,以及任何没有用的知识。更积极的理解是,数据挖掘方法论的目标是确保数据挖掘得到稳定的模型,以便将该模型用于要解决的社会、企业和医学问题。

2.2假设测试

假设测试(hypothesis testing)是整合数据到公司的决策制定过程(decision-making process)的最简单方法。假设测试的目标是证实或者反驳预想观点,是几乎所有数据挖掘工作的一部分。数据挖掘人员经常在各种方法之间来回反复,先是对观察到的行为(通常在专家的帮助下)给出可能的解释,并且抽取数据,分析假设的合理性,然后让数据给出要测试的新假设。

假设测试是科学家和统计学家惯于花费心血研究的事情。假设是一种解释,它的正确性可以由分析数据来检验。这些数据或者仅仅由观察收集,或者由实验生成。当结果显示,用于医院做决策的这些假设是不正确的时候,假设测试是最有价值的。例如,假定某医院根据目标市场的许多假设推出不同的保健服务,那么这些假设是否被实际的响应证实就非常值得测试。一种方法是对不同的保健服务使用不同的热线电话号码,记录每个响应者拨打的号码,然后将所收集的通话信息与最初期望影响的人群进行比较。

假设测试本质上是不确定的,因此用“方法论”这个术语也许有点不恰当。然而,这个过程还是有一些可以确认的步骤,其中第一也是最重要的步骤就是产生用来测试的好假设。

1. 产生假设

产生假设的关键在于从公司(医院)获得不同的输入数据,如果可能,最好从公司(医院)外部也获得一些数据。

清楚的表述问题非常重要,特别是以前没有认识到是一个问题的事情。例如:用于评价公司(医院)业绩的度量没有捕捉到某个问题,所以这个问题一直没被注意到。如果公司总是基于每月的新销售量来测试销售能力,销售人员可能永远不会去考虑“新客户保持活跃的时间”或者“他们在公司与客户保持关系的问题上花费了多少”这类问题。然而当被问及这些问题时,销售人员可能意识到,某些客户行为是由于市场营销与客户之间的距离太远而错过了。

2. 测试假设

考虑下面的假设:

●经常在外的人对移动电话每分钟的价格敏感度比其他人低;

●需要做手术的病人,比较关心手术的风险性;

●老年人更加关注保健品的功能。

这些假设是否正确,必须使用实际数据进行测试。如果这些假设与实际数据不相符合,则假设被推翻。

2.3 数据挖掘的方法

为了尽可能避免获取不真实或者真实但无用的知识,必须采取恰当的方法。本书将数据挖掘的方法分为11个步骤,读者应将本部分的操作步骤与后续各章节利用SQL Server 2005进行数据挖掘实践的步骤结合起来。下面对这11个步骤进行论述。

1.将实际问题转换为数据挖掘问题

进行数据挖掘的时候,首先要将实际问题转化为数据挖掘问题,能否转换为恰当的数据挖掘问题是进行数据挖掘的关键。下面对相关问题进行介绍。

(1)什么是数据挖掘问题

将实际问题转换为数据挖掘问题时,首先要与第一章介绍的7类数据挖掘任务进行比较,明确要解决的实际问题属于数据挖掘的哪一类任务。

本书重点解决分类、回归、预测、聚类和关联5种任务。当然,单独的数据挖掘工具或技巧只能对某些任务适用。

前三项任务:分类、回归和预测是定向数据挖掘(directed data mining)的例子。关联和聚类是非定向数据挖掘(indirected data mining)的例子。定向数据挖掘总是有一个目标变量,表示分类、回归和预测的事情。

非定向数据挖掘没有目标变量,其任务是发现不依赖任何一个变量的总模式。非定向数据挖掘的最普遍形式是聚类,即不考虑哪个变量是最重要的情况下,发现相似记录的分组。在机器学习文献中,定向数据挖掘称为有指导(监督)的学习(supervised learning),非定向数据挖掘称为无指导(监督)的学习(unsupervised learning)。

(2)如何应用数据挖掘结果

这是将实际问题转化为数据挖掘问题过程中最重要的一步。针对数据挖掘结果,有一个明确的答案是至关重要的,同时要求不同的预期应有不同的解决方案。

例如,很多数据挖掘的目的是为了改善客户的持久力。这种研究的结果可以应用在以下任意一种情形:

●抢先联络高风险/高价值的客户,并提供优惠待遇,使他们乐意留下

●改变获取渠道的组合,以期带来最忠诚的客户

●预报未来岁月的客户群体状况

●改变产品,修正使客户流失的不足之处

这些目标中的任何一个都与一个数据挖掘过程有关。通过电话销售或直接邮寄服务活动通知,联络现有的客户,意味着除了确认风险客户之外,还能够了解他们为什么处于风险状态,因此可以构想有吸引力的优惠政策;并且了解他们什么时间将处于风险状态,因此可以在非常恰当的时间联络他们。预报意味着除了确认哪些现有客户可能离开之外,还可以确定可能增加多少新客户,以及他们可能停留多长时间。

(3)以何种方式交付结果

数据挖掘可能有几种不同类型的交付方式。如果最初的数据挖掘目标是了解市场,交付方式通常是一份充满图或者表格的报告或介绍。如果该项目是为了辅助医生诊断,交付方式通常一些非常详细的指标。当数据挖掘项目是正在进行的客户关系管理分析的一部分时,交付方式极可能是一个或者一系列计算机程序,可以定期运行,给客户群体中预定义的子集打分,并且随时间和另外的软件一起管理模型和评分。交付方式可能影响挖掘的结果。

(4)商业用户(或医务工作者)和信息技术的角色

获得以上问题正确解决方案的唯一方法是让商业问题的所有者(或医生)参与其中,判断如何将数据挖掘的结果应用于业务或临床中;让信息技术工作者和数据库管理员参与,来判断如何交付结果。通常,同时在企业内部和合适的外部领域广泛收集数据是非常有用的。我们建议把企业各部门的代表集中到一起,而不是分别单独会见他们。用这种方式,具有不同知识领域的人和专家有机会相互交流各自的思想。所有这些磋商的目标是获得所讨论的业务(医学)问题的清晰陈述。最终的业务(医学)问题陈述必须尽可能具体。

2.选取合适数据

数据挖掘需要数据。在所有可能的情况中,最好是所需数据已经存储在共同的数据仓库中,经过清理,数据可用,历史精确并且经常更新。事实上,它们经常因为种种原因以不兼容的形式散列在各种操作系统平台的计算机上,这些计算机之间运行着不同的操作系统,通过不兼容的桌面工具来访问。

当然,根据问题和产业不同,有意义的和可用的数据源(data source)也不同。一些有益数据的例子有:保质期内索赔数据(包括固定格式的数据和自由文本字段),医疗保险索赔数据(medical insurance claims data),人口统计和生活方式数据,人口普查数据等。一旦业务问题完成公式化,就可以构造一个拥有最佳数据的数据列表。对于研究现有客户来说,需要包括从他们成为客户的那一刻起的数据(数据获取渠道、获取日期、最初的产品组合、最初的信用评分,等等),描述他们当前状态的类似数据,以及客户保有期内集聚的行为数据。当然,不可能从数据列表中找到所有数据,但是最好从你想找到什么数据着手。

有时候,开始一项数据挖掘项目之初并没有一个特定的业务问题。部门意识到收集的数据不能得到很高的价值时,开始思考通过数据挖掘来提高数据的价值。这类项目成功的秘诀在于把它转换为一项为解决特定问题而设计的项目。第一步是探索可用的数据,写出候选商业问题列表,邀请业务服务用户创造一个非常长的待选列表,然后将其简化成少数可以达到的目标,即数据挖掘的问题。在选取数据时需要考虑如下问题。

(1)什么数据可用

首先是从业务部门的数据仓库中寻找数据。仓库中的数据是已经清理、验证过的,并且已把多种数据源整合。单个数据模型有希望保证类似命名的字段在整个数据库中有同样的意义和相容的数据类型。公司数据仓库是历史仓库,可以增加新的数据,但历史数据永远不再改变。因为它为决策支持而设计,数据仓库提供详细的数据,可以聚类到正确的层次,以利于数据挖掘。

现实中,许多机构并不存在这样的数据仓库;或者存在一个或者多个数据仓库,但是不能达到上述要求。在这种情况下,数据挖掘人员必须从各部门数据库和操作系统内部寻找数据。操作系统是为完成特定的任务而设计,如索赔处理、呼叫转换、订货登记或者付账等,最初的设计目的是快速、准确地处理交易。不管数据的格式如何,目的是很好地适合特定目标。如果有历史数据的话,也可能存储在存储器中。在实际应用中,常常需要大量的调整和编程工作,才能得到对知识发现有益的数据格式,特别是医疗机构。

在很多公司,想确定什么数据可用是非常困难的。想确定什么数据可用,需要仔细查阅数据,与用户和数据库管理员交流,或者仔细检查已有的报告。

(2)多少数据够用

到底多少数据够用这个问题没有一个简单的答案。答案依赖于所使用的算法、数据复杂程度等。统计学家已经花费数年时间开发测试手段,以确定产生模型的最小模型集。机器学习研究人员花费很多时间和精力设计方法,使得训练集的一部分可以重用于验证和测试。所有这些工作忽略了重要一点:在实务工作部门,统计学家很缺乏,而数据很多。

任何情况下,如果数据缺乏的话,数据挖掘不仅有效性差,而且不大可能有用。当小型数据库中相当大量的数据掩盖了可探查到的模式时,数据挖掘最有用。因此我们建议使用足够多的数据,使得不会出现“足够大的样本集的规模是多少”这个问题。即使不采用数以百万计的预分类记录,我们一般也会采用数万条记录,以保证训练集、验证集、测试集都包含上千条记录。

在数据挖掘中,数据越多越好,但是有几个忠告。第一个忠告是关于模型集的规模和密度(density)的关系。密度指利益输出的普遍性。通常,目标变量代表相对稀有的事情。在创建模型的过程中,最好使每个模型集的各个输出数量大致相同。一个较小的均衡样本比含有稀有输出比例极低的较大样本更可取。

第二个忠告与数据挖掘人员的时间有关。当模型集大到足以建立一个很好的、稳定的模型,再增大模型集反而会有负面的影响,因为在更大的数据集上,每件事情都要花费更长的时间。由于数据挖掘是一个反复的迭代过程,如果建模过程的每一步运行时间不是数分钟而是数小时的话,等待时间可能变得非常长。

测试用于建模的样本规模是否足够大的一个简单办法是:成倍增加样本数量,测试模型精度的变化。如果用大的数据样本创建的模型比使用小的样本创建的模型要好得多,那么小的样本不够大。如果没有任何变化,或者仅有微弱的变化,那么原来的样本可能是合适的。

(3)需要多少历史数据

数据挖掘使用过去的数据预测未来。但是需要多久以前的数据才合适呢?这是另一个没有简单答案的简单问题。要考虑的第1个问题是季节性,大多数实际活动都表现出一定程度的季节性:第四季度的销售上升,休闲旅游在夏季升温,等等,应该有足够的历史数据来捕捉这类周期性事件。

另一方面,由于销售条件的改变,太久远的数据可能无益于数据挖掘,特别是受一些外部事件的影响,如自然灾害等,就更会出现这种情况。对很多面向客户的数据挖掘来说,2~3年的历史数据就是合适的。即使在这种情况下,关于客户关系建立初始时的数据常常是很有价值的,例如,初始渠道是什么,初始的优惠条件是什么,客户最初如何支付,等等。

(4)需要多少变量

没有经验的数据挖掘者经常匆匆忙忙删掉一些看来不太有意义的变量,保留仔细挑选后他们认为很重要的少数几个变量。数据挖掘的方法提倡让数据本身揭示哪些变量重要,哪些不重要。

最初忽略的变量,如果结合其他变量使用,经常被证明有预测性价值。最后的模型通常基于几个变量,但是这些变量经常是结合一些其他变量而产生的,往往开始时并不明显,最后却发现很重要。

(5)数据必须包含什么

数据至少要包含所有可能的有意义的结果的例子。在定向数据挖掘中,目标是预测特定目标变量的值,有一个由预分类数据构成的模型集至关重要。

3.设法理解数据

在开始建立模型之前,无论花多少时间研究数据都是值得的。好的数据挖掘人员在很大程度上依赖于直觉(intuition),比如在某种情况下能够猜出一个好的衍生变量可能是什么样的。培养这种直觉的唯一方法就是全身心的投入到陌生的数据集合中。这样你就有可能发现许多数据质量问题,受到更多启发,去问许多其他方式下不会想到的问题。

(1)检查分布状况

一个良好的开端是检查数据集中每一个变量的直方图,并考虑这些直方图说明了什么问题。所有看上去不同一般的东西都要记下来。

(2)比较变量值及其描述

考察每个变量的取值,并将其与在可用文档中提供的关于该变量的描述进行比较,这样的比较经常可以发现描述是不准确的和不完整的。

(3)验证假设

利用简单的交叉表和可视化工具如散点图、条形图和示意图,可以验证关于数据的假设。与其他不同变量关联起来考察目标变量,可以理解诸如不同响应的渠道、不同人群医疗市场的流失率或者收入按性别的差异等细节。如果可能的话,尽量通过直接从基层数据重新生成的方法来比较报告的概要数字是否准确。

(4)提出问题

记下所有的与已有知识或者期望值不符的数据。对数据进行探究的一个重要内容就是要给数据提供者提一系列的问题。由于很少有用户会像数据挖掘者那样仔细对待数据,所以这些问题需要进一步研究。这些问题的答案有时会提供一些我们以前不知道的客户领域知识,我们还可能发现在提取数据的过程中存在的漏洞。

4.创建模型集

模型集包含了在创建模型过程中用到的所有数据。模型集中有些数据用于发现模式,有些数据用于验证模型是否稳定,有些用于评价模型的性能。创建模型集需要从多个数据源收集数据以构成客户特征标识,并为分析准备数据。

(1)收集客户特征标识

模型集就是一个表格或者多个表格的集合,其中每一行对应一个待研究的条目,字段则是与对建模有用的条目相关的所有内容。在用这些数据描述客户的时候,模型集中的行通常称为客户特征标识(customer signature)。从关系数据库中收集的客户特征标识往往需要连接多个数据表进行复杂的查询,然后通过其他的数据源进行扩充。

(2)创建平衡样本

数据挖掘者通常需要区分不同的群体,比如响应者和非响应者,好的和差的。或者不同客户群的成员等。当这些群体的成员数量大致相同时,数据挖掘算法的效果最佳。然而,这种情况是不大可能自然出现的,事实上,成员不足的那些群体往往更值得关注。

在开始建模之前应通过下面两种方法来平衡数据集:1)不同群体以不同比例取样;2)添加权重因子,使得最大的群体与最小的群体成员的权重不同。

(3)包含多种时间帧

方法论的基本目标就是创建稳定的模型。这起码意味着,模型应该能够在任何时候和未来都运转良好。基于单一时间段建立模型,就会增加以偏概全的风险。解决问题的思路应该是综合考虑多个时间段的数据。

(4)创建预测性模型集

当模型集用于预测时,还要考虑关于时间概念的另一个问题。尽管模型集应该包含多种时间帧,任何一个客户特征标识都可能包含预言性的标量和目标变量之间的一个时间差异。时间总是被分为3个阶段:过去、现在和将来。在进行预测时,模型是使用过去的数据预测未来情况。

假如有一个模型,使用6月份的数据(不太遥远的过去)来预测7月份(最近的过去)的情况,那

么只有当8月份的数据可用的时候,这个模型才能够用于预测9月份的情况。可是,8月份的数据什么时候可用呢?事实上,在8月份可用是不可能的,因为8月份的数据正在生成。数据总会有,但可能在9月份的第一周还不行,因为数据需要收集、清理、装载、测试等。在许多公司中,8月份的数据到9月中旬甚至10月份才可以使用,但此时已经不再有人关心对9月份的预测了。对这个问题的解决方法,就是要在模型集中包含一个月的延迟时间。

(5)划分模型集

在从合适的时间段获得了预分类的数据以后,方法论要求将其分为三个部分。第一部分是训练集,用于创建初始的模型;第二部分是验证集,用于调整初始的模型,使它更加通用,而不至于过多地依赖于训练集;第三部分是测试集,用于测试把模型用于未经训练的数据时可能的有效性。分成这样的三个部分是必要的,因为一旦某些数据在上述过程的某一步中使用过,其信息也就变成了模型的一部分,这些数据也就无法应用到下一步中,因而也就不能用于修正或者评价模型。

对于预测性模型,测试集应该来自与和训练集、验证集不同的时间段。模型的稳定性要通过其月复一月的运行情况来验证。不同时间段的测试集,通常称作过期(out of time)测试集,是测试模型稳定性的一个好方法,尽管这样的测试集并不总是可用的。

5.修复数据问题

所有数据都是“脏”的,所有数据都会有问题。数据是否有问题要随数据挖掘技术的不同而定。对某些技术而言,比如决策树、缺失值和离群值不会引起太多问题;对于另外一些技术,比如神经网络,就会有各种各样的麻烦了。下面讨论数据修复中的一些共性问题。

(1)拥有太多数值的分类变量

诸如邮政编码、区县、电话听筒样式和职业编码等变量都是传递有用信息的,但那不是大多数数据挖掘算法能够处理的方式。主要问题在于,尽管一个人住在哪里和做什么工作是很重要的预测因素,但传递这些信息的变量如此之多,而对于大多数的取值,数据中的样本又是如此之少,所以像邮政编码、职业这样的变量,连同他们所表达的有价值信息一起被抛弃掉了。

像这样的变量有两种处理方法,一是组合,将与目标变量非常相似的变量组合在一起;二是将它们替换为与邮政编码、电话听筒样式或者职业等相关的有意义的属性。

(2)具有倾斜分布和离群值的数值变量

对于任何使用算术运算(比如,数值与权重的乘积和数值的和)的数据挖掘技术,倾斜分布(skewed distribution)和离群值(outlier)都会引发问题。在许多情况下,抛弃离群值记录是有意义的。而在另外一些情况下,最好把数值分成大小相等的范围,比如十分位数。有时候,转换这类变量的最佳方法是通过对取值求对数等方法将其取值范围进行缩减。

(3)缺失值

有些数据挖掘算法能够将“缺失”看作一个值并将其融入规则中。不幸的是,另外的一些算法不能够处理缺失值(missing value)。没有任何简单直接的解决方案能够保留变量原有的真实分布。抛弃所有带有缺失值的记录会引起偏差,因为这些记录并不是随机分布的。将这些缺失值替换为某些可能的值,比如平均值或者最常见的值,会增加一些虚假的信息。而将这些值替换为某些根本就不可能的取值就更糟糕了,因为数据挖掘算法不会识别年龄变量的取值为-999这样的情况,算法会继续进行并使用该值。

而当缺失值必须被替换时,最好的方法是通过创建模型转移它们,这个模型把该缺失值作为目标变量。

(4)含义随时间变化的值

当数据来源于过去的不同时间点时,同一字段的同一取值所表示的含义随时间而变化的情况是很常见的。信用等级为“A”总是最好的,但是对应于层次A的具体信息是随时间不断变化的。要恰当的处

理这样的问题,就需要设计一个良好的数据仓库,在数据仓库中记录这些含义变化,并定义一个含义不随时间变化的新变量。

(5)不一致的数据编码

当针对同一主题的信息来源于多个数据源时,相同的数据可能会有不同的表示方法。如果不能很好地把握这些不同的表示方法,将导致错误的结论。常用的处理方法是以通用格式来表示这些数据。

6.变换数据,获取信息

数据组合起来后,主要的数据问题得到修复,但仍然需要准备数据以便分析,包括添加一些字段以表达某些信息,也可能会涉及消除离群值、数值变量的装入、对不同类型变量的分组归类、使用对数函数进行变换以将某些计数转换为比例,等等。数据准备是一个非常重要的主题,大致包括如下三个方面。

(1)捕捉趋势

大多数部门的数据含有时间序列,如营业额信息。绝大多数的数据挖掘算法对时间序列数据不进行处理。相互独立的对单个月份的数据调查不能发现诸如“三个月收入下滑”这样的信号。数据挖掘者能够通过添加一些衍生变量来获取趋势信息,例如通过最近一个月的支出与前一个月支出的比率(ratio)可以获取短期趋势,最近一个月的支出与去年同期的比率则可以获得一个长期趋势(long-term trend)。

(2)创建比率及变量的其他组合

趋势分析仅仅是通过合并多个变量来获取信息的一个例子,还可以将附加字段通过已有的字段导出。

(3)将计数转化为比率

许多数据集都包含计数(count)或者金额,这些计数和金额本身并无特殊意义,它们也会随其他值而变化。大家庭会比那些相对较小的家庭在食品杂货上花费更多,他们会在农产品、肉制品、袋装商品、清洁产品和其他任何东西上花费更多。比较每个家庭在每个类别中花费的比率应该是更有意义的。

7.建立模型

这个步骤的具体细节根据使用技术的不同而异,在关于每个具体挖掘方法的章节中有相应的描述。通常来说,创建模型的大多数工作都在这个步骤进行。在定向数据挖掘(directed data mining)中,根据独立的或者输入的变量,训练集用于产生对独立的或者目标变量的解释。这个解释可能采用神经网络、决策树或者其他表示数据库中的目标和其他字段之间关系的表示方式。在非定向数据挖掘中,就没有目标变量了。模型发现记录之间的关系,并使用关联规则或者聚类方式将这些关系表达出来。

建立模型是数据挖掘过程中的一个步骤,这个步骤由数据挖掘软件自动实现。正因为如此,这一步在数据挖掘工程中花费的时间相对较少。

8.评估模型

这一步将决定模型是否起作用,关于模型的评价要回答如下问题:

●模型准确程度如何?

●模型对被观测数据的描述精确度如何?

●在模型预测中,可以设置多大的置信度?

●模型是否易于理解?

当然,对这些问题的回答随所建立模型的类型而不同。此处的模型评估是对模型的技术优势的评估,主要包括如下内容。

(1)评估定向模型

定向模型可以通过使用先前未使用过的数据来评估其准确性。不同的数据挖掘任务需要不同的方法来评估模型的整体性能,需要不同的方法来判断模型对于任意的特定记录产生准确结果的可能性。下面

以分类和预测任务为例进行说明。

对于分类和预测任务,准确度(accuracy)是根据差错率来测量的,差错率是指被误分类的记录的百分比。在对新的记录数据进行分类时,基于预分类测试集的分类差错率可以用作对期望差错率的一个估计。当然,这个过程也只在测试集能够代表大量数据的普遍特征时才是有效的。

要确定模型的差错率,我们推荐的方法是使用测试数据集来测量,这个测试数据集应该是从与训练集和验证集相同的大量样本集合中抽取,但是要和它们分离开来。在理想的情况下,这种测试集的数据应该比模型集中的数据更新,然而在实际工作中,这通常是不可能的。

将差错率作为评价工具时,差错的程度是不同的,有些差错可能比其他差错严重得多。医学界有一个熟悉的例子可以说明这个问题,对严重疾病检查中,错误的阴性结果能够导致病人耽误治疗,最终可能危及生命;而一个错误的阳性结果充其量也不过是让病人进行进一步的检查(当然有可能花销较大,或者具有侵害性)。有些数据挖掘工具允许将每一种类型的误分类与差错成本联系起来,这样建立的模型就可以使差错成本最小化,而不是将误分类率最小化。

(2)利用提升度来比较模型

无论是使用神经网络、决策树还是其他方法,定向模型都是为完成某个任务创建的。为什么不评价一下它们在分类与预测方面的能力呢?比较分类模型性能的最常用方法是使用称为提升度(lift)的比率。

提升度解决了如何比较不同模型性能的问题,但是还不能回答最重要的问题:一个模型是否值得花时间、精力和金钱来创建?为了将花销与收益纳入到考虑范围,如果没有业务的更多背景知识,是无法回答这些问题的。另外,当两个模型被用于同样的或者相近的数据时,提升度也是一个非常便利的比较性能的工具。要注意的是,当测试集的输出结果有相同密集度时,两个模型的性能只能使用提升度来比较。

9.部署模型

部署模型(deploy model)就是将其从数据挖掘的环境转移到评分环境。这个过程可能很简单,也可能很难。在最坏的情况下,模型是用其他地方都不能够使用的软件在特殊环境下开发出来的。为了调用这个模型,程序员需要把模型的描述打印出来,然后用另外一种编程语言将其重新编程,以便在评分平台上运行。

更常见的一个问题是模型使用了未在初始数据中出现的输入变量。由于模型的输入至少源于字段,而这些字段最初是从模型集中提取出来的,所以这应该不是什么问题。不幸的是,数据挖掘者对数据进行变换,但并不总是能够保持变换后的记录“干净”和可重用。

部署数据挖掘模型的挑战在于,它们经常被用于为大型的数据集评分。在某些环境下,每天都要为上百万个客户记录中的每一条记录更新行为得分。评分值仅是数据库表中的一个附加字段,表示的经常是一种可能性或者是倾向性,因此通常取介于0到1之间的数值,当然,也并非一定如此。评分值也可能是聚类模型给出的类标记(class label),或者是带有可能性(probability)的类标记。

具体内容在后面各章节详细讲解。

10.评估结果

部署模型之后,要对结果进行解释、评估。这需要与实际环境和挖掘技术结合起来考虑,如果结果可以接受,数据挖掘过程结束;如果不可以接受或者可以进行改进,则转入第11步。

11.重新开始

每一个数据挖掘项目引出的问题都比它回答的问题要多。这是一件好事,意味着以前不可见的新关系,现在已经变得可见。新发现的关系提出用于测试的新假定,数据挖掘再一次从头开始。如果挖掘的结果不能令人满意,数据挖掘也需要再一次从头开始。

本章小结

在知识获取过程中可能出现两个不希望的结果:获取不真实的知识和获取真实但无用的知识。数据挖掘人员需要了解如何避免这些常见的陷阱。作者根据多年数据挖掘经验,并结合国内外先进技术,发展了一套有效的习惯性方法,本章详细的描述了进行数据挖掘的11步以及容易出现的问题。介绍的这些方法适用于几乎所有的领域和数据挖掘工具。通过对本章的学习,读者已经初步掌握对实际问题进行数据挖掘的方法。

习题

简述题

1.如何理解数据挖掘需要方法论?

2.定向数据挖掘和非定向数据挖掘的区别与联系是什么?

3.请举例说明如何对原始数据进行预处理?

大数据挖掘常用方法

数据挖掘常用的方法 在大数据时代,数据挖掘是最关键的工作。大数据的挖掘是从海量、不完全的、有噪声的、模糊的、随机的大型数据库中发现隐含在其中有价值的、潜在有用的信息和知识的过程,也是一种决策支持过程。其主要基于人工智能,机器学习,模式学习,统计学等。通过对大数据高度自动化地分析,做出归纳性的推理,从中挖掘出潜在的模式,可以帮助企业、商家、用户调整市场政策、减少风险、理性面对市场,并做出正确的决策。目前,在很多领域尤其是在商业领域如银行、电信、电商等,数据挖掘可以解决很多问题,包括市场营销策略制定、背景分析、企业管理危机等。大数据的挖掘常用的方法有分类、回归分析、聚类、关联规则、神经网络方法、Web 数据挖掘等。这些方法从不同的角度对数据进行挖掘。 (1)分类。分类是找出数据库中的一组数据对象的共同特点并按照分类模式将其划分为不同的类,其目的是通过分类模型,将数据库中的数据项映射到摸个给定的类别中。可以应用到涉及到应用分类、趋势预测中,如淘宝商铺将用户在一段时间内的购买情况划分成不同的类,根据情况向用户推荐关联类的商品,从而增加商铺的销售量。 (2)回归分析。回归分析反映了数据库中数据的属性值的特性,通过函数表达数据映射的关系来发现属性值之间的依赖关系。它可以应用到对数据序列的预测及相关关系的研究中去。在市场营销中,回归分析可以被应用到各个方面。如通过对本季度销售的回归分析,对下一季度的销售趋势作出预测并做出针对性的营销改变。

(3)聚类。聚类类似于分类,但与分类的目的不同,是针对数据的相似性和差异性将一组数据分为几个类别。属于同一类别的数据间的相似性很大,但不同类别之间数据的相似性很小,跨类的数据关联性很低。 (4)关联规则。关联规则是隐藏在数据项之间的关联或相互关系,即可以根据一个数据项的出现推导出其他数据项的出现。关联规则的挖掘过程主要包括两个阶段:第一阶段为从海量原始数据中找出所有的高频项目组;第二极端为从这些高频项目组产生关联规则。关联规则挖掘技术已经被广泛应用于金融行业企业中用以预测客户的需求,各银行在自己的ATM 机上通过捆绑客户可能感兴趣的信息供用户了解并获取相应信息来改善自身的营销。 (5)神经网络方法。神经网络作为一种先进的人工智能技术,因其自身自行处理、分布存储和高度容错等特性非常适合处理非线性的以及那些以模糊、不完整、不严密的知识或数据为特征的处理问题,它的这一特点十分适合解决数据挖掘的问题。典型的神经网络模型主要分为三大类:第一类是以用于分类预测和模式识别的前馈式神经网络模型,其主要代表为函数型网络、感知机;第二类是用于联想记忆和优化算法的反馈式神经网络模型,以Hopfield 的离散模型和连续模型为代表。第三类是用于聚类的自组织映射方法,以ART 模型为代表。虽然神经网络有多种模型及算法,但在特定领域的数据挖掘中使用何种模型及算法并没有统一的规则,而且人们很难理解网络的学习及决策过程。 (6)Web数据挖掘。Web数据挖掘是一项综合性技术,指Web 从文档结构和使用的集合C 中发现隐含的模式P,如果将C看做是输入,P 看做是输出,那么Web 挖掘过程就可以看做是从输入到输出的一个映射过程。

数据挖掘的方法

数据挖掘的方法有哪些? 时间:2012-11-1111:24来源:百度空间作者:温馨小筑围观:1436次 利用数据挖掘进行数据分析常用的方法主要有分类、回归分析、聚类、关联规则、特征、变化和偏差分析、Web页挖掘等,它们分别从不同的角度对数据进行挖掘。 1、分类 分类是找出数据库中一组数据对象的共同特点并按照分类模式将其划分为不同的类,其目的是通过分类模型,将数据库中的数据项映射到某个给定的类别。它可以应用到客户的分类、客户的属性和特征分析、客户满意度分析、客户的购买趋势预测等,如一个汽车零售商将客户按照对汽车的喜好划分成不同的类,这样营销人员就可以将新型汽车的广告手册直接邮寄到有这种喜好的客户手中,从而大大增加了商业机会。 2、回归分析 回归分析方法反映的是事务数据库中属性值在时间上的特征,产生一个将数据项映射到一个实值预测变量的函数,发现变量或属性间的依赖关系,其主要研究问题包括数据序列的趋势特征、数据序列的预测以及数据间的相关关系等。它可以应用到市场营销的各个方面,如客户寻求、保持和预防客户流失活动、产品生命周期分析、销售趋势预测及有针对性的促销活动等。 3、聚类 聚类分析是把一组数据按照相似性和差异性分为几个类别,其目的是使得属于同一类别的数据间的相似性尽可能大,不同类别中的数据间的相似性尽可能小。它可以应用到客户群体的分类、客户背景分析、客户购买趋势预测、市场的细分等。 4、关联规则 关联规则是描述数据库中数据项之间所存在的关系的规则,即根据一个事务中某些项的出现可导出另一些项在同一事务中也出现,即隐藏在数据间的关联或相互关系。在客户关系管理中,通过对企业的客户数据库里的大量数据进行挖掘,可以从大量的记录中发现有趣的关联关系,找出影响市场营销效果的关键因素,为产品定位、定价与定制客户群,客户寻求、细分与保持,市场营销与推销,营销风险评估和诈骗预测等决策支持提供参考依据。 5、特征 特征分析是从数据库中的一组数据中提取出关于这些数据的特征式,这些特征式表达了该数据集的总体特征。如营销人员通过对客户流失因素的特征提取,可以得到导致客户流失的一系列原因和主要特征,利用这些特征可以有效地预防客户的流失。

数据挖掘领域的十大经典算法原理及应用

数据挖掘领域的十大经典算法原理及应用 国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 2006年12月评选出了数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART. 不仅仅是选中的十大算法,其实参加评选的18种算法,实际上随便拿出一种来都可以称得上是经典算法,它们在数据挖掘领域都产生了极为深远的影响。 1.C4.5 C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3算法.C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进: 1)用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足; 2) 在树构造过程中进行剪枝; 3) 能够完成对连续属性的离散化处理; 4) 能够对不完整数据进行处理。

C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。 2. The k-means algorithm即K-Means算法 k-means algorithm算法是一个聚类算法,把n的对象根据他们的属性分为k个分割,k < n。它与处理混合正态分布的最大期望算法很相似,因为他们都试图找到数据中自然聚类的中心。它假设对象属性来自于空间向量,并且目标是使各个群组内部的均方误差总和最小。 3. Support vector machines 支持向量机,英文为Support Vector Machine,简称SV 机(论文中一般简称SVM)。它是一种監督式學習的方法,它广泛的应用于统计分类以及回归分析中。支持向量机将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面。在分开数据的超平面的两边建有两个互相平行的超平面。分隔超平面使两个平行超平面的距离最大化。假定平行超平面

《大数据时代下的数据挖掘》试题和答案与解析

《海量数据挖掘技术及工程实践》题目 一、单选题(共80题) 1)( D )的目的缩小数据的取值范围,使其更适合于数据挖掘算法的需要,并且能够得到 和原始数据相同的分析结果。 A.数据清洗 B.数据集成 C.数据变换 D.数据归约 2)某超市研究销售纪录数据后发现,买啤酒的人很大概率也会购买尿布,这种属于数据挖 掘的哪类问题?(A) A. 关联规则发现 B. 聚类 C. 分类 D. 自然语言处理 3)以下两种描述分别对应哪两种对分类算法的评价标准? (A) (a)警察抓小偷,描述警察抓的人中有多少个是小偷的标准。 (b)描述有多少比例的小偷给警察抓了的标准。 A. Precision,Recall B. Recall,Precision A. Precision,ROC D. Recall,ROC 4)将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B. 分类和预测 C. 数据预处理 D. 数据流挖掘 5)当不知道数据所带标签时,可以使用哪种技术促使带同类标签的数据与带其他标签的数 据相分离?(B) A. 分类 B. 聚类 C. 关联分析 D. 隐马尔可夫链 6)建立一个模型,通过这个模型根据已知的变量值来预测其他某个变量值属于数据挖掘的 哪一类任务?(C) A. 根据内容检索 B. 建模描述 C. 预测建模 D. 寻找模式和规则 7)下面哪种不属于数据预处理的方法? (D) A.变量代换 B.离散化

C.聚集 D.估计遗漏值 8)假设12个销售价格记录组已经排序如下:5, 10, 11, 13, 15, 35, 50, 55, 72, 92, 204, 215 使用如下每种方法将它们划分成四个箱。等频(等深)划分时,15在第几个箱子内? (B) A.第一个 B.第二个 C.第三个 D.第四个 9)下面哪个不属于数据的属性类型:(D) A.标称 B.序数 C.区间 D.相异 10)只有非零值才重要的二元属性被称作:( C ) A.计数属性 B.离散属性 C.非对称的二元属性 D.对称属性 11)以下哪种方法不属于特征选择的标准方法: (D) A.嵌入 B.过滤 C.包装 D.抽样 12)下面不属于创建新属性的相关方法的是: (B) A.特征提取 B.特征修改 C.映射数据到新的空间 D.特征构造 13)下面哪个属于映射数据到新的空间的方法? (A) A.傅立叶变换 B.特征加权 C.渐进抽样 D.维归约 14)假设属性income的最大最小值分别是12000元和98000元。利用最大最小规范化的方 法将属性的值映射到0至1的范围内。对属性income的73600元将被转化为:(D) A.0.821 B.1.224 C.1.458 D.0.716 15)一所大学内的各年纪人数分别为:一年级200人,二年级160人,三年级130人,四年 级110人。则年级属性的众数是: (A) A.一年级 B.二年级 C.三年级 D.四年级

大数据时代的数据挖掘

大数据时代的数据挖掘 大数据是2012的时髦词汇,正受到越来越多人的关注和谈论。大数据之所以受到人们的关注和谈论,是因为隐藏在大数据后面超千亿美元的市场机会。 大数据时代,数据挖掘是最关键的工作。以下内容供个人学习用,感兴趣的朋友可以看一下。 智库百科是这样描述数据挖掘的“数据挖掘又称数据库中的知识发现,是目前人工智能和数据库领域研究的热点问题,所谓数据挖掘是指从数据库的大量数据中揭示出隐含的、先前未知的并有潜在价值的信息的非平凡过程。数据挖掘是一种决策支持过程,它主要基于人工智能、机器学习、模式识别、统计学、数据库、可视化技术等,高度自动化地分析企业的数据,做出归纳性的推理,从中挖掘出潜在的模式,帮助决策者调整市场策略,减少风险,做出正确的决策。 数据挖掘的定义 技术上的定义及含义 数据挖掘(Data Mining )就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。这个定义包括好几层含义:数据源必须是真实的、大量的、含噪声的;发现的是用户感兴趣的知识;发现的知识要可接受、可理解、可运用;并不要求发现放之四海皆准的知识,仅支持特定的发现问题。 与数据挖掘相近的同义词有数据融合、人工智能、商务智能、模式识别、机器学习、知识发现、数据分析和决策支持等。 ----何为知识从广义上理解,数据、信息也是知识的表现形式,但是人们更把概念、规则、模式、规律和约束等看作知识。人们把数据看作是形成知识的源泉,好像从矿石中采矿或淘金一样。原始数据可以是结构化的,如关系数据库中的数据;也可以是半结构化的,如文本、图形和图像数据;甚至是分布在网络上的异构型数据。发现知识的方法可以是数学的,也可以是非数学的;可以是演绎的,也可以是归纳的。发现的知识可以被用于信息管理,查询优化,决策支持和过程控制等,还可以用于数据自身的维护。因此,数据挖掘是一门交叉学科,它把人们对数据的应用从低层次的简单查询,提升到从数据中挖掘知识,提供决策支持。在这种需求牵引下,汇聚了不同领域的研究者,尤其是数据库技术、人工智能技术、数理统计、可视化技术、并行计算等方面的学者和工程技术人员,投身到数据挖掘这一新兴的研究领域,形成新的技术热点。 这里所说的知识发现,不是要求发现放之四海而皆准的真理,也不是要去发现崭新的自然科学定理和纯数学公式,更不是什么机器定理证明。实际上,所有发现的知识都是相对的,是有特定前提和约束条件,面向特定领域的,同时还要能够易于被用户理解。最好能用自然语言表达所发现的结果。n x _s u x i a n g n i n g

数据挖掘十大待解决问题

数据挖掘领域10大挑战性问题与十大经典算法 2010-04-21 20:05:51| 分类:技术编程| 标签:|字号大中小订阅 作为一个数据挖掘工作者,点可以唔知呢。 数据挖掘领域10大挑战性问题: 1.Developing a Unifying Theory of Data Mining 2.Scaling Up for High Dimensional Data/High Speed Streams 3.Mining Sequence Data and Time Series Data 4.Mining Complex Knowledge from Complex Data 5.Data Mining in a Network Setting 6.Distributed Data Mining and Mining Multi-agent Data 7.Data Mining for Biological and Environmental Problems 8.Data-Mining-Process Related Problems 9.Security, Privacy and Data Integrity 10.Dealing with Non-static, Unbalanced and Cost-sensitive Data 数据挖掘十大经典算法 国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 2006年12月评选出了数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART. 不仅仅是选中的十大算法,其实参加评选的18种算法,实际上随便拿出一种来都可以称得上是经典算法,它们在数据挖掘领域都产生了极为深远的影响。 1. C4.5 C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3算法. C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进: 1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足; 2) 在树构造过程中进行剪枝; 3) 能够完成对连续属性的离散化处理; 4) 能够对不完整数据进行处理。 C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。 2. The k-means algorithm 即K-Means算法 k-means algorithm算法是一个聚类算法,把n的对象根据他们的属性分为k个分割,k < n。它与处理混合正态分布的最大期望算法很相似,因为他们都试图找到数据中自然聚类的中心。它假设对象属性来自于空间向量,并且目标是使各个群组内部的均方误差总和最小。 3. Support vector machines 支持向量机,英文为Support Vector Machine,简称SV机(论文中一般简称SVM)。它是一种監督式學習的方法,它广泛的应用于统计分类以及回归分析中。支持向量机将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面。在分开数据的超平面的两边建有两个互相平行的超平面。分隔超平面使两个平行超平面的距离最大化。假定平行超平面间的距离或差距越大,分类器的总误差越小。一个极好的指南是C.J.C Burges的《模式识别支持向量机指南》。van der Walt 和Barnard 将支持向量机和其他分类器进行了比较。 4. The Apriori algorithm

学习18大经典数据挖掘算法

学习18大经典数据挖掘算法 本文所有涉及到的数据挖掘代码的都放在了github上了。 地址链接: https://https://www.doczj.com/doc/e417335684.html,/linyiqun/DataMiningAlgorithm 大概花了将近2个月的时间,自己把18大数据挖掘的经典算法进行了学习并且进行了代码实现,涉及到了决策分类,聚类,链接挖掘,关联挖掘,模式挖掘等等方面。也算是对数据挖掘领域的小小入门了吧。下面就做个小小的总结,后面都是我自己相应算法的博文链接,希望能够帮助大家学习。 1.C4.5算法。C4.5算法与ID3算法一样,都是数学分类算法,C4.5算法是ID3算法的一个改进。ID3算法采用信息增益进行决策判断,而C4.5采用的是增益率。 详细介绍链接:https://www.doczj.com/doc/e417335684.html,/androidlushangderen/article/details/42395865 2.CART算法。CART算法的全称是分类回归树算法,他是一个二元分类,采用的是类似于熵的基尼指数作为分类决策,形成决策树后之后还要进行剪枝,我自己在实现整个算法的时候采用的是代价复杂度算法, 详细介绍链接:https://www.doczj.com/doc/e417335684.html,/androidlushangderen/article/details/42558235 3.KNN(K最近邻)算法。给定一些已经训练好的数据,输入一个新的测试数据点,计算包含于此测试数据点的最近的点的分类情况,哪个分类的类型占多数,则此测试点的分类与此相同,所以在这里,有的时候可以复制不同的分类点不同的权重。近的点的权重大点,远的点自然就小点。 详细介绍链接:https://www.doczj.com/doc/e417335684.html,/androidlushangderen/article/details/42613011 4.Naive Bayes(朴素贝叶斯)算法。朴素贝叶斯算法是贝叶斯算法里面一种比较简单的分类算法,用到了一个比较重要的贝叶斯定理,用一句简单的话概括就是条件概率的相互转换推导。 详细介绍链接:https://www.doczj.com/doc/e417335684.html,/androidlushangderen/article/details/42680161 5.SVM(支持向量机)算法。支持向量机算法是一种对线性和非线性数据进行分类的方法,非线性数据进行分类的时候可以通过核函数转为线性的情况再处理。其中的一个关键的步骤是搜索最大边缘超平面。 详细介绍链接:https://www.doczj.com/doc/e417335684.html,/androidlushangderen/article/details/42780439 6.EM(期望最大化)算法。期望最大化算法,可以拆分为2个算法,1个E-Step期望化步骤,和1个M-Step最大化步骤。他是一种算法框架,在每次计算结果之后,逼近统计模型参数的最大似然或最大后验估计。

十 大 经 典 排 序 算 法 总 结 超 详 细

数据挖掘十大经典算法,你都知道哪些? 当前时代大数据炙手可热,数据挖掘也是人人有所耳闻,但是关于数据挖掘更具体的算法,外行人了解的就少之甚少了。 数据挖掘主要分为分类算法,聚类算法和关联规则三大类,这三类基本上涵盖了目前商业市场对算法的所有需求。而这三类里又包含许多经典算法。而今天,小编就给大家介绍下数据挖掘中最经典的十大算法,希望它对你有所帮助。 一、分类决策树算法C4.5 C4.5,是机器学习算法中的一种分类决策树算法,它是决策树(决策树,就是做决策的节点间的组织方式像一棵倒栽树)核心算法ID3的改进算法,C4.5相比于ID3改进的地方有: 1、用信息增益率选择属性 ID3选择属性用的是子树的信息增益,这里可以用很多方法来定义信息,ID3使用的是熵(shang),一种不纯度度量准则,也就是熵的变化值,而 C4.5用的是信息增益率。区别就在于一个是信息增益,一个是信息增益率。 2、在树构造过程中进行剪枝,在构造决策树的时候,那些挂着几个元素的节点,不考虑最好,不然容易导致过拟。 3、能对非离散数据和不完整数据进行处理。 该算法适用于临床决策、生产制造、文档分析、生物信息学、空间数据建模等领域。 二、K平均算法

K平均算法(k-means algorithm)是一个聚类算法,把n个分类对象根据它们的属性分为k类(kn)。它与处理混合正态分布的最大期望算法相似,因为他们都试图找到数据中的自然聚类中心。它假设对象属性来自于空间向量,并且目标是使各个群组内部的均方误差总和最小。 从算法的表现上来说,它并不保证一定得到全局最优解,最终解的质量很大程度上取决于初始化的分组。由于该算法的速度很快,因此常用的一种方法是多次运行k平均算法,选择最优解。 k-Means 算法常用于图片分割、归类商品和分析客户。 三、支持向量机算法 支持向量机(Support Vector Machine)算法,简记为SVM,是一种监督式学习的方法,广泛用于统计分类以及回归分析中。 SVM的主要思想可以概括为两点: (1)它是针对线性可分情况进行分析,对于线性不可分的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间使其线性可分; (2)它基于结构风险最小化理论之上,在特征空间中建构最优分割超平面,使得学习器得到全局最优化,并且在整个样本空间的期望风险以某个概率满足一定上界。 四、The Apriori algorithm Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法,其核心是基于两阶段“频繁项集”思想的递推算法。其涉及到的关联规则在分类上属于单维、单层、布尔关联规则。在这里,所有支持度大于最小支

大学数据挖掘期末考试题

:号学 题目-一 - -二 二 三四五六七八九十总成绩复核得分 阅卷教师 :名姓班 级 业专 院 学院学学科息信与学数 题试试考末期期学季春年学一320数据挖掘试卷 课程代码:C0204413课程:数据挖掘A卷 一、判断题(每题1分,10分) 1. 从点作为个体簇开始,每一步合并两个最接近的簇,这是一种分裂的层次聚类方法。() 2. 数据挖掘的目标不在于数据采集策略,而在于对已经存在的数据进行模式的发掘。() 3. 在聚类分析当中,簇内的相似性越大,簇间的差别越大,聚类的效果就越差。() 4. 当两个点之间的邻近度取它们之间距离的平方时,Ward方法与组平均非常相似。() 5. DBSCAN是相对抗噪声的,并且能够处理任意形状和大小的簇。() 6. 属性的性质不必与用来度量他的值的性质相同。() 7. 全链对噪声点和离群点很敏感。() 8. 对于非对称的属性,只有非零值才是重要的。() 9. K均值可以很好的处理不同密度的数据。() 10. 单链技术擅长处理椭圆形状的簇。() 二、选择题(每题2分,30分) 1. 当不知道数据所带标签时,可以使用哪种技术促使带同类标签的数据与带其他标签的数据相分 离?() A. 分类 B.聚类 C.关联分析 D.主成分分析 2. ()将两个簇的邻近度定义为不同簇的所有点对邻近度的平均值,它是一种凝聚层次聚类技术。 A. MIN(单链) B.MAX(全链) C.组平均 D.Ward方法 3. 数据挖掘的经典案例“啤酒与尿布试验”最 主要是应用了()数据挖掘方法。 A分类B预测C关联规则分析D聚类 4. 关于K均值和DBSCAN的比较,以下说法不正确的是() A. K均值丢弃被它识别为噪声的对象,而DBSCAN —般聚类所有对 象。 B. K均值使用簇的基于原型的概念,DBSCAN使用基于密度的概念。 C. K均值很难处理非球形的簇和不同大小的簇,DBSCAN可以处理不同大小和不同形状的簇 D. K均值可以发现不是明显分离的簇,即便簇有重叠也可以发现,但是DBSCAN会合并有重叠的簇 5. 下列关于 Ward 'Method说法错误的是:() A. 对噪声点和离群点敏感度比较小 B. 擅长处理球状的簇 C. 对于Ward方法,两个簇的邻近度定义为两个簇合并时导致的平方误差 D. 当两个点之间的邻近度取它们之间距离的平方时,Ward方法与组平均非常相似 6. 下列关于层次聚类存在的问题说法正确的是:() A. 具有全局优化目标函数 B. Group Average擅长处理球状的簇 C. 可以处理不同大小簇的能力 D. Max对噪声点和离群点很敏感 7. 下列关于凝聚层次聚类的说法中,说法错误的事: () A. 一旦两个簇合并,该操作就不能撤销 B. 算法的终止条件是仅剩下一个簇 2 C. 空间复杂度为O m D. 具有全局优化目标函数 8规则{牛奶,尿布}T{啤酒}的支持度和置信度分别为:()

数据挖掘算法

数据挖掘的10大经典算法 国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 2006年12月评选出了数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART. 不仅仅是选中的十大算法,其实参加评选的18种算法,实际上随便拿出一种来都可以称得上是经典算法,它们在数据挖掘领域都产生了极为深远的影响。 1. C4.5 C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3算法. C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进: 1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足; 2) 在树构造过程中进行剪枝; 3) 能够完成对连续属性的离散化处理; 4) 能够对不完整数据进行处理。 C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在 构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。 2. The k-means algorithm 即K-Means算法 k-means algorithm算法是一个聚类算法,把n的对象根据他们的属性分为k个分割,k < n。它与处理混合正态分布的最大期望算法很相似,因为他们都试图找到数据中自然聚类的中心。它假设对象属性来自于空间向量,并且目标是使各个群组内部的均方误差总和最小。 3. Support vector machines 支持向量机,英文为Support Vector Machine,简称SV机(论文中一般简称SVM)。它是一种監督式學習的方法,它广泛的应用于统计分类以及回归分析中。支持向量机将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面。在分开数据的超平面的两边建有两个互相平行的超平面。分隔超平面使两个平行超平面的距离最大化。假定平行超平面间的距离或差距越大,分类器的总误差越小。一个极好的指南是C.J.C Burges的《模式识别支持向量机指南》。van der Walt 和 Barnard 将支持向量机和其他分类器进行了比较。 4. The Apriori algorithm

数据挖掘经典书籍

数据挖掘入门读物: 深入浅出数据分析这书挺简单的,基本的内容都涉及了,说得也比较清楚,最后谈到了R是大加分。难易程度:非常易。 啤酒与尿布通过案例来说事情,而且是最经典的例子。难易程度:非常易。 数据之美一本介绍性的书籍,每章都解决一个具体的问题,甚至还有代码,对理解数据分析的应用领域和做法非常有帮助。难易程度:易。 数学之美这本书非常棒啦,入门读起来很不错! 数据分析: SciPy and NumPy 这本书可以归类为数据分析书吧,因为numpy和scipy真的是非常强大啊。Python for Data Analysis 作者是Pandas这个包的作者,看过他在Scipy会议上的演讲,实例非常强!Bad Data Handbook 很好玩的书,作者的角度很不同。 数据挖掘适合入门的教程: 集体智慧编程学习数据分析、数据挖掘、机器学习人员应该仔细阅读的第一本书。作者通过实际例子介绍了机器学习和数据挖掘中的算法,浅显易懂,还有可执行的Python代码。难易程度:中。 Machine Learning in Action 用人话把复杂难懂的机器学习算法解释清楚了,其中有零星的数学公式,但是是以解释清楚为目的的。而且有Python代码,大赞!目前中科院的王斌老师(微博:王斌_ICTIR)已经翻译这本书了机器学习实战(豆瓣)。这本书本身质量就很高,王老师的翻译质量也很高。难易程度:中。我带的研究生入门必看数目之一! Building Machine Learning Systems with Python 虽然是英文的,但是由于写得很简单,比较理解,又有Python 代码跟着,辅助理解。 数据挖掘导论最近几年数据挖掘教材中比较好的一本书,被美国诸多大学的数据挖掘课作为教材,没有推荐Jiawei Han老师的那本书,因为个人觉得那本书对于初学者来说不太容易读懂。难易程度:中上。Machine Learning for Hackers 也是通过实例讲解机器学习算法,用R实现的,可以一边学习机器学习一边学习R。 数据挖掘稍微专业些的: Introduction to Semi-Supervised Learning 半监督学习必读必看的书。 Learning to Rank for Information Retrieval 微软亚院刘铁岩老师关于LTR的著作,啥都不说了,推荐!Learning to Rank for Information Retrieval and Natural Language Processing 李航老师关于LTR的书,也是当时他在微软亚院时候的书,可见微软亚院对LTR的研究之深,贡献之大。 推荐系统实践这本书不用说了,研究推荐系统必须要读的书,而且是第一本要读的书。 Graphical Models, Exponential Families, and Variational Inference 这个是Jordan老爷子和他的得意门徒Martin J Wainwright 在Foundation of Machine Learning Research上的创刊号,可以免费下载,比较难懂,但是一旦读通了,graphical model的相关内容就可以踏平了。 Natural Language Processing with Python NLP 经典,其实主要是讲NLTK 这个包,但是啊,NLTK 这个包几乎涵盖了NLP 的很多内容了啊! 数据挖掘机器学习教材: The Elements of Statistical Learning 这本书有对应的中文版:统计学习基础(豆瓣)。书中配有R包,非常赞!可以参照着代码学习算法。 统计学习方法李航老师的扛鼎之作,强烈推荐。难易程度:难。 Machine Learning 去年出版的新书,作者Kevin Murrphy教授是机器学习领域中年少有为的代表。这书是他的集大成之作,写完之后,就去Google了,产学研结合,没有比这个更好的了。

大数据常用的算法

大数据常用的算法(分类、回归分析、聚类、关联规则) 在大数据时代,数据挖掘是最关键的工作。大数据的挖掘是从海量、不完全的、有噪声的、模糊的、随机的大型数据库中发现隐含在其中有价值的、潜在有用的信息和知识的过程,也是一种决策支持过程。其主要基于人工智能,机器学习,模式学习,统计学等。通过对大数据高度自动化地分析,做出归纳性的推理,从中挖掘出潜在的模式,可以帮助企业、商家、用户调整市场政策、减少风险、理性面对市场,并做出正确的决策。目前,在很多领域尤其是在商业领域如银行、电信、电商等,数据挖掘可以解决很多问题,包括市场营销策略制定、背景分析、企业管理危机等。大数据的挖掘常用的方法有分类、回归分析、聚类、关联规则、神经网络方法、Web 数据挖掘等。这些方法从不同的角度对数据进行挖掘。 (1)分类。分类是找出数据库中的一组数据对象的共同特点并按照分类模式将其划分为不同的类,其目的是通过分类模型,将数据库中的数据项映射到摸个给定的类别中。可以应用到涉及到应用分类、趋势预测中,如淘宝商铺将用户在一段时间内的购买情况划分成不同的类,根据情况向用户推荐关联类的商品,从而增加商铺的销售量。 (2)回归分析。回归分析反映了数据库中数据的属性值的特性,通过函数表达数据映射的关系来发现属性值之间的依赖关系。它可以应用到对数据序列的预测及相关关系的研究中去。在市场营销中,回归分析可以被应用到各个方面。如通过对本季度销售的回归分析,对下一季度的销售趋势作出预测并做出针对性的营销改变。 (3)聚类。聚类类似于分类,但与分类的目的不同,是针对数据的相似性和差异性将一组数据分为几个类别。属于同一类别的数据间的相似性很大,但不同类别之间数据的相似性很小,跨类的数据关联性很低。(4)关联规则。关联规则是隐藏在数据项之间的关联或相互关系,即可以根据一个数据项的出现推导出其他数据项的出现。关联规则的挖掘过程主要包括两个阶段:第一阶段为从海量原始数据中找出所有的高频项目组;第二极端为从这些高频项目组产生关联规则。关联规则挖掘技术已经被广泛应用于金融行业企业中用以预测客户的需求,各银行在自己的ATM 机上通过捆绑客户可能感兴趣的信息供用户了解并获取相应信

数据挖掘经典方法

在大数据时代,数据挖掘是最关键的工作。大数据的挖掘是从海量、不完全的、有噪声的、模糊的、随机的大型数据库中发现隐含在其中有价值的、潜在有用的信息和知识的过程,也是一种决策支持过程。其主要基于人工智能,机器学习,模式学习,统计学等。通过对大数据高度自动化地分析,做出归纳性的推理,从中挖掘出潜在的模式,可以帮助企业、商家、用户调整市场政策、减少风险、理性面对市场,并做出正确的决策。目前,在很多领域尤其是在商业领域如银行、电信、电商等,数据挖掘可以解决很多问题,包括市场营销策略制定、背景分析、企业管理危机等。大数据的挖掘常用的方法有分类、回归分析、聚类、关联规则、神经网络方法、Web 数据挖掘等。这些方法从不同的角度对数据进行挖掘。 1.分类 分类是找出数据库中的一组数据对象的共同特点并按照分类模式将其划分为不同的类,其目的是通过分类模型,将数据库中的数据项映射到摸个给定的类别中。可以应用到涉及到应用分类、趋势预测中,如淘宝商铺将用户在一段时间内的购买情况划分成不同的类,根据情况向用户推荐关联类的商品,从而增加商铺的销售量。 它可以应用到客户的分类、客户的属性和特征分析、客户满意度分析、客户的购买趋势预测等,如一个汽车零售商将客户按照对汽车的喜好划分成不同的类,这样营销人员就可以将新型汽车的广告手册直接邮寄到有这种喜好的客户手中,从而大大增加了商业机会。 分类的方法有:决策树、贝叶斯、人工神经网络。 1.1决策树 决策树是用于分类和预测的主要技术之一,决策树学习是以实例为基础的归纳学习算法,它着眼于从一组无次序、无规则的实例中推理出以决策树表示的分类规则。构造决策树的目的是找出属性和类别间的关系,用它来预测将来未知类别的记录的类别。它采用自顶向下的递归方式,在决策树的内部节点进行属性的比较,并根据不同属性值判断从该节点向下的分支,在决策树的叶节点得到结论。 1.2贝叶斯 贝叶斯(Bayes)分类算法是一类利用概率统计知识进行分类的算法,如朴素贝叶斯

数据挖掘中十大经典算法

数据挖掘十大经典算法 国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 2006年12月评选出了数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART. 不仅仅是选中的十大算法,其实参加评选的18种算法,实际上随便拿出一种来都可以称得上是经典算法,它们在数据挖掘领域都产生了极为深远的影响。 1. C4.5 C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3算法. C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进: 1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足; 2) 在树构造过程中进行剪枝; 3) 能够完成对连续属性的离散化处理; 4) 能够对不完整数据进行处理。 C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。 2. The k-means algorithm 即K-Means算法 k-means algorithm算法是一个聚类算法,把n的对象根据他们的属性分为k个分割,k < n。它与处理混合正态分布的最大期望算法很相似,因为他们都试图找到数据中自然聚类的中心。它假设对象属性来自于空间向量,并且目标是使各个群组内部的均方误差总和最小。 3. Support vector machines 支持向量机,英文为Support Vector Machine,简称SV机(论文中一般简称SVM)。它是一种監督式學習的方法,它广泛的应用于统计分类以及回归分析中。支持向量机将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面。在分开数据的超平面的两边建有两个互相平行的超平面。分隔超平面使两个平行超平面的距离最大化。假定平行超平面间的距离或差距越大,分类器的总误差越小。一个极好的指南是C.J.C Burges的《模式识别支持向量机指南》。van der Walt 和Barnard 将支持向量机和其他分类器进行了比较。 4. The Apriori algorithm Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。 5. 最大期望(EM)算法 在统计计算中,最大期望(EM,Expectation–Maximization)算法是在概率(probabilistic)模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variabl)。最大期望经常用在机器学习和计算机视觉的数据集聚(Data Clustering)领域。 6. PageRank PageRank是Google算法的重要内容。2001年9月被授予美国专利,专利人是Google创始人之一拉里?佩奇(Larry Page)。因此,PageRank里的page不是指网页,而是指佩奇,即这个

数据挖掘主要算法

朴素贝叶斯: 有以下几个地方需要注意: 1. 如果给出的特征向量长度可能不同,这是需要归一化为通长度的向量(这里以文本分类为例),比如说是句子单词的话,则长度为整个词汇量的长度,对应位置是该单词出现的次数。 2. 计算公式如下: 其中一项条件概率可以通过朴素贝叶斯条件独立展开。要注意一点就是的计算方法,而由朴素贝叶斯的前提假设可知, = ,因此一般有两种,一种是在类别为ci的那些样本集中,找到wj出现次数的总和,然后除以该样本的总和;第二种方法是类别为ci的那些样本集中,找到wj出现次数的总和,然后除以该样本中所有特征出现次数的总和。 3. 如果中的某一项为0,则其联合概率的乘积也可能为0,即2中公式的分子为0,为了避免这种现象出现,一般情况下会将这一项初始化为1,当然为了保证概率相等,分母应对应初始化为2(这里因为是2类,所以加2,如果是k类就需要加k,术语上叫做laplace 光滑, 分母加k的原因是使之满足全概率公式)。 朴素贝叶斯的优点: 对小规模的数据表现很好,适合多分类任务,适合增量式训练。 缺点: 对输入数据的表达形式很敏感。 决策树: 决策树中很重要的一点就是选择一个属性进行分枝,因此要注意一下信息增益的计算公式,并深入理解它。 信息熵的计算公式如下:

其中的n代表有n个分类类别(比如假设是2类问题,那么n=2)。分别计算这2类样本在总样本中出现的概率p1和p2,这样就可以计算出未选中属性分枝前的信息熵。 现在选中一个属性xi用来进行分枝,此时分枝规则是:如果xi=vx的话,将样本分到树的一个分支;如果不相等则进入另一个分支。很显然,分支中的样本很有可能包括2个类别,分别计算这2个分支的熵H1和H2,计算出分枝后的总信息熵H’=p1*H1+p2*H2.,则此时的信息增益ΔH=H-H’。以信息增益为原则,把所有的属性都测试一边,选择一个使增益最大的属性作为本次分枝属性。 决策树的优点: 计算量简单,可解释性强,比较适合处理有缺失属性值的样本,能够处理不相关的特征; 缺点: 容易过拟合(后续出现了随机森林,减小了过拟合现象); Logistic回归: Logistic是用来分类的,是一种线性分类器,需要注意的地方有: 1. logistic函数表达式为: 其导数形式为: 2. logsitc回归方法主要是用最大似然估计来学习的,所以单个样本的后验概率为: 到整个样本的后验概率:

数据挖掘算法摘要

国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 2006年12月评选出了数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART. 不仅仅是选中的十大算法,其实参加评选的18种算法,实际上随便拿出一种来都可以称得上是经典算法,它们在数据挖掘领域都产生了极为深远的影响。 1. C4.5 C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3算法. C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进: 1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足; 2) 在树构造过程中进行剪枝; 3) 能够完成对连续属性的离散化处理; 4) 能够对不完整数据进行处理。 C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。 2. The k-means algorithm 即K-Means算法 k-means algorithm算法是一个聚类算法,把n的对象根据他们的属性分为k个分割,k < n。它与处理混合正态分布的最大期望算法很相似,因为他们都试图找到数据中自然聚类的中心。它假设对象属性来自于空间向量,并且目标是使各个群组内部的均方误差总和最小。 3. Support vector machines 支持向量机,英文为Support Vector Machine,简称SV机(论文中一般简称SVM)。它是一种監督式學習的方法,它广泛的应用于统计分类以及回归分析中。支持向量机将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面。在分开数据的超平面的两边建有两个互相平行的超平面。分隔超平面使两个平行超平面的距离最大化。假定平行超平面间的距离或差距越大,分类器的总误差越小。一个极好的指南是C.J.C Burges的《模式识别支持向量机指南》。van der Walt 和 Barnard 将支持向量机和其他分类器进行了

相关主题
文本预览
相关文档 最新文档