数据挖掘简述和weka介绍–数据挖掘学习和weka使用(一)

29 3月

写在开篇

weka用了一些时日了,觉得真心不错。功能很完善,而且是开源的。最重要的扩展方便,非常适合搞研究和做全国大学生数学建模之类的比赛。

我学习weka主要是看的一本数据挖掘和weka使用的书,是英文的。国内有中文版…但是不想吐就不要看译本吧,不知道是翻译的人是怎么想的.

我写博文的顺序和参考书顺序是一样的,一方面是我觉得原书的学习顺序很合理,另外一个方面是因为我也确确实实是按照这个顺序学的。

文章的内容一部分是我大致翻译的原书内容,一部分是我的实际经验。

weka的中文资料还是有一些的,但是我没有找到一个较为系统,所以准备自己写一个系列出来。因为数据挖掘涉及一些比较专业的知识,我虽然是学数学的,但毕竟不是专职做数据挖掘的,如果有什么错误和疏漏还希望大家指正。

数据挖掘的发展背景

我们正在被数据所困扰。在我们生活的世界中,数据不断增长。无所不在的个人计算机使原本应该被废弃的数据现在可以很轻易地被保存。廉价的存储设备可以让我们简简单单存储数据而不急于决定其用途,我们所需要的只是再买个硬盘然后继续保存数据。

互联网让我们被信息淹没,但另一个方面每一个选择都被记录下来。它们都是私人的数据,每一个数据都对应了一个个体。数据的数量高速增长,但让人感到遗憾的是,人们的认知和知识保有量却没有同步增长。信息隐藏在大量数据中,那些极有用处的信息没有被发现和重复利用。

寻找数据中的模式是一切的核心,这并不是多么新奇或者高级的事情,从人类出现开始人们就开始寻找模式。猎人从动物迁徙行为中寻找模式;农夫从谷物生长中寻找模式;政客寻求选民意见的模式;科学家寻找物理世界的模式并将其浓缩成理论;企业家评估风险,从行为中寻找模式并将其转化为可以盈利的事业并开阔它们。

经济学家、统计学家和工程师们为了模式可以被自动风险、识别、验证并用于验证这个目标奋斗了相当长的时间,如洪水般增长的数据增加了发现规律的可能性,并使其成为前沿热点技术。据预测,存储于全球的数据每隔20个月就可以翻一倍,当世界不断变得复杂,我们被淹没于数据之中时,数据挖掘将成为极为有价值的技术。它可以让人们获得新的视角并在商业竞争中获得竞争优势。

数据挖掘的定义

数据挖掘是一门交叉学科,汇集了数据库、人工智能、统计学、可视化、并行计算等不同学科和领域。

关于数据挖掘暂时没有一个统一的定义,以下几个定义比较常见:

1.SAS研究所:在大量相关数据基础之上进行数据探索和建立相关模型的先进方法

2.Hand等人:数据挖掘就是在大型数据库中寻找有意义、有价值信息的过程

还有其他很多定义,我个人倾向于“数据挖掘是通过分析现存于数据库中的数据来解决问题的技术”。举个例子,我们要解决的问题在竞争激烈的市场中获得易变的顾客的忠诚。同时我们拥有一个数据库,它包含了顾客的个人信息和顾客的决策。通过分析以前顾客的信息,我们可以发现哪些顾客可能流失,哪些顾客会继续保持忠诚。

数据挖掘的流程

数据挖掘方法很多,但是大致的流程是相似的。

1.问题定义

明确数据挖掘任务的具体需求,同时确定所需要采用的具体方法

2.数据收集和预处理

确定数据挖掘任务所涉及的目标数据,对其进行消除噪音、消除重复数据等处理,然后降维

3.数据挖掘实施

4.数据结果解释

以上流程是一个相对简单的流程,SPSS和NCR等曾提出一个跨行业数据挖掘过程标准,将数据挖掘项目分成6个阶段。具体的内容和介绍可以参考IT168的一篇文章

数据挖掘的功能

数据挖掘是为了从现有数据中获得信息,但它也不是万能,能够发现的知识主要是以下5种:

1.概念知识

类别特征的概括性描述知识。根据数据的微观特征发现同类事物带有普遍性的、较高层次概念的共同性质,是一种对数据的概况、提炼和抽象。

2.关联知识

主要反映一个事件和其他事件之间依赖或者关联性。如果两项或者多项属性之间存在关联,那么其中一项的属性值就可以根据其他属性值进行预测。这类知识发现方法中最有名的就是Apriori算法。

3.分类知识

主要反映同类事物的共同特征和不同事物之间的差异。

4.预测性知识

根据历史数据和当前数据对未来数据进行预测,主要是时间序列预测。

5.偏差性知识

这是对差异和阶段特例的揭示,如数据聚类的离群值等。

相较于挖掘能够发现的知识而言,数据挖掘的方法类型很多,大致可以分为7类

1.决策树方法(信息论方法)

这类方法给予信息论原理,直观容易理解。一般来说这类方法效果好,影响力大。代表算法:ID3算法、C4.5算法、IBLE算法。

2.聚类方法

比较样本距离,距离近的归为一类,距离远的分属在不同的类中。代表算法:k均值、Clara算法、变色龙算法。

3.统计分析方法

利用统计学原理对数据进行分析,这方面有大量的商业软件可以选用。

4.仿生物技术

代表算法:神经网络算法和遗传算法,当然包括两者的其他衍生或近似算法,如鸟群算法。

5.可视化技术

对传统图标功能的一种扩充,让用户对数据的剖析更清晰。

6.模糊数学方法

我最喜欢的一类方法,包括模糊评判、模糊决策、模糊模式识别和模糊聚类。可以参考我以前的有关Aforge.net的博文

7.其他

其他就是其他,比如SVM、文件挖掘、最近邻方法等。

数据挖掘应用

数据挖掘虽然是前沿领域,研究和应用也很热门,但也不是万金油。主要集中于以下几个领域:

1.金融服务

2.市场营销和客户关系管理

3.工程科学研究

4.司法

weka是什么和为什么选择weka

weka全称怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款开源、免费的机器学习和数据挖掘软件。

开发语言是java,基于GNU General Public License协议。

其实数据挖掘的工具和平台相当多,开源的还有R、Tanagra、RapidMiner等,而且中国国情你懂得…商业软件也是可以考虑的SAS、SPSS等等上手快功能丰富。

SPSS我用过,简单方便,但是我老是觉得很神奇,很多功能知道原理,但是没有源代码的话还是对于如何实现比较好奇。

开源的weka功能不算最多,但是最全,最重要的是文档充裕(中文的较少)同时扩展便利,非常适合学习和研究。

 

附上两份参考文档:

WekaManual-3-7-5.pdf
数据挖掘实用机器学习技术英文第2版.pdf

发表评论

电子邮件地址不会被公开。