【转】数据挖掘从入门到进阶

做数据挖掘也有些年头了,写这篇文一方面是写篇文,给有个朋友作为数据挖掘方面的参考,另一方面也是有抛砖引玉之意,希望能够和一些大牛交流,相互促进,让大家见笑了。

入门:

数据挖掘入门的书籍,中文的大体有这些:

Jiawei Han的《数据挖掘概念与技术》

Ian H. Witten / Eibe Frank的《数据挖掘 实用机器学习技术》

Tom Mitchell的《机器学习》

TOBY SEGARAN的《集体智慧编程》

Anand Rajaraman的《大数据》

Pang-Ning Tan的《数据挖掘导论》

Matthew A. Russell的《社交网站的数据挖掘与分析》

很多人的第一本数据挖掘书都是Jiawei Han的《数据挖掘概念与技术》,这本书也是我们组老板推荐的入门书(我个人觉得他之所以推荐是因为Han是他的老师)。其实我个人来说并不是很推荐把这本书。这本书什么都讲了,甚至很多书少有涉及的一些点比如OLAP的方面都有涉猎。但是其实这本书对于初学者不是那么友好的,给人一种教科书的感觉,如果你有大毅力读完这本书,也只能获得一些零碎的概念的认识,很难上手实际的项目。

我个人推荐的入门书是这两本:TOBY SEGARAN的《集体智慧编程》和Ian H. Witten / Eibe Frank的《数据挖掘 实用机器学习技术

集体智慧编程》很适合希望了解数据挖掘技术的程序员,这本书讲述了数据挖掘里面的很多实用的算法,而且最重要的是其讲述的方式不是像Han那种大牛掉书袋的讲法,而是从实际的例子入手,辅以python的代码,让你很快的就能理解到这种算法能够应用在哪个实际问题上,并且还能自己上手写写代码。唯一的缺点是不够深入,基本没有数学推导,而且不够全面,内容不够翔实。不过作为一本入门书这些缺点反而是帮助理解和入门的优点。

推荐的另一本《数据挖掘 实用机器学习技术》则相对上一本书要稍微难一点,不过在容易理解的程度上依然甩Han老师的书几条街,其作者就是著名的Weka的编写者。整本书的思想脉络也是尽可能的由易到难,从简单的模型入手扩展到现实生活中实际的算法问题,最难能可贵的是书的最后还稍微讲了下如何使用weka,这样大家就能在学习算法之余能够用weka做做小的实验,有直观的认识。

看完上述两本书后,我觉得大体数据挖掘就算有个初步的了解了。往后再怎么继续入门,就看个人需求了。

如果是只是想要稍微了解下相关的技术,或者作为业余爱好,则可随便再看看Anand Rajaraman的《大数据》以及Matthew A. Russell的《社交网站的数据挖掘与分析》。前者是斯坦福的"Web挖掘"这门课程的材料基础上总结而成。选取了很多数据挖掘里的小点作为展开的,不够系统,但讲的挺好,所以适合有个初步的了解后再看。后者则亦是如此,要注意的是里面很多api因为GFS的缘故不能直接实验,也是个遗憾

如果是继续相关的研究学习,我认为则还需要先过一遍Tom Mitchell的《机器学习》。这本书可以看做是对于十多年前的机器学习的一个综述,作者简单明了的讲述了很多流行的算法(十年前的),并且对于各个算法的适用点和特点都有详细的解说,轻快地在一本薄薄的小书里给了大家一个机器学习之旅。

进阶:

进阶这个话题就难说了,毕竟大家对于进阶的理解各有不同,是个仁者见仁的问题。就我个人来说,则建议如下展开:

视频学习方面:

可以看看斯坦福的《机器学习》这门课程的视频,最近听说网易公开课已经全部翻译了,而且给出了双语字幕,更加容易学习了^_^

书籍学习方面:

我个人推荐的是这样:可以先看看李航的《统计学习方法》,这本书着重于数学推导,能让我们很快的对于一些算法的理解更加深入。

有了上面这本书的基础,就可以开始啃一些经典名著了。这些名著看的顺序可以不分先后,也可以同时学习:

Richard O. Duda的《模式分类》这本书是力荐,很多高校的数据挖掘导论课程的教科书便是这本(也是我的数据挖掘入门书,很有感情的)。如果你不通读这本书,你会发现在你研究很多问题的时候,甚至一些相对简单的问题(比如贝叶斯在高斯假设下为什么退化成线性分类器)都要再重新回头读这本书。

Christopher M. Bishop的《Pattern Recognition And Machine Learning》这本书也是经典巨著,整本书写的非常清爽。

The Elements of Statistical Learning》这本书有句很好的吐槽“机器学习 -- 从入门到精通”可以作为这本书的副标题。可以看出这本书对于机器学习进阶的重要性。值得一说的是这本书虽然有中文版,但是翻译之烂也甚是有名,听说是学体育的翻译的。

Hoppner, Frank的《Guide to Intelligent Data Analysis》这本书相对于上面基本经典巨著并不出名,但是写的甚好,是knime官网上推荐的,标榜的是解决实际生活中的数据挖掘问题,讲述了CRISP-DM标准化流程,每章后面给出了R和knime的应用例子。

以前写过的读书笔记http://www.cnblogs.com/flclain/archive/2012/11/23/2785079.html

项目方面:

事实上,我觉得从进阶起就应该上手一些简单的项目了。如果不实践只是看书和研究算法,我觉得是无法真正理解数据挖掘的精髓所在的。打个简单的比方,就算你看完了C++ Primer、effective C++等等书籍,如果自己不写C++,那么自己也就会停留在hello world的级别。实践出真知非常切合数据挖掘这门学科,实际上手项目后才会发现什么叫"80%的准备,20%的建模",real world的问题我认为并不是仅仅靠modeling就能很好的解决的。详细的可以看看《Guide to Intelligent Data Analysis》就能略知一二。如果上手做推荐或者一些简单的项目,也可以考虑用用mahout,推荐的入门手册是《mahout in action》。项目问题说来话长,有时间会以CRISP流程为引单独作文,这里也就不详谈了。

软件方面:

我常用而且推荐的软件有如下,这里只是简单的列出,以后有时间再详细分析和写出入门:

Weka Java的软件,可以集成到自己的项目中

Orange 一个用python写的数据挖掘开源软件,界面做的很漂亮,可以做图形化实验,也可以用python调用编程。

Knime 和Orange类似,特点是可以集成weka和R等开源软件

SAS的EM模块以及R 还有最最经典的matlab大大

不过引用余凯大大的一个weibo来说

“不用Matlab的理由太多,稍微列一下,大家补充吧:

1. 积重难返,最后工作效率反而越来越低;

2. follow production protocol, 相当于学习无数程序员的实践经验;

3. 不能驾驭算法和系统的人不能真正作出有实用价值的研究成果;

4. 百度腾讯阿里谷歌面试通不过;

5. Matlab很贵”

这里有篇文有简要的介绍上面的部分开源软件http://www.oschina.net/question/12_14026

再往后:

再往后的其实就是我就是觉得是学数学了,然后就是深入读一些你感兴趣的topic的书籍和paper,接项目,做项目了。发展有数据分析师或者去专门的企业做数据研究员,当然混学术界的我就不清楚了。

初略写完发现成一篇长文了,最近也是在做一个用眼底照片预测stroke的项目,比较忙,等闲下来以后也会写些算法或者软件或者实际项目的心得的文。当然也只是我个人粗浅的想法,也希望能和大家有所交流,相互促进,我个人邮箱是[email protected],有什么问题可以在帖子里讨论,也可邮件或者豆邮交流^_^

时间: 2024-10-09 23:51:20

【转】数据挖掘从入门到进阶的相关文章

漫谈数据挖掘从入门到进阶

入门: 数据挖掘入门的书籍,中文的大体有这些: Jiawei Han的<数据挖掘概念与技术> Ian H. Witten / Eibe Frank的<数据挖掘 实用机器学习技术> Tom Mitchell的<机器学习> TOBY SEGARAN的<集体智慧编程> Anand Rajaraman的<大数据> Pang-Ning Tan的<数据挖掘导论> Matthew A. Russell的<社交网站的数据挖掘与分析> 很多

Hadoop大数据挖掘从入门到进阶实战

1.概述 大数据时代,数据的存储与挖掘至关重要.企业在追求高可用性.高扩展性及高容错性的大数据处理平台的同时还希望能够降低成本,而Hadoop为实现这些需求提供了解决方案.面对Hadoop的普及和学习热潮,笔者愿意分享自己多年的开发经验,带领读者比较轻松地掌握Hadoop数据挖掘的相关知识.这边是笔者编写本书的原因.本书使用通俗易懂的语言进行讲解,从基础部署到集群管理,再到底层设计等内容均由涉及.通过阅读本书,读者可以较为轻松地掌握Hadoop大数据挖掘与分析的相关技术. 本书目前已在网上商城上

iptables入门到进阶

Iptables入门到进阶 一.前言 Firewall(防火墙): 隔离工具:Packets Filter Firewall(包过滤防火墙):工作于主机或网络的边缘,对经由的报文根据预先定义的规则(匹配条件)进行检测,对于能够被规则匹配到的报文实行某预定义的处理机制的一套组件: 防火墙类型 从防火墙的实现形式来分的话,防火墙可以分为软件防火墙和硬件防火墙 硬件防火墙:在硬件级别实现部分功能的防火墙:另一个部分功能基于软件实现: 软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙: 从防火

Wireshark入门与进阶---数据包捕获与保存的最基本流程

Wireshark入门与进阶系列(一) 本文由CSDN-蚍蜉撼青松 [主页:http://blog.csdn.net/howeverpf]原创,转载请注明出处! 你在百度上输入关键字"Wireshark.使用.教程",可以找到一大堆相关的资料.那么问题来了, 为什么我还要写这个系列的文章? 前面你能搜到的那些资料,大部分可能存在两个小问题: 网上大部分资料引自(or译自)Wireshark官方的用户手册,或使用类似于用户手册的写法,它们很详细的告诉你Wireshark有哪些窗口.菜单.

System.Web.Routing入门及进阶 下篇

上面介绍的是最简单的一种定义方式.当然我们可以建立更复杂的规则.其中就包括设定规则的默认值以及设定规则的正则表达式. UrlRouting高级应用 预计效果: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->当我访问/a/b.aspx时就会转到Default.aspx?category=a&action=b在页面上显示category:aac

System.Web.Routing入门及进阶 上篇

System.Web.Routing已经作为一个程序集包含在.net3.5sp1中发布了.虽然我们并没有在3.5sp1中发现Asp.net Mvc的踪迹,但是亦以感觉到它离我们不远了. System.Web.Routing用于在Asp.net的Web应用程序中进行URLRouting. 所谓UrlRouting就是将一个地址映射为另一个地址,比如我访问/chsword/2008/08/27.html其实是访问了/chsword/article.aspx?y=2008&m=08&d=27这个

SQL Server AlwaysON从入门到进阶(1)——何为AlwaysON?

本文属于SQL Server AlwaysON从入门到进阶系列文章 本文原文出自Stairway to AlwaysOn系列文章.根据工作需要在学习过程中顺带翻译以供参考.系列文章包含: SQL Server AlwaysON从入门到进阶(1)--何为AlwaysON? SQL Server AlwaysON从入门到进阶(2)--存储 SQL Server AlwaysON从入门到进阶(3)--基础架构 SQL Server AlwaysON从入门到进阶(4)--分析和部署Windows Ser

WPF 从入门到进阶资料

Tutorials on WPF A Guided Tour of WPF by Josh Smith I wrote a series of introductory WPF articles on The Code Project.  The goal of those articles is to bring someone with no WPF experience up-to-speed enough so that (s)he can fully understand how th

SQL Server AlwaysON从入门到进阶(2)——存储

本文属于SQL Server AlwaysON从入门到进阶系列文章 前言: 本节讲解关于SQL Server 存储方面的内容,相对于其他小节而言这节比较短.本节会提供一些关于使用群集或者非群集系统过程中对存储的利用建议.当然,重点还是集中在对于一个标准的AlwaysOn可用组配置过程中,对存储的选择和配置上面. AlwaysOn的部署首先建立在一个Windows Server Failover Cluster(WSFC)上.并且每个服务器通常有一个独立的SQL Server实例.另外,每个服务器