想要入门机器学习,我推荐这几本书(文末福利)
本文始发于个人公众号:TechFlow,原创不易,求个关注
最近有很多小伙伴私信我,主要围绕的问题有两个,一个问题是想要入门机器学习,应该看什么书比较好?第二个问题是,有没有一些福利分享?最近刚好在做整理工作,于是抽了一点时间,把之前看过的电子书都整理了一下,从其中选出了几本我个人觉得质量比较高的推荐给大家。
这几本书按照豆瓣评分从高到低排序。
第一本 Python深度学习
这本书和其他基本相比起来名气要小一些,但是在国外这本书很火。它的作者是大名鼎鼎的Chollet,是Keras框架的作者,被誉为Keras之父,在业内算是*的大牛了。这样的大牛写的书,质量可想而知。
我读这本书是在去年,大概连读带实践一共有了一个多月,我记得很清楚,那一个多月我没碰PS4,可想而知它的魅力。这本书严格说起来属于深度学习的范畴,几乎没有传统机器学习的内容。也因此它更加聚焦,几乎把深度学习领域常用的算法和模型都介绍了一遍,也附上了详细的代码演示。书里的代码演示以及选择的案例都非常精彩,照着敲就可以获得很愉悦的体验。并且全书使用Keras框架实现,整体模型的实现非常爽快,没有冗余的代码, 也没有反人类的设计。在学完深度学习的同时还能做到keras入门,不得不说是买一送一了。
如果非要说缺点的话也是Keras,这个框架相对没有TensorFlow和Pytorch那么流行。所以我学完了之后,几乎没有再用过Keras,因此稍稍打了点折扣。但现在TensorFlow2.0将Keras嵌入了其中,学习Keras对于学习TensorFlow2.0也有帮助,所以这也不算太大的问题。
豆瓣评分:9.5
推荐指数:✩✩✩✩✩
第二本 Scikit-learn与TensorFlow机器学习实用指南
这是大名鼎鼎OREILLY出版社的书,这个出版社在业内非常有名,出品的几乎都是精品。和其他的书面面俱到不同,这本书当中涉及到的模型其实不多,我翻了一下目录,只有LR、SVM、决策树、随机森林、DNN、CNN这几种。实际上机器学习的核心模型,我们日常当中最经常用到的也就是这么几种。书中的每一个模型都讲解得很深入,不仅有公式、原理还有代码演示。实际上我之前的文章当中,也借鉴过书中的演示数据。
这本书的另外一个优点是围绕机器学习这个概念讲解得很透彻,其实机器学习并不像大家所想的那样只是搭建或者是实现一个模型,然后用起来就完事了。在实际的工业场景当中,机器学习的模型只是一个很小的一部分,算法工程师面对的是从数据到应用再到回流、迭代的一整个链路的事情。很少会有书会涉及模型之外的内容,但是实际上这部分内容是非常重要的。这本书在这点上做得很好,如果你是初学者, 你看完之后,一定对机器学习本身会有更深刻的理解。虽然也许会的模型不多,工具库的使用也不熟练,但是至少在机器学习这个领域内的认知已经合格了。
有优点自然也有缺点,缺点之一是中文版比较少,我只找到了网友翻译的开源版本。相对来说排版的质量会差一些,一些字句也不如英文版清晰。另外一个问题是深度学习的部分讲得比较浅显,很多模型不够深入。
豆瓣评分:9.2
推荐指数:✩✩✩✩✩
第三本 统计学习方法
这本书我接触也比较早了,早在我大三实习的时候就有大牛将它推荐给了我,我第一章都没有读完就放在kindle里吃灰了。之前一段时间又拿出来重新温习了一遍,完全颠覆了之前的认知,这本书没有任何问题,就只是我之前太菜了而已。实际上也的确如此,这本书在业内的地位还是很高的,并且内容的质量非常不错。
这本书从名字上看似乎和机器学习一点关系也没有,其实不然,虽然说是统计,但是其中讲的都是机器学习的方法。大概是因为年代太久了的关系,在那个年代还没有机器学习这个热门词出现,这些算法还被归纳到统计的范畴当中。这本书一共两百多页,讲了十几个模型,平均二十多页一个模型,而且每个模型讲得都很清楚,基本上所有知识点都讲到了,质量也很高。也看得出来,这本书的干货非常足,而且很精炼。
但是它的缺点也很明显,整本书读起来可读性不行,非常容易劝退。初学者很难一口气肝完,因为太像是课堂笔记或者是讲课课件了。并且也没有代码相关的演示,纯粹的理论,读完了之后想要实践会有无从下手的感觉。我个人感觉它更适合查漏补缺当做工具书,方便随时查阅。
豆瓣评分:9.0
推荐指数:✩✩✩
第四本 西瓜书
这是一本明星书,在业内也是大名鼎鼎,南大著名教授周志华写的,因为封面上画满了西瓜被称为西瓜书。他的人工智能实验室非常出名,有考研或者保研的同学可以考虑一下。之前总有朋友和我开玩笑说因为周志华,南大的计算机学院已经快变成人工智能学院了。
周教授盛名在外,写的书质量自然也是不错的。这本书一共440+页,囊括了机器学习十几个算法,不但讲解了算法,对于数据的处理、模型的评估方法以及一些常见的指标也都有覆盖。对于一些术语或者是专业名词,书籍的页脚还提供了注解,书中还提供了详细的插图和公式推导,和统计学习方法这本书一样,干货很满。
说完了优点来聊聊缺点,和《统计》这本书一样,干货太满可能导致不好消化,尤其是初学者。豆瓣上排名第一的评论就指出这本书作为自学入门的书是不合适的,实际上我也不是靠这本书入门的。有网友说这本书是周教授平时授课内容的一个集合版,所以可能要配合授课效果更好,仅仅凭着自己阅读理解上会有些困难。另外,本书当中的一些符号和术语的翻译不够严谨,我一时也想不起来例子了,如果你读过国外英文的材料再来看这本书一定会有这样的感觉。
总结一下,这本书是本好书,但是不太适合初学者自学入门。需要在看书的过程当中查阅很多资料进行查漏补缺。
豆瓣评分:8.6
推荐指数:✩✩✩
第五本 机器学习实战
这本书知名度也不低,我曾经也在知乎上推荐过。关于这本书的质量其实网上存在一定的争议,我个人读过两遍,第一次读的时候是在几年前入门的时候。那时候读的时候惊为天人,因为书里的每一个模型都有详细的代码实现,照着敲一遍就可以在本地跑起来。并且对于一些模型的讲解也算是细致,比如SVM,除了严谨的公式推导之外,还有SMO算法的实现。从这点上来说对于初学者非常友好。
但是今年我第二次读到这本书的时候,一些看法发生了改变,最大的感觉就是这本书里的代码写得实在是太烂了。还不是一点半点烂,是非常烂。总有一些莫名其妙的缩写,一些代码看起来也不够精简,很明显还有更优雅的写法,以及面向对象部分几乎没有,作者是把它当成面向过程写的。另外一个很大的问题是,书中的一些内容有些过时了,关于一些模型的讲解也不够深入,比如决策树,只是浅尝辄止。关于热门的sklearn库的使用也没有提及,读者学完了之后还需要自己去找api。
hhhhh说了这么多,感觉黑比夸多得多。我原本也是不想把这本书放上来的,但是后来看到豆瓣当中关于这本书评论第一条就是:一个合格的读者,应该明白自己需要什么。我想了一下,觉得很有道理,对于头脑清楚,知道自己要什么的读者来说,这本书其实还是很不错的。如果你只是想要速成,走一条捷径,用两三天变成一个“会用”机器学习模型的人,那么它显然不适合你,如果你想要多深入一点,知道这些模型背后的代码实现是怎样的,那么也许你会看得很开心(忽略代码质量的话)。
豆瓣评分:8.1
推荐指数:✩✩✩✩
总结
我们做个简单的总结,上面这五本书,我个人推荐的阅读顺序是scikit-learn和TensorFlow使用指南 -> 机器学习实战 -> Python深度学习 -> 统计学习方法 -> 西瓜书。当然你也可以反过来读,从难到易,体会一把从地狱到天堂的感觉【大雾】。
我个人觉得如果你可以把这几本书啃完,当中的代码亲自动手实验一次,我觉得入门机器学习对你来说一定不是问题。如果你还有更好的书或者是资料,也可以在后台或者是留言当中分享给我。
最后,在公众号后台回复机器学习入门,我把这些书的开源资料分享给你。
如果喜欢本文,可以的话,请点个关注,给我一点鼓励,也方便获取更多文章。