《机器学习:软件工程方法与实现》是一本由张春强 / 张和平 / 唐振著作,机械工业出版社出版的平装图书,本书定价:109.00元,页数:430,特精心从网络上整理的一些读者的读后感,希望对大家能有帮助。
《机器学习:软件工程方法与实现》读后感(一):一本受益匪浅的书
总体来说,这本书还是很不错的,本书对机器学习工程方法做了很多总结以及详细讲解,书中观点全面,贴合实战。 以Python为工具,详细阐述机器学习核心概念、原理和实现,并提供了数据分析和处理、特征选择、模型调参和大规模模型上线系统架构等多个高质量源码包和工业应用框架以及提供一键式的数据分析报告,开箱即用,是伸手党非常好的福利。即可作为机器学习入门教程亦可以作为机器学习工程师及专家的参考书籍。
《机器学习:软件工程方法与实现》读后感(二):机器学习工程实践
便捷的指导初学者上手软件工程实践思想、方法、工具和策略应用到机器学习实践中,是一本方便大家上手和入门的好书。
书中内容包含了工程基础、机器学习基础、特征原理与实现、模型原理及设计和调参方法,最后还讲解了模型监控和评估方式和方法。
对于新手从搭建基本的机器学习工程项目,到机器学习的基本建模流程和数据分析方法,再到多种特征向量离散化方法与实现,并且深入分析了线性模型、树模型和集成模型的原理,模型调参等,最后,采用软件工程方法实现模型上线以及效果监控和评估,循序渐进引导读者实践机器学习的工程方法。
《机器学习:软件工程方法与实现》读后感(三):纯阳书评第438期《机器学习软件工程方法与实现》
作为一本机器学习书籍,这本书最大的特点是“脚踩两只船”。如果是谈恋爱的话,对方“脚踩两只船”绝对不是一件好事,但是如果是一本书的话,“脚踩两只船”很可能不是一件坏事。尤其是当作者的“脚踩两只船”是指不走寻常路,别出心裁地从两个甚至多个维度融合的角度阐述一个主题的话,这种“脚踩两只船”往往是一件好事,这种视角往往很独特,很新鲜,可以让读者领略到单一维度无法呈现的景象。
这本书就是如此,脚踩了两只船而且踩得还不错,一是在机器学习类书籍中这么踩得人很少,所以作者只要一踩,就踩出了陌生感,踩出了新鲜感,踩成了特色。二是脚踩两只船着实是个技术活儿,有难度,不好踩,稍有不慎就掉水里了。理论技术与工程实践这两条船也同样不好踩,理论技术与工程实践是两回事,追求的目标和、关注的指标、遵循的原则往往不同,甚至有时候会有很大差异,要把两者有机地融合在一块显然是一件看起来很美,做起来很有挑战的一件事。显然作者驾驭能力很强,理论功底过关,实践经验足够,所以本书在这两条船上踩得比较稳,把握得也很有节奏,一路下来有板有眼,有张有合,直到写完最后一个字,也没有把船踩翻。因为没有踩翻,所以在写作效果上就显得既有理论深度,又有工程思路。
除此以外,这本书另一个值得称道地地方是为机器学习的初学者提供了一份学习路线图。
机器学习作为一门快速发展、不断迭代的技术,既包含理论知识,也涉及到众多领域的实操经验。所以一名新手要想上路必须要过两关。一是过基本的理论知识关,二是能够上手的实操关。
为了帮助新手过第一关,作者从工程实践的视角阐述理论知识,较为全面的呈现了机器学习项目开发的整个链条,以项目需求为起点,详细阐述了样本定义、数据处理、各种模型的建模、模型上线、模型监控、模型重训等领域内容,以帮助读者建立一个较为完整的知识体系,建立一个全景式的理论知识图谱。
为了帮助新手过第二关,作者干了两件意义的事,一是在书中介绍了软件工程开发的基本思想和docker容器等配套技术,这些内容是上手实践机器学习的基础;二是提供并介绍了大量数据分析包、特征离散化包、特征选择包、集成模型框架包、大规模模型上线系统架构和对应代码包。这些技术和资源的介绍不一定足够详实,但是足以给读者指路,如果读者发现自己对相关内容不太熟悉,那么完全可以再去找相关资料去深入学习和研究,确保读者在机器学习上手实践的路上不走冤枉路。
《机器学习:软件工程方法与实现》读后感(四):先放下李航和周志华,从工程上刷新一次机器学习
拿到这本书后,一度很惊讶,终于找到一本在工程上下足了功夫的机器学习书了。大约从2012年开始,国内不断有机器学习、数据挖掘、深度学习等AI领域的书出版,从最早的 ESL 和 PRML,到后来李航老师、周志华老师的著作,以及哈灵顿那本名气很大却很乏味的《机器学习实战》,以及近几年各种把理论部分介绍地一塌糊涂、算法应用全靠玩具数据集堆砌起来的玩具案例、一般至少3个国内作者或印度作者合作写的机器学习书(垃圾),一路下来我们至少有一百多种原创或翻译的中文机器学习图书了。这些书都有一个很让读者痛苦的点:读完了仍然不会用。比如书上常见的MNIST数据集、IRIS数据集,很多书就是在这些入门级数据集上打转,一遍遍让不同算法去fit,指望读者能明白这些算法的理论和应用。
如果不是纯做理论研究的读者,例如在互联网企业做金融建模、用户挖掘、推荐算法等一般性数据挖掘工作的从业者,掌握那些高深的机器学习理论其实是一件性价比很低的事,至少不是优先级最高的事。当务之急,是搞清楚为什么机器学习是一门实践学科,要怎么实践,行业中已经有那些最佳实践了,真实的业务问题怎么转化为需求、需求怎么转化为机器学习任务,选择什么模型,模型到底要怎么部署上线,特征工程到底怎么搞,又出了那些我们还没听说过的处理方法,等等。这些东西都是每一个数据分析师/数据挖掘工程师/机器学习工程师 或者任何吃数据挖掘这碗饭的从业者都要时时关注并解决的问题。
回到这本书,我集中一天把这本书浏览了一遍,有的地方细读,有的地方快速略过,大概说下一些我个人认为挺好的地方。
第1章论述了软件工程在机器学习中的应用,建议大家仔细读读,尤其是数据科学领域,不少人其实不知道软件工程是个啥。第2章讲了很多环境准备方面的事,这部分如果不是纯新手,建议好好看看,工作中参照下自己是怎么做的,如果是纯新手,建议先跳过,就简简单单用 conda 管理你的作业环境,以后熟练了数据科学领域再回头研究工程环境也不迟。第3章介绍了常见的实验数据集和数据生成方法,了解即可。
第二部分讲了机器学习项目的流程和数据处理方法,缺失值、异常值等等。这部分建议好好看看4.1节和4.2节,新手犯错的重灾区,老手也不见得都掌握了。
第三部分是全书就有价值的地方,特征工程是个大活儿,就算是深度学习可以无脑叠网络拟合数据的今天,企业中也还是需要特征工程的,因为仍然有用!除了在其他书中能看到的常见特征工程(第6章),自动衍生特征(第7章)和特征选择(第8章)非常精华,尤其是特征选择这一章介绍地非常全面,都是业界中真实在用的方法,好似带着土腥味那般接地气。
第四部分讲了常见的模型,相信在这行待过一段时间或者看过几本机器学习书的读者对这些算法都不陌生,至少能随口说出好几种算法的名字。但是这些算法的工程细节、使用过程中的细节,调参的细节,性能评估,模型的可解释性,不见得是每个人都说的清楚了。最后模型上线和上线后的监测,不一定适合所有读者(例如数据分析师可能很少需要考虑模型上线,他们一般离线拟合数据、得到洞察、制作PPT进行数据解读就走完作业流程了),但是这是真正意义的闭环了。
这里还想提醒下大家,书中虽然介绍了很多方法,但是有些地方并不很详细,作者也无意于此,大家在读的时候,应该把这本书作为一本比较详细的攻略或地图,按照作者提供的文献或链接,把相关话题琢磨透彻。
最后再啰嗦几句。这本书我打5星,不是说这本书已经牛逼到飞天了,瑕疵必然是有的,局限性必然也是有的。但是这本书好就好在真实,告诉读者一个真实的数据挖掘圈子是怎么做事情的,不再是简单的走马观十大算法,不再是一天练熟 from sklearn import * 。看得出这本书背后有作者从业几年来的困惑、思考、总结。
对于纯新手,或者还没有成功应用机器学习算法解决过真实问题的读者,我想高喊一声:先放下李航和周志华老师的经典著作,不着急推导那些算法背后的数学公式,赶紧去找来这本《机器学习软件工程》,忘掉自己学过的十大算法、二十大算法,也放下所有偏见和傲慢,踏踏实实从第一页开始读,老老实实地 get your hands dirty。
《机器学习:软件工程方法与实现》读后感(五):回答了:机器学习工程师的灵魂问答
第1问:你知道什么是TDD,并用这个思想写过代码给同事用或输出过包/库吗
为什么机器学习的书籍要教你如何写代码? 是因为作者观察到了如下的现象:
书中的第1章《机器学习软件工程方法》教会你如何在机器学习代码编写、机器学习项目实战中更具有软件工程思维。
1.4节就是用TDD的方法手写朴素贝叶斯,完美将机器学习和TDD软件开发方法结合的案例:
第2问:你或你们公司有标准化、定制化、可快速重复使用的机器学习项目工程环境吗
一般的书籍会告诉你如何安装Anaconda等Python环境,但这往往是个人开发环境的初始环节。
相对正规的、具有IT背景的,成熟应用机器学习的企业应该有企业级的开发环境,支持快速复制、更新、发布。
当你只要一键式,就拥有了指定Python版本的、且具有公司公有镜像(包/沉淀的开发模板/经验/流程)的机器学习开发环境,且这样的环境能一键同步到线上环境,是不是更IT化呢?
标准化后还有一些好处,见2.4:
书中的第2章《工程环境准备》教会你如何实现上述的想法,快速定制化企业级的机器学习开发环境。
第3问:(大型)机器学习项目中如何安排和组织成员齐头并进,加速推进项目
有时候我们将机器学习称为数据驱动的学科。直白的,例如,每次数据(特征)处理加工后的变化,都会驱动一次模型的重训。在工作中你是单打独斗还是多人参与构建一个较大型的机器学习项目呢?
如何按机器学习项目开发流程协作,使用并联、串联协作等模式抑或使用传统软件开发中的瀑布模式和增量模式,书中的第1章和第4章一定能给到启迪。
第4问:曾经的入门门槛现在有新的感触吗:机器学习建模时有没有出过数据泄露的笑话,写C语言时内存泄漏的大BUG
笔者第一份工作写C语音时出现过一次内存泄漏,简单的测试看不出来,直到产品灰度测试1个月才发现系统内存每天都在减少,直到爆满。机器学习建模的数据泄露也别有一番风味,你是否发生过这样的笑话:开始建模时,模型好得不得了!模神转世吗。。
第4章《机器学习项目流程与核心概念》会将模神打回原型,一步一个脚印,不是导入开源包就好用的。
第5问:去哪里找数据源做实验或学习?
初学的我,可是遇到了。第3章《实验数据准备》急你所急。
第6问:数据分析听得很多了,有一键输出报告的工具吗
第5章《数据分析与处理》介绍了基础的数据分析和可视化的方法,顺便还把代码给实现了,一套高质量的数据分析工具包,提供全部源码,值得学习,简单一览,实现够简洁吧:
第7问:代码该怎么简洁的写
看过很多网络上、培训里,分箱的代码一坨一坨,甚至一个函数大几百行。好吧,写代码的人应该软件开发的背景不多,原理清楚,但实现就是另外一回事。
请参考第一章的开发方法,实践第6章的《特征离散化方法和实现》和第8章的《特征选择》涉及的工具包。
第8问:模型KS、特征KS、KS检验有关系吗?
笔者初学时懵了!你们在说啥,不是只有模型KS的得分吗?翻了几十本机器学习的书,都是这样介绍KS的啊。我也不清楚机器学习作为统计和计算机等学科的交叉学科时,会有那么多关联或易混淆的概念,为什么没有书籍提及这种关联知识点呢?
笔者喜欢在书中提及关联点,介绍诸如,数据泄露、内存泄漏;采样的Boostrap、Linux开机启动的Boostrap,可都不是Twitter的Boostrap啊等等。
第9问:给你20个特征,你如何快速衍生出可能更有意义的100个新特征
20个不够么?不知道什么是衍生,有什么套路和方法还是开源的特征衍生包呢?见第7章自动特征衍生吧。
第10问:给你1000个特征,你用什么流程、方法或套路,筛选出50个较好的特征
可惜,看了这么多机器学习的书籍,到用就不会了。
第8章的《特征选择》可真真切切的告诉怎么从业务层做特征选择;技术层的特征选择代码封装实现了10+的特征选择方法,选择后的结果融合等,不用白不用!
第11问:奇怪,线性模型为啥能解决非线性问题;评分卡模型做了哪个神操作就变成了加性
这个问题你在学习机器学习时然道没有扪心自问过?那可能是思考的不多哦。
笔者发布在知乎的文章中,阅读和收藏最高的,就属第11章《线性模型》,脉络非常清晰:线性回归-->广义线性模型-->评分卡模型。
脉络不清晰的,没有自问过的赶紧看看。
第12问:数据结构与算法中的树和机器学习中的决策树有关系吗
第一问说了大家学习机器学习的背景多样化,如果有是计算机的童鞋,对计算机中的数据结构或树的数据结构一定在熟悉不过了。当你有这样的背景,再看看第10章的《树模型》一定会顺利的实现技能的迁移。书中前言所诉的读者对象中,就明确提到:具有编程背景的转行程序员和算法工程师(将IT经验更好的应用到机器学习)。
第13问:你能搭积木式的,快速随意组合搭出集成学习算法模型吗
当我告诉你,集成模型就如同小朋友搭积木一样便捷,你会信吗?
OK,如果对Bagging、Boosting、Stacking都很熟悉了,Super Learner是不是要继续学习,直接使用便捷的ML-Ensemble 接口就能实现各种各样模型的堆叠搭建是不是要实验实验。
第14问:你知道模型调参的方向吗,先调偏差还是方差,什么时候该终止呢
几乎没有看到机器学习的书籍教你如何调参,不是说调参很高大上吗,为什么书中都不教大家?
第12《模型调参》调参流程、调参方法、实操和案例俱全(XGBoost为例开发了一套调参工具)。遇到了问题该如何处理,请参考4.1节提供的思路。
对于上面的问题,如果你对奥卡姆剃刀原则开口即来,却不会回答,说明你看的书实践少了些,且自己没有思考过,扪心自问吧。
第15问:分类模型评估指标很常见,你可知回归模型的评估指标AIC/BIC
熟悉了AUC,KS,但相信很多人都没有听说或实践过上述两个指标。第13章《模型性能评估》能告诉你,分类模型的评估、回归模型的评估;单个模型、模型间的选择各个实践操作。
第16问:你分析过模型是如何做决策的吗,你解释过与“人”和“钱”场景无关的模型吗
什么是黑盒模型/白盒模型,你能解释你的模型准或不准的原因吗?
金融行业往往对解释性要求高,因为涉及钱;医疗行业也对解释性要求高,因为涉及命。
推荐、NLP、图像识别等似乎并不在乎模型解释。
第14章《模型解释》详细讲述了模型解释的可视化方法(PDP,ICE)、白盒模型(线性回归、逻辑回归、评分卡为代表)和黑盒模型(集成树模型为代表)的解释原理和方法,并提供实现和实例。目前还没有看到模型解释更为实战的书籍啦!
第17问:你可以快速上线一个模型,为互联网中的人们提供预测接口服务吗
“我做模型管什么上线,自己的事还管不过来了,那是运维的或IT的事”。
那你局限了,也永远无法实现模型的闭环了;对越来越全栈、内卷的行业来说这样的思维可不太好。
工程上的事,窥窥究竟,涨涨视野,请参考第15章《模型上线之模型即服务》提供的系数上线、自动化规则上线、开源格式法(PMML,ONNX)、编译动态库法、原生模型等方法和大规模模型上线的软件工程框架;
书中开发的上线框架基于Docker和RESTful API,一个模型服务就是一个微服务,可支持大规模模型服务。这个框架源码包全部提供。
第18问:你知道什么时候该重训或重建模型
“看领导拍板”,不是吧!
模型当做盒子,盒子的输入和输出稳定吗?
如何量化评估稳不稳定,不稳定时该怎么办。
你到底经历过真实的业务场景没有:上线后出现预测偏差大,紧急需要调整既定的策略。如重新设定阈值、使用其他特征临时代替。请看第16章《模型稳定性监控》
请参考链接:
《机器学习:软件工程方法与实现》(张春强 张和平 唐振)【简介_书评_在线阅读】 - 当当图书product.dangdang.com/29163426.html《机器学习:软件工程方法与实现》(张春强,张和平,唐振)【摘要 书评 试读】- 京东图书item.jd.com/13038672.html
所有源码见GitHub: