机器学习书籍推荐
1. 数学基础
机器学习是构建于数学的基础之上的,因此只有把数学的基本功打好,才能够在机器学习领域有长远的发展。正所谓”勿在浮沙筑高台“。
- 微积分:微积分学教程 (F.M.菲赫金哥尔茨)俄罗斯的数学书
- 线性代数:Linear Algebra and Its Applications,Third Edition (David C.Lay)讲得很实际,线性代数最重要的就是与实际应用相联系才能够理解其意义
- 概率与统计:概率论与数理统计 (陈希孺)或(盛骤/谢式千/潘承毅)这两本书都很不错
- 随机过程:应用随机过程:概率模型导论 (Sheldon M. Ross)这本书已经出到第10版了
这四门是数学的基础,当然数学本身就是博大精深的,下面这个链接中有更深入的一些资料可以学习。
2. 机器学习与数据挖掘(偏理论)
- 统计学习方法 (李航)
- 统计学习基础 (Trevor Hastie, Robert Tibshirani, Jerome Friedman)
- Pattern Recognition and Machine Learning (Christopher Bishop)
- Machine Learning: A Probabilistic Prespective (Kevin Murphy)
- Pattern classification (Richard O. Duda, Peter E. Hart and David G. Stork)
- Introduction to Machine Learning (Ethem Alpaydin)
- Data Mining (韩家炜)
- 现代模式识别 (孙即祥)
个人觉得《统计学习方法》与《统计学习基础》这两本书是基础,后面的书内容相差不大,所以前两本书应该看,而入门的话,后面的书可以选1到2本精读,剩下的书可作参考。
3. 智能算法(偏应用)
- Web智能算法 (Haralambos Marmanis, Dmitry Babenko)
- 集体智慧编程 (Toby Segaran)
- 推荐系统实践 (项亮)
- 数据之魅 (Pbilipp K.Janert)
这几本书均是从实践的角度讲解了机器学习中常用的算法,非常值得一看。
有人推荐,学习机器学习的话可以先读《统计学习方法》和《统计学习基础》打底,这样就包含了大部分的算法,然后再深入研究某个算法。
入门级:
《数学之美》;作者吴军大家都很熟悉。这本书主要的作用是引起了我对机器学习和自然语言处理的兴趣。里面以极为通俗的语言讲述了数学在这两个领域的应用。
《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。但有些基础的经典还是不会过时的,所以这本书现在几乎是机器学习的必读书目。那么Mitchell的<机器学习>是经典的入门之作。当然,因为年代久远,很多新的模型都没有涉及到,但不影响他的经典性——入门级。
《机器学习实战》对于程序员,想快速了解模型流程和优缺点的,甚至是实现模型的,那么<machine learning in action>是我比较推荐的,现在已经有中文版了<机器学习实战>。这本书,提到了很多常见的模型,开始就是模型背景简介,之后是模型优缺点和应用场景、在接着算法实现和案例。而且,在书的最后,提及了一些比较切合时代的话题——大数据下机器学习。
《机器学习基础》对于想从事机器学习的入门人员,比较推荐一本有中文版的<机器学习基础>(Simon Rogers的,英国格拉斯哥大学计算机科学学院讲师),这本书适合高年级本科生和研究生。从理论的角度,推导了各个算法,以及探究了各个模型的特性等。涉及数学和矩阵的地方,都有详细的参照。适合高端点的入门,看这本书,可以体会一下自己的数学和矩阵,有种必须要加强的感觉。
《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算法》已经很经典,学习的话不宜读太多的入门书籍,建议只看一些上述两本书没讲到的算法。
深入级:
《Pattern Classification》(《模式分类》第二版);作者Richard O. Duda[5]、Peter E. Hart、David。模式识别的奠基之作,但对最近呈主导地位的较好的方法SVM、Boosting方法没有介绍,被评“挂一漏万之嫌”。
《The Elements of Statistical Learning : Data Mining, Inference, andPrediction》,(《统计学习基础:数据挖掘、推理与预测》第二版);作者RobertTibshirani、Trevor Hastie、Jerome Friedman。“这本书的作者是Boosting方法最活跃的几个研究人员,发明的Gradient Boosting提出了理解Boosting方法的新角度,极大扩展了Boosting方法的应用范围。这本书对当前最为流行的方法有比较全面深入的介绍,对工程人员参考价值也许要更大一点。另一方面,它不仅总结了已经成熟了的一些技术,而且对尚在发展中的一些议题也有简明扼要的论述。让读者充分体会到机器学习是一个仍然非常活跃的研究领域,应该会让学术研究人员也有常读常新的感受。”[7]

浙公网安备 33010602011771号