`
美丽的小岛
  • 浏览: 296387 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

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

 
阅读更多

In no particular order: 

Foundations of Machine Learning, Mehryar Mohri, Afshin Rostamizadeh, Ameet Talwalkar
An ambitious book that covers an impressive subset of the theoretical basis of machine learning. Includes excellent treatment of fundamentals (learning complexity, kernel methods, boosting, PAC learning, regression), as well as some subects that are almost never covered properly (ranking, multiclass, online). Additionally gives a nice ML perspective of some things (JL-lemma) that usually are not talked about well in textbooks.

Learning From Data, Yaser S. Abu-Mostafa, Malik Magdon-Ismail, Hsuan-Tien Lin 
Sort of like Foundations of Machine Learning, but seems to be built for an undergrad curriculum. Contains stuff about the theoretical underpinnings, but omits the more complicated theory. It is well-written and intuitive, with theoretically intense parts clearly marked and roped off for those who are, e.g., too mathematically "young." 

Information Theory, Inference, and Learning Algorithms, David J. C. MacKay [free pdf] 
A presentation of statistical modeling that is unified across information theory, coding theory, statistics, physics, ML, computational biology, cryptography, and signal processing. It is fantastically and uniquely illuminating. Contains my favorite treatment of many subjects (Ising models, Monte Carlo methods, fountaint codes, etc.). 

All of Statistics, Larry Wasserman 
Most of ML is collected into a series of tasks (regression, classification, clustering, etc.) whose only commonality is that they are types of statistical inference. Among the virtues of this remarkable book is that it approaches the subject of statistical inference in a very general fashion, and in a way that is graceful and approachable, but still rigorous. This is a good starting point for ML, as most of ML is a specialization of some subset of the topics presented here. IMO, it is the best book of its type. 

Machine Learning: A Probabilistic Perspective, Kevin P. Murphy 
Mostly a roundup of the recent explosion in Bayesian inference. Unlike other books on this list, ML:APP seems to have been assembled by collecting papers, stapling them all together, making the notation consistent, and adding a bit of glue to unify them. For example, most of the figures are pulled (with permission) directly from other papers. This is not a bad thing! I'm very glad someone did it. But it does sometimes feel rushed, and there are many typos. 

Pattern Recognition and Machine Learning, Christopher M. Bishop 
Bishop's book is useful mainly because it is quite thorough, and contains a good treatment of many of the esoteric corners of well-known methods. But I also found it to be quite dense, and often didn't understand exactly what Bishop was saying, or how he derived something. I find that it is very useful when I consult it about a subject after having already read 2 or 3 other texts. 

The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Trevor Hastie, Robert Tibshirani, Jerome Friedman [free pdf] 
The quintessential (frequentist) ML text. It's more computationally-minded than I would have expected from classically trained statisticians, but its lack of robustly Bayesian material dates it in some ways. (I'm not saying one perspective is better, I'm saing you should know both. 

Probabilistic Graphical Models: Principles and Techniques, Daphne Koller, Nir Friedman 
A dense, comprehensive, and canonical treatment of graphical models. Covers Markov Random Fields, Contitional Random fields, Bayes nets, and so on. 

Gaussian Processes For Machine Learning, Carl Edward Rasmussen, Christopher K. I. Williams [free pdf] 
The classical treatment of the Gaussian process, an important class of statistical model. 


做数据挖掘也有些年头了,写这篇文一方面是让我写篇文,朋友作为数据挖掘方面的参考,另一方面也是有抛砖引玉之意,希望能够和一些大牛交流,相互促进,让大家见笑了。 
######################################### 
更新部分 
######################################### 
Q&A: 
Q:学习,最近在看集体智慧编程,楼主可否推荐下数学基础的书? 
A:我数学本身也不好 自己也在偷偷补 因为看的不多也不能给出个提纲式的建议 只能给您列下我近期看过和在看的觉得不错的书 您看做参考吧 
1.矩阵方面 Kaare Brandt Petersen的《The Matrix Cookbook》 网易公开课中的《麻省理工公开课:线性代数》 
2.概率论与数理统计方面 JohnA.Rice 的《数理统计与数据分析》《统计建模与R软件》 
3.微积分方面 网易公开课中的《麻省理工学院公开课:单变量微积分》 

其实您只要有了 
1.概率论与数理统计以及其他统计学基础 
2.扎实的线性代数功底 
3.微积分(如果能学习下实变函数和泛函分析就更好了) 
这几方面的基础 基本上机器学习的大部分算法您都具有了其数学基础 
如果您觉得我说的太泛 可以先看看《模式分类》这本书的附录中的数学基础 这样您就大体有个印象了 
推荐两篇我认为写的不错的相关博客 http://blog.sina.com.cn/s/blog_6833a4df0100nazk.html 
http://www.cnblogs.com/LeftNotEasy/archive/2010/12/05/mathmatic_in_machine_learning_1_regression_and_gradient_descent.html 

######################################### 
入门: 

数据挖掘入门的书籍,中文的大体有这些: 
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的应用例子。

 



项目方面: 
事实上,我觉得从进阶起就应该上手一些简单的项目了。如果不实践只是看书和研究算法,我觉得是无法真正理解数据挖掘的精髓所在的。打个简单的比方,就算你看完了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大大 
这里有篇文有简要的介绍http://www.oschina.net/question/12_14026 

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

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics