数据挖掘简介
一、什么是数据挖掘
虽然有些数据挖掘技术非常新颖,但是数据挖掘本身并非一项新的技术:自从第一台计算机发明以来,人们就一直在计算机上分析数据,而且在此之前的数个世纪里,人们一直在没有计算机的情况下分析数据。多年来,数据挖掘有许多不同的名称,诸如知识发现、商业智能、预测建模及预测分析等等。
数据挖掘一般是指从大量的数据中通过算法来搜索隐藏于其中信息的过程。
数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。
应用领域:统计、情报检索、模式识别等;
相关领域:人工智能、数据分析、数据库;
二、产生背景
随着信息技术的高速发展,人们积累的数据量急剧增长,如何从海量的数据中提取有用的知识成为当务之急。数据挖掘就是为顺应这种需要应运而生发展起来的数据处理技术。
三、数据挖掘的任务
其主要任务是关联分析、聚类分析、分类、预测、时序模式和偏差分析等。
⑴关联分析(association analysis)
关联规则挖掘是由Rakesh Apwal等人首先提出的。两个或两个以上变量的取值之间存在某种规律性,就称为关联。数据关联是数据库中存在的一类重要的、可被发现的知识。关联分为简单关联、时序关联和因果关联。关联分析的目的是找出数据库中隐藏的关联网。一般用支持度和可信度两个阀值来度量关联规则的相关性,还不断引入兴趣度、相关性等参数,使得所挖掘的规则更符合需求。
⑵聚类分析(clustering)
聚类是把数据按照相似性归纳成若干类别,同一类中的数据彼此相似,不同类中的数据相异。聚类分析可以建立宏观的概念,发现数据的分布模式,以及可能的数据属性之间的相互关系。
⑶分类(classification)
分类就是找出一个类别的概念描述,它代表了这类数据的整体信息,即该类的内涵描述,并用这种描述来构造模型,一般用规则或决策树模式表示。分类是利用训练数据集通过一定的算法而求得分类规则。分类可被用于规则描述和预测。
⑷预测(predication)
预测是利用历史数据找出变化规律,建立模型,并由此模型对未来数据的种类及特征进行预测。预测关心的是精度和不确定性,通常用预测方差来度量。
⑸时序模式(time-series pattern)
时序模式是指通过时间序列搜索出的重复发生概率较高的模式。与回归一样,它也是用己知的数据预测未来的值,但这些数据的区别是变量所处时间的不同。
⑹偏差分析(deviation)
在偏差中包括很多有用的知识,数据库中的数据存在很多异常情况,发现数据库中数据存在的异常情况是非常重要的。偏差检验的基本方法就是寻找观察结果与参照之间的差别。
四、数据挖掘的对象
根据信息存储格式,用于挖掘的对象有关系数据库、面向对象数据库、数据仓库、文本数据源、多媒体数据库、空间数据库、时态数据库、异质数据库以及Internet等。
第一,目标律:业务目标是所有数据解决方案的源头。
第二,知识律:业务知识是数据挖掘过程每一步的核心。
第三,准备律:数据预处理比数据挖掘其他任何一个过程都重要。
第四,试验律(NFL律:No Free Lunch):对于数据挖掘者来说,天下没有免费的午餐,一个正确的模型只有通过试验(experiment)才能被发现。
第五,模式律(大卫律):数据中总含有模式。
第六,洞察律:数据挖掘增大对业务的认知。
第七,预测律:预测提高了信息泛化能力。
第八,价值律:数据挖掘的结果的价值不取决于模型的稳定性或预测的准确性。
第九,变化律:所有的模式因业务变化而变化。
六、成功案例
1、啤酒与尿布
2、数据挖掘帮助Credilogros Cía Financiera S.A.改善客户信用评分
3、数据挖掘帮助DHL实时跟踪货箱温度
七、经典算法
1. C4.5:是机器学习算法中的一种分类决策树算法,其核心算法是ID3算法。
2. K-means算法:是一种聚类算法。
3.SVM:一种监督式学习的方法,广泛运用于统计分类以及回归分析中
4.Apriori :是一种最有影响的挖掘布尔关联规则频繁项集的算法。
5.EM:最大期望值法。
6.pagerank:是google算法的重要内容。
7. Adaboost:是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器然后把弱分类器集合起来,构成一个更强的最终分类器。
8.KNN:是一个理论上比较成熟的的方法,也是最简单的机器学习方法之一。
9.Naive Bayes:在众多分类方法中,应用最广泛的有决策树模型和朴素贝叶斯(Naive Bayes)
10.Cart:分类与回归树,在分类树下面有两个关键的思想,第一个是关于递归地划分自变量空间的想法,第二个是用验证数据进行减枝。
小分类总结:
分类:有bayes、决策树、svm等;
聚类:有K-means、isodata等;
关联:有apriori和改进的apriori算法,序列分析等方面的算法。
这些都是正统的,基于数据库的数据挖掘必备知识。
如果是基于web的,则最好还知道海量网页爬虫、网页结构解析、网页内容提取。
八、数据挖掘过程简介
过程中各步骤的大体内容如下:
1.
确定业务对象
清晰地定义出业务问题,认清数据挖掘的目的是数据挖掘的重要一步.挖掘的最后结构是不可预测的,但要探索的问题应是有预见的,为了数据挖掘而数据挖掘则带有盲目性,是不会成功的.
2.
数据准备
1)、数据的选择
搜索所有与业务对象有关的内部和外部数据信息,并从中选择出适用于数据挖掘应用的数据.
2)、数据的预处理
研究数据的质量,为进一步的分析作准备.并确定将要进行的挖掘操作的类型.
3)、数据的转换
将数据转换成一个分析模型.这个分析模型是针对挖掘算法建立的.建立一个真正适合挖掘算法的分析模型是数据挖掘成功的关键.
3.
数据挖掘
对所得到的经过转换的数据进行挖掘.除了完善从选择合适的挖掘算法外,其余一切工作都能自动地完成.
4.
结果分析
解释并评估结果.其使用的分析方法一般应作数据挖掘操作而定,通常会用到可视化技术.
5.
知识的同化
将分析所得到的知识集成到业务信息系统的组织结构中去.
九、数据挖掘的方法
⑴神经网络方法
神经网络由于本身良好的鲁棒性、自组织自适应性、并行处理、分布存储和高度容错等特性非常适合解决数据挖掘的问题,因此近年来越来越受到人们的关
注。典型的神经网络模型主要分3大类:以感知机、BP反向传播模型、函数型网络为代表的,用于分类、预测和模式识别的前馈式神经网络模型;以 Hopfield的离散模型和连续模型为代表的,分别用于联想记忆和优化计算的反馈式神经网络模型;以ART模型、Koholon模型为代表的,用于聚类 的自组织映射方法。神经网络方法的缺点是"黑箱"性,人们难以理解网络的学习和决策过程。
⑵遗传算法
遗传算法是一种基于生物自然选择与遗传机理的随机搜索算法,是一种仿生全局优化方法。遗传算法具有的隐含并行性、易于和其它模型结合等性质使得它在数据挖掘中被加以应用。
Sunil已成功地开发了一个基于遗传算法的数据挖掘工具,利用该工具对两个飞机失事的真实数据库进行了数据挖掘实验,结果表明遗传算法是进行数据
挖掘的有效方法之一。遗传算法的应用还体现在与神经网络、粗集等技术的结合上。如利用遗传算法优化神经网络结构,在不增加错误率的前提下,删除多余
的连接和隐层单元;用遗传算法和BP算法结合训练神经网络,然后从网络提取规则等。但遗传算法的算法较复杂,收敛于局部极小的较早收敛问题尚未解决。
⑶决策树方法
决策树是一种常用于预测模型的算法,它通过将大量数据有目的分类,从中找到一些有价值的,潜在的信息。它的主要优点是描述简单,分类速度快,特别适
合大规模的数据处理。最有影响和最早的决策树方法是由Quinlan提出的著名的基于信息熵的ID3算法。它的主要问题是:ID3是非递增学习算 法;ID3决策树是单变量决策树,复杂概念的表达困难;同性间的相互关系强调不够;抗噪性差。针对上述问题,出现了许多较好的改进算法,如 Schlimmer和Fisher设计了ID4递增式学习算法;钟鸣,陈文伟等提出了IBLE算法等。
⑷粗集方法
粗集理论是一种研究不精确、不确定知识的数学工具。粗集方法有几个优点:不需要给出额外信息;简化输入信息的表达空间;算法简单,易于操作。粗集处 理的对象是类似二维关系表的信息表。目前成熟的关系数据库管理系统和新发展起来的数据仓库管理系统,为粗集的数据挖掘奠定了坚实的基础。但粗集的数学基础
是集合论,难以直接处理连续的属性。而现实信息表中连续属性是普遍存在的。因此连续属性的离散化是制约粗集理论实用化的难点。现在国际上已经研制出来了一
些基于粗集的工具应用软件,如加拿大Regina大学开发的KDD-R;美国Kansas大学开发的LERS等。
⑸覆盖正例排斥反例方法
它是利用覆盖所有正例、排斥所有反例的思想来寻找规则。首先在正例集合中任选一个种子,到反例集合中逐个比较。与字段取值构成的选择子相容则舍去,
相反则保留。按此思想循环所有正例种子,将得到正例的规则(选择子的合取式)。比较典型的算法有Michalski的AQ11方法、洪家荣改进的AQ15 方法以及他的AE5方法。
⑹统计分析方法
在数据库字段项之间存在两种关系:函数关系(能用函数公式表示的确定性关系)和相关关系(不能用函数公式表示,但仍是相关确定性关系),对它们的分 析可采用统计学方法,即利用统计学原理对数据库中的信息进行分析。可进行常用统计(求大量数据中的最大值、最小值、总和、平均值等)、回归分析(用回归方 程来表示变量间的数量关系)、相关分析(用相关系数来度量变量间的相关程度)、差异分析(从样本统计量的值得出差异来确定总体参数之间是否存在差异)等。
⑺模糊集方法
即利用模糊集合理论对实际问题进行模糊评判、模糊决策、模糊模式识别和模糊聚类分析。系统的复杂性越高,模糊性越强,一般模糊集合理论是用隶属度来
刻画模糊事物的亦此亦彼性的。李德毅等人在传统模糊理论和概率统计的基础上,提出了定性定量不确定性转换模型--云模型,并形成了云理论。
十、评价数据挖掘软件需要考虑的问题
越来越多的软件供应商加入了数据挖掘这一领域的竞争。用户如何正确评价一个商业软件,选择合适的软件成为数据挖掘成功应用的关键。
评价一个数据挖掘软件主要应从以下四个主要方面:
⑴计算性能:如该软件能否在不同的商业平台运行;软件的架构;能否连接不同的数据源;操作大数据集时,性能变化是线性的还是指数的;算的效率;是否基于组件结构易于扩展;运行的稳定性等;
⑵功能性:如软件是否提供足够多样的算法;能否避免挖掘过程黑箱化;软件提供的算法能否应用于多种类型的数据;用户能否调整算法和算法的参数;软件能否从数据集随机抽取数据建立预挖掘模型;能否以不同的形式表现挖掘结果等;
⑶可用性:如用户界面是否友好;软件是否易学易用;软件面对的用户:初学者,高级用户还是专家?错误报告对用户调试是否有很大帮助;软件应用的领域:是专攻某一专业领域还是适用多个领域等;
⑷辅助功能:如是否允许用户更改数据集中的错误值或进行数据清洗;是否允许值的全局替代;能否将连续数据离散化;能否根据用户制定的规则从数据集中提取子集;能否将数据中的空值用某一适当均值或用户指定的值代替;能否将一次分析的结果反馈到另一次分析中,等等。
十一、数据挖掘需要的人员
数据挖掘过程的分步实现,不同的步会需要是有不同专长的人员,他们大体可以分为三类.
业务分析人员:要求精通业务,能够解释业务对象,并根据各业务对象确定出用于数据定义和挖掘算法的业务需求.
数据分析人员:精通数据分析技术,并对统计学有较熟练的掌握,有能力把业务需求转化为数据挖掘的各步操作,并为每步操作选择合适的技术.
数据管理人员:精通数据管理技术,并从数据库或数据仓库中收集数据.
十二、数据挖掘的隐私问题
对于政府和商业数据的挖掘,可能会涉及到的,是国家安全或者商业机密之类的问题。这对于保密也是个不小的挑战。
数据挖掘实现了用其他方法不可能实现的方法来发现信息,但它必须受到规范,应当在适当的说明下使用。
参考文档:
数据挖掘技术(第三版)应用于市场营销、销售与客户关系管理
http://baike.baidu.com/view/7893.htm?fr=aladdin
http://database.51cto.com/art/200612/36244.htm