机器学习经典书籍小结
机器学习经典书籍小结
博客第一篇文章[1]是转载的,也算是开始写博客不经意的表露了自己对机器学习的兴趣吧!那篇文章总结了机器学习的一些经典算法的论文与数学基础理论的一些书籍,对于开始学习机器学习的话恐怕太过深入,正好最近在买书,看了很多经典书籍的总结与评论,我再拾人牙慧,稍稍总结一下吧。
先说一下我看过的和正在看的一些书吧!
《数学之美》;作者吴军大家都很熟悉。这本书主要的作用是引起了我对机器学习和自然语言处理的兴趣。里面以极为通俗的语言讲述了数学在这两个领域的应用。
《Programming Collective Intelligence》(中译本《集体智慧编程》);作者Toby Segaran也是《BeautifulData : The Stories Behind Elegant Data Solutions》(《数据之美:解密优雅数据解决方案背后的故事》)的作者。这本书最大的优势就是里面没有理论推导和复杂的数学公式,是很不错的入门书。目前中文版已经脱销,对于有志于这个领域的人来说,英文的pdf是个不错的选择,因为后面有很多经典书的翻译都较差,只能看英文版,不如从这个入手。还有,这本书适合于快速看完,因为据评论,看完一些经典的带有数学推导的书后会发现这本书什么都没讲,只是举了很多例子而已。
《Algorithms of the Intelligent Web》(中译本《智能web算法》);作者Haralambos Marmanis、Dmitry Babenko。这本书中的公式比《集体智慧编程》要略多一点,里面的例子多是互联网上的应用,看名字就知道。不足的地方在于里面的配套代码是BeanShell而不是python或其他。总起来说,这本书还是适合初学者,与上一本一样需要快速读完,如果读完上一本的话,这一本可以不必细看代码,了解算法主要思想就行了。
《统计学习方法》;作者李航,是国内机器学习领域的几个大家之一,曾在MSRA任高级研究员,现在华为诺亚方舟实验室。书中写了十个算法,每个算法的介绍都很干脆,直接上公式,是彻头彻尾的“干货书”。每章末尾的参考文献也方便了想深入理解算法的童鞋直接查到经典论文;本书可以与上面两本书互为辅助阅读。
《Machine Learning》(《机器学习》);作者TomMitchell[2]是CMU的大师,有机器学习和半监督学习的网络课程视频。这本书是领域内翻译的较好的书籍,讲述的算法也比《统计学习方法》的范围要大很多。据评论这本书主要在于启发,讲述公式为什么成立而不是推导;不足的地方在于出版年限较早,时效性不如PRML。但有些基础的经典还是不会过时的,所以这本书现在几乎是机器学习的必读书目。
《Mining of Massive Datasets》(《大数据》);作者Anand Rajaraman[3]、Jeffrey David Ullman,Anand是Stanford的PhD。这本书介绍了很多算法,也介绍了这些算法在数据规模比较大的时候的变形。但是限于篇幅,每种算法都没有展开讲的感觉,如果想深入了解需要查其他的资料,不过这样的话对算法进行了解也足够了。还有一点不足的地方就是本书原文和翻译都有许多错误,勘误表比较长,读者要用心了。
《Data Mining: Practical Machine Learning Tools and Techniques》(《数据挖掘:实用机器学习技术》);作者Ian H. Witten 、Eibe Frank是weka的作者、新西兰怀卡托大学教授。他们的《ManagingGigabytes》[4]也是信息检索方面的经典书籍。这本书最大的特点是对weka的使用进行了介绍,但是其理论部分太单薄,作为入门书籍还可,但是,经典的入门书籍如《集体智慧编程》、《智能web算法》已经很经典,学习的话不宜读太多的入门书籍,建议只看一些上述两本书没讲到的算法。
《机器学习及其应用2011》,周志华、杨强主编。来源于“机器学习及其应用研讨会”的文集。该研讨会由复旦大学智能信息处理实验室发起,目前已举办了十届,国内的大牛如李航、项亮、王海峰、刘铁岩、余凯等都曾在该会议上做过讲座。这本书讲了很多机器学习前沿的具体的应用,需要有基础的才能看懂。如果想了解机器学习研究趋势的可以浏览一下这本书。关注领域内的学术会议是发现研究趋势的方法嘛。
上面大多都是一些入门级的书籍,想要在这个领域深入下去,还需要深入的阅读一些经典书籍。看了很多推荐大牛推荐的书单,这里总结一下吧。
《Pattern Classification》(《模式分类》第二版);作者Richard O. Duda[5]、Peter E. Hart、David。模式识别的奠基之作,但对最近呈主导地位的较好的方法SVM、Boosting方法没有介绍,被评“挂一漏万之嫌”。
《Pattern Recognition And Machine Learning》;作者Christopher M. Bishop[6];简称PRML,侧重于概率模型,是贝叶斯方法的扛鼎之作,据评“具有强烈的工程气息,可以配合stanford 大学 Andrew Ng 教授的 Machine Learning 视频教程一起来学,效果翻倍。”
《The Elements of Statistical Learning : Data Mining, Inference, andPrediction》,(《统计学习基础:数据挖掘、推理与预测》第二版);作者RobertTibshirani、Trevor Hastie、Jerome Friedman。“这本书的作者是Boosting方法最活跃的几个研究人员,发明的Gradient Boosting提出了理解Boosting方法的新角度,极大扩展了Boosting方法的应用范围。这本书对当前最为流行的方法有比较全面深入的介绍,对工程人员参考价值也许要更大一点。另一方面,它不仅总结了已经成熟了的一些技术,而且对尚在发展中的一些议题也有简明扼要的论述。让读者充分体会到机器学习是一个仍然非常活跃的研究领域,应该会让学术研究人员也有常读常新的感受。”[7]
《Data Mining:Concepts andTechniques》,(《数据挖掘:概念与技术》第三版);作者(美)Jiawei Han[8]、(加)Micheline Kamber、(加)Jian Pei,其中第一作者是华裔。本书毫无疑问是数据挖掘方面的的经典之作,不过翻译版总是被喷,没办法,大部分翻译过来的书籍都被喷,想要不吃别人嚼过的东西,就好好学习英文吧。
一些引申链接:
http://blog.csdn.net/pongba/article/details/2915005
http://blog.csdn.net/caikehe/article/details/8496721
http://blog.chinaunix.net/uid-10314004-id-3594337.html
http://weibo.com/1657470871/zpZ87mhND?sudaref=www.zhizhihu.com
http://www.zhizhihu.com/html/y2012/4019.html
http://zinkov.com/posts/2012-10-04-ml-book-reviews/
几乎所有引申链接中都提到了上面我所提到的经典书籍。另外还有一些其他方面比如信息检索、人工智能还有数学基础方面的书籍。
有人推荐,学习机器学习的话可以先读《统计学习方法》和《统计学习基础》打底,这样就包含了大部分的算法,然后再深入研究某个算法。我觉得,我在上面列出的四本经典书籍都应该通读一遍。孔子云“学而不思则罔,思而不学则殆”,我认为,学习、思考、实践不可缺一,学习的同时要加强算法代码的实现和其他方面比如并行化、使用场景等的思考。