推荐这六本关于机器学习的书籍,并说说它们的优缺点

万事开头难。第一本该介绍哪个,或者第一本该看哪个,实在是不好讲。即使是Amazon上的书评,老外也是理工科两极分化严重,每本都有很多人说适合入门用的,也有很多人说不适合的。但是个人认为,第一本一定要能用最清晰的语言,最简单的例子把尽量多的核心概念、术语讲在前面,最好还要有尽可能多的图,这样初学者才能“不怵”这么多概念名词。有了基本概念之后然后再后面反复涉及这些概念,不断深化理解。最后再能覆盖一定的广度和前沿。

来自永远的幻想的投稿,转载请注明以下内容:

文章出处:数盟社区

文章链接:推荐这六本关于机器学习的书籍,并说说它们的优缺点

作者:永远的幻想

因此:第一本书,我推荐《Pattern Classification》。

模式分类

引进的中文版和影印版,和原版都是第2版,但是英文原版后来多次印刷,改正了很多错误。

优点:

1.版本多,好找。不解释。

2.图多,也不解释。

3.一开始就用简单例子把模式识别的流程,和基本概念比如贝叶斯推断、极大似然等等基本概念,以及评价分类能力常用的接收机特性曲线(Receiver Operating Characteristic curve ROC)等等概念提出来了,讲得比较清楚。即使一开始看不明白,但是你知道有这些玩意,以后会多留心。

4.涉及面比较广。虽然成书比较早了第二版是2000年,第一版居然是1973年。但是覆盖的算法和领域比较广泛,不只限于模式识别了,作为概览很不错了。

5.有深度。很多加*的章节之外,还有涉及哲学思想的评注章节,“发人深省”四个字并不为过,而且值得“反复回味”:比如“奥康的剃刀(Occam’s razor)”法则,“没有天生优越的分类器”法则,等等等,这个中译本的序言里也提到了。

6.入门的数学要求不高。这点对工科出身的人入门很重要。个人感觉学过概率和线代,入门就够了。当然,随机过程啊,矩阵论啊当然难免会涉及到,但是作者已经尽量淡化数学要求了。

问题和不足:

1.图注简略。图虽多,有时还是难免不懂。

2.有难度。公式不少,而且有时跳步,够工科生啃的。每个章节都有引申部分。传说有的学校前三章就能讲2个月以上的。

3.适合理解理论思路思想,但是想对照编程实践,有点难度。虽然有一些算法的伪代码,但是个人觉得还是太简略了。主要是对数据的描述太少。不过,好消息是——现在有配套的Matlab教程了!坏消息是——貌似国内没引进.(偶尔说话大喘气一下,哈哈)

感觉如果不是特别有钱,特别痴迷这个,还是算了。别的书有白提供程序的(再次大喘气)。

4.偏预测,轻数据挖掘;在预测里偏分类,轻回归。这倒不奇怪,人家书名写得明白。

但是,即使想做数据挖掘的,我还是推荐先看这个书。因为首先入门阶段,基本概念都是差不多的,而且后面讲到算法性能评价、选择标准等等思想确实值得领会。

这本主要用来领会思想思路,先不要执着于看懂每行公式,每张图。

第一本大概就这样。

后面就不分先后了。因为有的重理论,有的重应用,而且每个牛人都有自己擅长和生疏的领域,能在自己擅长的领域把各种算法串成脉络,讲清楚发展过程和区别联系已经很难得了。

推荐二《Artificial Intelligence:A Modern Approach》

这次先贴两本离题稍远点的,作为开阔知识来用的参考书。

《Artificial Intelligence:A Modern Approach》

中文和2种影印都是原书第2版,02年出的,两种影印我比较过内容没区别,但是清华的纸质稍好,但价格贵好多。中文和人邮的影印图书馆好找,但是市面上好像木有了。

现在原版是09年底刚出的第3版了。但看书评,好像变化不是特别大,有些有第2版的人觉得亏了。

 

人工智能QQ截图20150907125654

优点:

1.涉及面特别广。从走棋的算法,到语义逻辑分析,到智能系统……并不局限于概率统计类的方法,无所不包。

2.很多AI方面的历史人物和典故。从莱布尼茨时代的机械计算机器,到图灵,到50 60年代某人第一次写了个啥算法。怎么说呢,当故事书看也行了。

3.叙述比较清楚。

问题:

1.有点散。各个章节之间有时联系不是那么大,其实为了做到包罗万象,散是难免的。

2.Introduction 而非Reference。所以指望看这个书完了去照着写算法,就别想了。

3.第2版里没涉及支持向量机(Support Vetor Machine SVM)。这个即使作为02 年出的书也不应该了。不过现在SVM基本是大路货了,到处都是(SVM有点走当年神经网络最后烂大街,无人问津的趋势)。

4.太厚,快速翻阅即可。中文700多页,英文1100多页。因为毕竟大家有各自专业背景,所以挑前几章+自己相关领域的章节,浏览即可,其他当故事书看,就当做专业英语的阅读资料吧。

总之,适合没接触过的这方面的人入门用。但是个人感觉一个是有点散,一个是概念太多,没有突出概率统计。感觉很容易迷路似的,所以第一本没推荐这个。但N多学校都用这个做教材,不是没道理的。

推荐三《Nonlinear Time Series: Nonparametric and Parametric Methods》

这本是两个中国牛人写的。范剑青、姚奇伟.

QQ截图20150907130307

这本虽然专讲时间序列,但是觉得自动化之类工科出身的人往机器学习数据挖掘方面转的话,这样一本由数学家写的数学味浓一些的书还是很有必要的。特别是中国人写的,所以在大牛在国内的时候,还有机会当面请教。

优点:

1.背景知识适合自动化、通信这些专业的。一般电子类的都会学点现代数字信号处理比如Wiener最佳滤波,Kalman滤波之类,已经了解ARMA模型了,这样看这个书可以了解这些方法的发展和引申。虽然不见得以后真的去做金融之类,但是用自己熟悉的背景知识去入门,总比两眼一抹黑钻进去强。其实“在工言工”,看成是在讲高级滤波算法的话,能不能用在控制系统里呢?反正俺那本已经被搞控制的同学借去鸟。

2.图表例子多,程序提供下载。虽然是S-plus/R写的,可能工科的没接触过R,但是很容易上手。

3.数学味,不解释。

问题:

1.领域比较专门。主要适合经济数据,金融数据这些。当然书里也举了生态学上的例子。

2.比较难懂。一个是数学味,一个是很少分析算法细节,公式推导都比较简略,要配合参考文献和程序。

但是之所以推荐这本,倒不是说里面讲到的那些方法。而是想:

1.介绍两位中国牛人,有机会见到可以请教。

2.通过这书里的例子,了解点R语言。开源的数学软件,是数学家用的,上面有很多最新的ML算法。假如你早已熟悉了工程味的MATLAB,现在可以体味一下R简化的都是哪些地方?在思路和实践上,都要习惯不断切换工科和理科两种方式。试试理科的工具,也就能多找找感觉。

3.要适应数学家的表达。毕竟这个领域的算法都是人家提出来的,看论文基本就是在膜拜统计学家了。通过这个也体会一下同样是ARMA模型,理科是怎么思考的。不要再满足于当初学信号处理的时候,好像学了个Levinson-Durbin,Kalman递推公式就万事大吉。

推荐四《Pattern Recognition and Machine Learning》

最后3本,打算先介绍2本贝叶斯方法为主的。下一次再用我最喜欢、也看得最仔细的《the Elements of StatisticalLearning》(EoSL)压轴。

QQ截图20150907131532

作者个人网站:Christopher M. Bishop 上面有题解。这本国内好像没引进。但是人大经济学论坛和CSDN上有PDF下载,淘宝上好像也有卖打印版的。

优点:

1.comprehensive。即使是打12星的读者,也承认这书相对其他同类书里算是好读的了。毕竟,让没接触过的人一下子把脑子切换成用概率来建立数学模型,描述数据,不是太容易的。能用尽量清楚的语言描述清楚已经很显示作者功力了。

2.权威性和读者口碑。作者个人网站上有他的其他著作,不赘述了。关于口碑,不止一个读者在其他书的书评里提到这本《PRML》和之前第一本介绍的《Pattern Classification》以及下次再说的《EoSL》,并称为3本最pop的ML书。而Pattern Classification 的第1版是1973年,第2版是2000年;《EoSL》第1版是2001年,第2版是2009年;都比2006年才出版的《PRML》出得早。能和这2本并称,可见这本书的在读者心中的地位。

插一句:这种700多页难啃、但又必须通读的理论书,我还是觉得读pop的比较放心。即使暂时读不懂,也不要紧,反正硬读下去就是了,准没错。我不是太敢去碰生僻冷门的著作,一个怕读半截发现不行,浪费时间,一个是怕读完了,结果把路子走野了。

缺点:

1.缺实际例子。Amazon上给1、2星的大多是因为这个原因。好几个读者说:不要着急,08年出配套的MATLAB示例。结果到现在作者个人网站上也只字未提。

2.主要是以贝叶斯推断的框架来描述问题的。有什么样的世界观就有什么样的方法论,对其他方法介绍得就很少了。难怪不止一个读者说:This books should be called “My personal unifying theory of Machine Learning and Pattern Recognitionusing the Bayesian Approach”.

3.数学要求+textbook。因为缺实际例子,所以图就净是示意性质的简单图了。而贝叶斯方法少不了大量的公式和积分符号,这些是工科人最头痛的。最喜欢看能编程实现的伪代码,实在没有,看见sigma求和符号也比积分号舒服点,起码知道这就一个for循环的事。

没把这本放第一本的原因主要就是12了,其实2也不能算缺点。

推荐五《Semiparametric Regression (Cambridge Series in Statistical and Probabilistic Mathematics)》

 

QQ截图20150907131631

本书网站上有MATLAB代码。网上能找到PDF版下载。

这本看得不仔细,稍微简单说说。缺点是03年出的,稍嫌老了。而且是专以回归角度来叙述的,以ML整个领域来说,涉及面不是太广。

优点是comprehensive。我是作为《EoSL》的第5、6章的补充来看的,对Spline有任何不明白的地方就看这个书。

这次就这样吧,下次最终章详细来说压轴的《EoSL》。

推荐六《EoSL》:一副机器学习数据挖掘的脚手架

正式开始之前,先摆出网友提到的问题:

“我现在混饭吃的地方,管这一堆东西叫DM;我们用的时候大都是立足于现成的软件包。

我的基本感觉是,这堆东西,你要是就是拣点出来用用,似乎不难;尤其是已经有了个现成的软件包,而且你的目的和任务已经由于历史性的原因非常明确了。

我的理解,如果冒昧地说一下,永远兄的环境,似乎是要从零开始-当然基本的理论和算法已经在那儿了,搞出个应用于某个任务的新"程序"。如果方便的话,能不能说说你要解决的问题都是哪些方面的。

 我的疑惑在于,一直不是很清楚基本的框架(Framework):要敲钉子找榔头、要卸螺丝拿扳手,看不到这些技术之间的联系。与此相关的是,这里涉及到计算机、数学、统计(经济、生物、营销等若干学科都有自己的概念/名词体系)、自动化,我的理解是各个学科里面拿出一块或几块,然后放在了一起,到底是哪几块、是怎么凑在一起的(也许根本就没凑在一起)?找了些书看,看着看着就被绕进去了。

 不知永远兄和其他各位,如果有空的话,能否释疑解惑一二,我先谢谢大家。”

其实前面帖子的回复里我提到一点了,我现在主要是做图像视频中的目标检测、跟踪。应用环境的软硬件限制了,肯定没法用现成的软件包的,肯定是要自己写程序。而且要兼顾ROC和运行时的时间、空间复杂度。

当然还干些别的,个人兴趣也不止于此,比如这几天就去鼓捣股指去了,才一直没动笔。

关于框架,其实是我最想说,但是也最难下笔的问题。

其实学任何一个专业,如果没有一个高屋建瓴的视角看待这个学科,如果心中没有一个脉络把“榔头,扳手”这样的“知识点”串成一个体系,那不管是复习应付考试还是想在实际中把知识应用起来,都很困难的(没有体系纯把知识点都硬背下来,太难了)。

这就是当年陆九渊在鹅湖之会时说朱熹理学是格物级别,是支离。反过来,如果只有理论,不会用“榔头,扳手”,那就是空疏。(关于这个问题可以去看晨枫老大的关于工程科研和工业实践的脱节。)

另外,我现在还有一个越来越深的体会就是:有什么样的世界观才会有什么样的方法论。封建社会“皇帝轮流做”的世界观只能建起聚义厅和分金亭,绝不可能建起工农苏维埃政府和银行。如果想自己针对具体问题提出新方法,没有一个世界观是绝对不行的。

这个系列写到后来就想开始写框架,但是首先,讲框架离不开具体算法和应用背景,那就难免要列列图表公式啥的,而网文贴图麻烦,“此处并非讲话之所”;再一个,个人水平有限,公式图表还是得去抄书,然后再列出处,反倒不如直接把出处写清楚点,写写书评。第三,俺平时很喜欢东拉西扯的跑题,思路也比较发散(人如其ID),也不太想写得太规矩,还是随便一点。

我就用这本书,借着牛作者的花来献献佛,说说自己对的“体系”理解吧。

写这么多废话,主角还没上场―。―,赶紧有请:

《The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Second Edition (Springer Series in Statistics)》

 

QQ截图20150907131836

本书网址是我见过的对一本书来说最全面的网站,不但有R程序,还有本书第2版PDF下载!还能由此找到作者个人发表的文章、讲这个课用的讲义、幻灯片、留的作业等等等。

优点:

1.思路和动机。Amazon有读者觉得这书不好,仅仅是作者的研究个人研究笔记而已。没错,这是一本三个作者把70年代以来他们的研究轨迹串起来的书。

对于作案水平高的老大,能毫无保留把作案手法给小贼们讲清楚已经是难能可贵了。而再能进一步交待清楚自己作案动机、怎么逐一发展出的作案手法的心得,这可是很稀有的存在啊。

不得不提到厚积薄发老大的【原创】结束语+全文链接:那些没有拆掉的脚手架们。(全文完),在里面老大提到:

“卢梭曾写过《忏悔录》,剖析自己的心路历程。我读数学家传记,读到高斯时,有后人抱怨,“他建立了一座宏伟的数学宫殿供我们敬仰,却在宫殿建成后把脚手架拆得干干净净,让我们无从知道他是怎么做出那些伟大的发现的。”

 可以说,这本书就是三个作者给数据挖掘,机器学习这个宫殿搭的一个脚手架。处处可见作者思路的轨迹,是怎么想出那么多方法的。

我本不想细说这个,正如Amazon上读者说的,这个脚手架的个人色彩浓厚了点,机器学习领域方法太多,走作者这条路未必对就真对路。但是既然南寒问到了,那就提作者背背书吧。

不过这么一来,一篇肯定就放不下了,讲到哪里算哪里,多了就再起新篇吧。

作者出发点是“维数灾难(the curse of dimensionality)”。

如果用“少量的训练样本在高维特征空间中分布变得稀疏,导致算法缺乏泛化能力”这样的话来解释,我想任何人第一次听说的时候绝对不会明白。我即使现在明白了,也还是觉得这种表达太装13了,太绕。那就换一种角度来说。

解方程的时候,理论上方程个数N只要等于未知数个数p,那么就可以了。但是实际中考虑的误差之类的,方程数要比未知数多,才能保证求出的解是“好的”。总是希望最好是“所有可能的样本”拿来都能套用这个解。也就是说是全局最优解。

“维灾难”是说,随着未知数个数增加,需要的方程个数增加得大得多。具体到机器学习上1个训练样本就是1个方程,那么维数p一高,你的训练样本N再多也是“不够用”的,即使N>>p。

解决方法就俩字——想办法“降维”。降低描述每个样本的特征向量的维数p,也就是降未知数的个数。这样方程数量不变的情况下,未知数少了。

除了维灾难,还有一种情况,就是未知数反过来比方程多的时候,而且是p>>N。比如DNA微阵列分析、语义分析这些。以DNA来说,对某种癌症,上万的基因的可能致病作用是未知数(如果考虑不同基因组合作用,就更多了),可病人样本的总是有限的,有时就是要在几千个,几百个的样本上进行分析,希望能“挖掘”到放之四海而皆准的原理来。这时候想把p降到<N,实在不现实。

而方程太少,参数太多,肯定是无穷多种解啊,可是致病机理一定是确定的。想得到唯一解怎么办呢?嗯,加约束条件

我概括作者研究的总方向就是一个:线性模型+罚约束

作者在第3章开始讲线性回归,然后第4章线性分类。从最基础的最小二乘解开始,然后是对解加2范数约束得到Ridge Regression岭回归;再到加1范数的约束,于是有了Lasso,LAR;然后是1 2 范数的组合Elastic Net等等等……。一开始读过,觉得这些没什么特别之处啊,说一千道一万,不就是个线性方程组的解么,能有什么意思?就像《地道战》里的牛娃说的:“鼓捣这玩意,能把黑风口的炮楼挖掉么?”Amazon也有读者觉得前几章有点浪费篇幅。除了因为觉得线性回归、分类太简单,还有挤占别的章节篇幅的嫌疑,后面再说。

但是越往后读,就越要经常往回翻第3章。

与其说这是作者的写作方式,倒不如说作者的研究路径就是这种不断“回溯”的过程(借用软件工程里的话)。具体地说:作者就是用这种不断应用“线性模型+罚约束”的思想,串起来一系列的方法:

第5章从样条到加罚平滑样条和小波,这就到了kernel的思想:经过非线性的核/基函数作用,非线性问题又变成了线性问题。

这就到了第9章的广义加法模型:树和多元加法样条。

有了广义加法模型,第10章作者用“逐次向加法模型添加非线性基函数,以使指数形式的损失函数变小”的角度分析了Adaboost,boosting,以及提出了MART。

然后到了第15章Random Forest。这章很短,但是之前一路看过来之后,觉得就是这么简单而已。

16章的Ensemble Learning也是如此,开头的ECOC虚晃一枪。后面仍然使用boosting 、Random Forest的思路,用线性组合+罚来集成多分类器。

最后的18章,推广到p>>N的情况下的特征选择问题。作者展示了在DNA微阵列分析问题上,把之前各种方法随便组合起来一下(比如加罚的logistic 回归,线性回归+PCA = 监督PCA),都有不俗表现。

通读此书之后让人觉得是某位大侠,从最朴实无华的招式起手,初觉平淡无奇,但是后面不断深入、不断变化,到最后的眼花缭乱,屡出奇招。而每次变招都是从原来那最简单的招式开始(比如太极拳,就是揽雀尾啊,那几招)。这几章构成了一个连贯的思路,作者们30多年来的成果主要也集中上面这几章。

其他的章节要么是为了挂靠在这个思路下面(4线性分类),要么是为了讲这个思路不得不提到(6核平滑、7模型选择、13原型方法和近邻、14无监督学习)。其中的7、14也是非常重要的章节。

剩下的就比较鸡肋了,应该是作者不擅长或者不care,但是因为写书还是放进来的(8 贝叶斯推断、11神经网络、12支持向量机、17图模型)。仅以这些方法本身论,都是能单独写一本书的,也应该算是“必知必会”的知识点了,但是本书中篇幅和内容上都比较简略了。

图片1

作者简介:永远的幻想,北京,博士毕业,关注计算机视觉、金融时间序列、兵棋推演中的机器学习、数据挖掘、并行计算。blog:http://xuanmanstein.wordpress.com/(需梯子)

展开阅读全文

没有更多推荐了,返回首页