在工作和学习的过程中,有两个经常困扰程序员的问题,一个是算法如何设计?另一个是算法如何评估?

算法的设计有简有繁,最简单的时候甚至可以用一些规则来兜底。但是评估方案的设计从来马虎不得,因为任何算法都不可能不经过合理的评估就上线,未经评估就更谈不上为公司创造价值和推动社会发展。

我的第一本算法书与算法图解(算法工程师必读)(1)

更重要的是,作为一个算法工程师,在汇报工作时,评估结果是一定要展示的内容。可以说,算法的评估方案是决定算法能否上线应用的关键因素之一,没有被合理评估过的算法就是空中楼阁,或许好看,但不实用。

今天异步君推荐的这本书《机器学习算法评估实战》,彻底解决了这两个问题。

这本书来自美团高级算法工程宋亚统。他将自己在学习、工作中总结的评估方法分享出来,希望职场新人少走弯路。

我的第一本算法书与算法图解(算法工程师必读)(2)

何为机器学习算法评估?

何以需要算法评估?

过去的十年中,即互联网浪潮的“上半场”中,在人工智能技术和互联网思维的驱动下,做网购的天猫和京东、做餐饮的美团、做打车的滴滴、做租房的自如……

这些互联网公司如雨后春笋般迅猛发展,公司业务几乎涵盖了人们衣食住行的方方面面。其中,机器学习在各公司的业务实践中初露锋芒。从天猫的商品个性化推荐,到百度的语义识别,再到京东的无人配送,机器学习都发挥了不可替代的作用。

机器学习的评估体系也承担了重要的任务,人们通过一些常规的指标,基本能够完成对算法质量的初步判断,从而使算法在应用中达到预期的效果。

我的第一本算法书与算法图解(算法工程师必读)(3)

然而,在互联网浪潮的“下半场”中,竞争逐渐激烈、市场趋于稳定,许多公司已经有了属于自己的一片“领地”。对于大公司,“下半场”更多地意味着“精耕细作”和“国际化”,“精耕细作”指进一步提升效率和降低成本,“国际化”则指将平台和世界接轨,真正将自己的品牌推向世界。

而对于后入场的小公司,则意味着两条发展路线,一条是研发领先于市场的新技术和新产品,做尖端服务,这可能难度较大;另一条就是走精细化路线,专注于某一个垂直领域,也就是大公司的业务涵盖不到的业务场景,提供差异化服务。

由此可见,在“下半场”的竞争中,我们对机器学习算法的研发都需要更加专业化和精细化,机器学习算法的评估更是重中之重!

你知道什么是机器学习算法评估吗?

随着科技的发展和普及,“机器学习”已经不再是一个高冷的技术名词。诸葛越在《百面机器学习》一书中对机器学习的定义是这样的:“机器学习指计算机通过观察环境,与环境交互,在吸取信息中学习、自我更新和进步。”

我的第一本算法书与算法图解(算法工程师必读)(4)

我们可以大致理解为,机器学习就是计算机通过模拟人的学习方法,对一些训练数据进行学习的过程。一旦计算机获得了相应的“知识”,就能够像人一样做出智慧的推导和判断。

而机器学习算法评估就是用科学的指标,对机器学习算法进行完整、可靠的评价,并给出有条理的、可解释的结论的过程。

任何产业都需要一个合理的检测机制来判断这些产品是否合格。算法的评估就是互联网产业的一种检测机制,它告诉开发人员算法的可靠性和合理性等重要信息,作为算法能否上线应用的重要依据。

那么我们为什么需要算法评估呢?

机器学习能在短短数年间广泛普及,与它的智能性、稳定性和可靠性是密不可分的,机器学习算法完善的评估体系正是这些优秀特性的可靠保障。一个优秀的算法在上线之前,一定要经过严密、周全的评估,才能在上线后发挥出令人惊叹的“人工智能之美”,正所谓“宝剑锋从磨砺出,梅花香自苦寒来”。

我的第一本算法书与算法图解(算法工程师必读)(5)

很多从业人员,尤其是职场新人,往往把模型的训练和算法的设计作为最重要的工作,却忽视了算法评估的重要性。然而,在很多领域,评估体系的构建甚至要先于算法设计。

没有可靠的评估体系,算法即便研发出来也不具备上线服务的能力,因为没有人能保证它的可靠性。可以说,没有好的评估体系,就没有算法的广泛普及。

无论是大公司还是小公司,在互联网浪潮的“下半场”的竞争中,对机器学习算法的研发都需要更加专业化和精细化。

我的第一本算法书与算法图解(算法工程师必读)(6)

在机器学习算法评估的问题上,传统领域的很多指标不一定能适应新的领域,因此在新的领域中需要新的评估指标来提供特定业务场景下的个性化服务。

而对于职场上的个体,掌握一套科学高效的评估理论,不仅可以大大提高自己的工作效率,也能更好地向上级领导展示自己的工作成果,在职场发展中取得事半功倍的效果。

亟需算法评估啊!

你真的会评估吗?

评估体系的关键因素又是什么?

算法评估是如此重要,但我想真诚地问你一句:“你真的会评估吗?”

当然,有些从业人员会说,算法的评估不就是看算法的效果和性能吗?这些在刚入门的时候就学过啊。

对此,我只想说算法评估并不是这么简单的一回事。真正地将一个算法用于工业生产并产生巨大的商业价值,只依靠这些书本上学来的“指标”是远远不够的,因为在实际应用过程中,大部分指标只能反映算法的部分效果。如果不能合理地运用评估指标,不仅不能发现算法本身的问题,还可能得出错误的结论。

我的第一本算法书与算法图解(算法工程师必读)(7)

比如,当你在进行异常检测算法的评估时,假设次品出现的概率是0.1%,如果算法把所有样本都预测为正品,准确率虽然也能保证99.9%,但是这样的结果对于异常检测是没有任何意义的,因为这样的算法空有好看的准确率指标,却一个次品都识别不出来。

再比如用于识别财务数据的图像识别系统,即使在1万张发票中只有1张把数字“8”误读为“6”,给使用方造成的损失也很可能是难以弥补的。

这些例子告诉我们,一个好的算法并不能只有一堆漂亮的数字指标,更关键的是它要符合实际的业务场景,能够应对现实环境中各种复杂的情况。

我的第一本算法书与算法图解(算法工程师必读)(8)

因此,我们讲算法的评估,从来不是依靠一个或几个听起来“高大上”的评估指标,而是要依赖一个完整的、可靠的评估体系。一句话总结,即指标不重要,实用才可靠。

制定机器学习算法评估标准可以从以下3个方面入手

(1)根据不同类型的算法制定不同的通用评估标准。比如,对于分类算法和回归算法,需要分别使用一套评估指标进行评估。

(2)对于实现原理不同的算法,需要分别制定评估标准。比如,在评估树模型和深度学习算法解决分类问题的效果时,除了使用分类算法的通用指标,还需要针对每一种算法定义评估指标。

(3)针对不同的业务场景制定评估标准。比如,用深度学习算法进行文本分类和路线排序,这两种业务本质上都是用深度学习算法解决分类问题,但是文本分类业务和路线排序业务的评估指标是有很大区别的。

“车之所以能转千里者,以其要在三寸之辖。”我们都知道抓住关键对整体是有重大意义的,可以说是以一持万。那么评估体系的关键因素又是什么?

我的第一本算法书与算法图解(算法工程师必读)(9)

● 实用性 算法能够上线的最基本条件就是要切合实际业务场景,因此,评估体系首先应该能够解释清楚一个算法是否能够解决实际的业务问题。

● 容错程度 评估体系应该告诉算法设计者,这个算法在什么情况下是一定适用的、不会出错的;在什么情况下不能保证准确性,需要采取其他“兜底”策略来补充。

● 性能 如果说实用性是决定算法是否有研发价值的标杆,那么性能评估则是决定算法是否能落地实施的准绳。无论一个算法的业务效果表现多么出色,如果性能不符合实际生产的需要,那么它也只是纸上谈兵。

● 可解释性 算法设计是一门学科,所有的数据指标都必须具备科学的依据才能成立,得到的评估结论不能轻易被上级领导和客户推翻。

● 表现形式 表现形式是直接决定你的算法评估结果能否被上级领导写入PPT的关键因素之一。评估结果能用图展示就不要用表,能用表展示就不要用文字,毕竟每个人都不愿意花费过多时间在复杂的文字阅读理解上。

这本书教会你什么?

“书籍是前人的经验。”

—拉布雷

《机器学习算法评估实战》便是作者的经验汇成的大成之作。机器学习算法评估就是用科学的指标,对机器学习算法的智能性、稳定性与可靠性进行完整、可靠的评价,并给出有条理的、可解释的结论。

一个优秀的算法在上线之前,一定要经过严密、周全的评估,才能应对现实业务环境的复杂情况,充分发挥令人惊叹的“人工智能之美”。而这本书就不仅仅传授于你机器学习算法相关的理论知识,还教会了你如何正确进行机器学习算法评估。

我的第一本算法书与算法图解(算法工程师必读)(10)

这本书详细介绍机器学习算法评估的理论、方法和实践。全书分为3个部分。

第1部分包含第1章~第3章,针对分类算法、回归算法和聚类算法分别介绍对应的基础理论和评估方法;

第2部分包含第4章~第8章,介绍更复杂的模型(如深度学习模型和集成树模型)的对比与评估,并且针对它们实际应用的业务场景介绍一些特有的评估指标和评估体系;

第3部分包含第9章~第11章,总结算法评估的常用工具、技术及方法论,包括实用的可视化工具介绍,并讨论机器学习算法的本质。

这本书是机器学习和人工智能领域的专业图书,对于具备一定基础算法知识的读者,是一本能够提升实际操作能力和算法理解程度的书;

对于刚入门机器学习和深度学习的读者,本书提供了大量的图片和表格,尽可能用通俗易懂的方式把难以理解的知识点讲解清晰,容易理解和记忆。

因此,读者只要具备机器学习和统计学的基础知识,本书都可以作为其提升专业技能的“不二选择”

本书特色:

● 图文并茂,全彩印刷,完整而系统地介绍机器学习算法评估理论;

● 配套源码,基于业务场景评价算法上线服务的可靠性;

● 利用算法评估工具进行实践,探索机器学习算法本质;

......

求学若渴,好书推荐!

一入机器学习深似海,算法学习深几许?开卷有益,在这里,我还为你精心准备三本宝书,愿你与书同行。

百面机器学习 算法工程师带你去面试》

我的第一本算法书与算法图解(算法工程师必读)(11)

内容简介:

人工智能领域正在以超乎人们想象的速度发展,本书赶在人工智能彻底占领世界之前完成编写,实属万幸。

书中收录了超过100道机器学习算法工程师的面试题目和解答,其中大部分源于Hulu算法研究岗位的真实场景。

本书从日常工作、生活中各种有趣的现象出发,不仅囊括了机器学习的基本知识,而且还包含了成为出众算法工程师的相关技能,更重要的是凝聚了笔者对人工智能领域的一颗热忱之心,旨在培养读者发现问题、解决问题、扩展问题的能力,建立对机器学习的热爱,共绘人工智能世界的宏伟蓝图。

●《机器学习的数学》

我的第一本算法书与算法图解(算法工程师必读)(12)

内容简介:

本书的目标是帮助读者全面、系统地学习机器学习所必须的数学知识。全书由8章组成,力求精准、最小地覆盖机器学习的数学知识。

包括微积分,线性代数与矩阵论,最优化方法,概率论,信息论,随机过程,以及图论。本书从机器学习的角度讲授这些数学知识,对它们在该领域的应用举例说明,使读者对某些抽象的数学知识和理论的实际应用有直观、具体的认识。

本书内容紧凑,结构清晰,深入浅出,讲解详细。可用作计算机、人工智能、电子工程、自动化、数学等相关专业的教材与教学参考书。对人工智能领域的工程技术人员与产品研发人员,本书也有很强的参考价值。对于广大数学与应用的数学爱好者,本书亦为适合自学的读本。

●《人工智能算法(卷3):深度学习和神经网络》

我的第一本算法书与算法图解(算法工程师必读)(13)

内容简介:

自人工智能的早期阶段以来,神经网络就扮演着至关重要的角色。现在,令人兴奋的新技术,例如深度学习和卷积,正在将神经网络带向一个全新的方向。

本书结合各种现实世界任务中的神经网络应用,例如图像识别和数据科学,介绍了当前的神经网络技术,包括ReLU激活、随机梯度下降、交叉熵、正则化、Dropout和可视化。

本书的目标读者是那些对人工智能感兴趣,但苦于没有良好的数学基础的人。读者只需要对大学代数课程有基本了解即可。本书为读者提供配套的示例程序代码,目前已有Java、C#和Python版本。

,