这是一本关于Python的图书,采用基于任务的方式来介绍如何在机器学习中使用Python。书中有近200个独立的解决方案(并提供了相关代码,读者可以复制并粘贴这些代码,用在自己的程序中),针对的都是数据科学家或机器学习工程师在构建模型时可能遇到的最常见任务,涵盖最简单的矩阵和向量运算到特征工程以及神经网络的构建。
本书不是机器学习的入门书,适合熟悉机器学习的理论和概念的读者摆在案头作为参考,他们可以借鉴书中的代码,快速解决在机器学习的日常开发中遇到的挑战。
采用基于任务的方式介绍机器学习
涵盖在构建机器学习模型时可能遇到的常见任务
提供近200个小任务的解决方案,以及代码
序
在过去几年中,机器学习已经渗透到企业、非营利组织和政府的日常运作中。随着机器学习热度的增长,在对机器学习从业者的指导方面上,涌现了一批高质量的文献。这类文献培养了整整一代的数据科学家和机器学习工程师。这类文献从提供学习资源的角度来探讨机器学习,为人们讲解机器学习是什么以及它的工作原理。尽管这种方法富有成效,但却遗漏了一部分内容:机器学习日常开发中的细节。这就是笔者写本书的动机——本书不是写给学生读者的学习机器学习理论的大部头,而是写给专业人士的“扳手型”工具书。我希望你把它放在书桌上,把你感兴趣的某些页折起来,在日常开发中需要解决实际问题时就拿过来翻一翻。
更具体地说,本书采用基于任务的方式来介绍机器学习,有近200个独立的解决方案(你可以复制并粘贴这些代码,而它们将正常运行),针对的都是数据科学家或机器学习工程师在构建模型时可能遇到的最常见的任务。
本书的最终目标是成为人们在构建真实的机器学习系统时的参考书。例如,假设你有一个JSON文件,其中包含1000个具有缺失值的分类特征和数值型特征,并且目标向量的分类不均衡,你想得到一个可解释的模型。本书提供的解决方案可以帮助你解决如下问题:
? 加载JSON文件(2.5 节)
? 特征的标准化(4.2 节)
? 对特征字典编码(5.3节)
? 填充缺失的分类值(5.4节)
? 使用主成分进行特征降维(9.1节)
? 使用随机搜索选择最佳模型(12.2节)
? 训练随机森林分类器(14.4节)
? 选择随机森林中的重要特征(14.7节)
目标是让你:
1. 复制/粘贴代码,并确信它能很好地运行在玩具数据集(toy dataset) 上。
2. 阅读每一节后面的讨论以增进对代码背后的理论的理解,并了解哪些参数是需要重点考虑的因素。
3. 对书中的代码进行各种组合与修改,以构建实际的应用。
哪些人适合阅读本书
本书不是机器学习的入门书。如果你对机器学习的基本概念还不太了解,或者从未花时间学习过机器学习,请不要购买本书。本书适合机器学习的实践者阅读,他们熟悉机器学习的理论和概念,可以参考书中的代码快速解决在日常开发中遇到的挑战。
另外,本书假定读者熟悉Python编程语言和包管理。
哪些人不适合阅读本书
如前所述,本书不是机器学习的入门书。因此,它不应该是你的第一本机器学习书。如果你还不熟悉交叉验证、随机森林和梯度下降等概念,那么相比那些专门介绍这些主题的书来说,本书可能不会为你带来收获。建议你先阅读一本入门类机器学习图书,再阅读本书来学习机器学习的实用解决方案。
书中用到的术语
机器学习利用了很多领域的技术,包括计算机科学、统计学和数学。因此,在关于机器学习的讨论中会使用各种各样的术语:
观察值 (observation)
我们观察到的单个单位——例如一个人、一次销售或一条记录。
学习算法(learning algorithm)
用来学习模型的最佳参数的算法——例如线性回归、朴素贝叶斯或决策树。
模型(model)
学习算法的输出。学习算法训练出的模型可以用来做预测。
参数(parameter)
一个模型在训练过程中学习到的权重或系数。
超参数(hyperparameter)
一个学习算法在训练前需要设置的一组参数。
性能(performance)
用来评估模型的指标。
损失(loss)
一个需要在训练中最小化或最大化的指标。
训练(train)
使用类似于梯度下降之类的数学方法将一个学习算法应用到数据上。
拟合(fit)
使用分析方法将一个机器学习算法应用到数据上。
数据(data)
一组观察值。
致谢
没有一些朋友和陌生人的帮助,这本书是不可能完成的。很难列出提供过帮助的所有人的名字,但我想至少提一下这些人:Angela Bassa、Teresa Borcuch、Justin Bozonier、Andre deBruin、Numa Dhamani、Dan Friedman、Joel Grus、Sarah Guido、Bill Kam-bouroglou、Mat Kelcey、Lizzie Kumar、Hilary Parker、Niti Paudyal、Sebastian Raschka和Shreya Shankar。
我欠他们所有人一瓶啤酒,或者五瓶。