关于机器学习,让我们一起来思考这些问题:
等等
第一章,作者专注于解决这些问题:
关于这些问题,请您画10分钟时间认真思考下,并且把答案记下来。再继续后面的阅读。
【需要英文电子书籍和配套的EPUB阅读器的朋友,请把这篇文章分享到您的朋友圈,添加我的个人微信:luqin360,截图给我,我会发给您;若是需要一起参与读书和讨论,也请告诉我,我会邀请你入群。】
本章介绍了许多每个数据科学家都应该牢记的基本概念(和术语)。这将是一个高级概述(唯一没有太多代码的章节),所有内容都相当简单,但是在继续本书的其余部分之前,您应该确保所有内容都非常清晰。
Machine Learning is the science (and art) of programming computers so they can learn from data.
机器学习是能够让计算机从数据中学习的计算机编程科学和艺术。
一个宽泛的定义
[Machine Learning is the] field of study that gives computers the ability to learn without being explicitly programmed. ——Arthur Samuel, 1959
一个更以工程为导向的定义
A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.——Tom Mitchell, 1997
举例说明: 垃圾邮件识别系统是一个典型的机器学习系统,请您思考这个系统的T是什么?E是什么?P是什么?机器学习系统的数据如何解决?训练集,验证集,测试集分别用来做什么以及如何划分?
请您举出一个不是机器学习的例子。 例如:如果你只是下载一份维基百科,你的电脑就会有更多的数据,但它不会突然变得更擅长任何任务。因此,它不是机器学习。
因为现实中,很多问题不是人能够明确告诉计算机去学习的,而必须是计算机自己去学习的,这就需要机器学习。机器通过从数据或者经验中学习以达到性能越来越好的结果。
机器学习方法
自适应变化
机器学习帮助人类学习
应用ML技术挖掘大量数据可以帮助发现那些没有立即显现的模式。这叫做数据挖掘。
有监督学习的例子——分类任务
有监督学习的例子——回归任务
无监督学习的例子——聚类任务
无监督学习的例子——降维任务
无监督学习例子——奇异值检测任务
增强学习例子
简而言之,由于您的主要任务是选择一个学习算法并在一些数据上训练它,因此可能出错的两件事是“不好的数据”和“不好的算法”。
先看下“不好的数据”
大多数机器学习算法需要大量的数据才能正常工作。即使对于非常简单的问题,您通常也需要数千个示例,对于复杂的问题,例如图像或语音识别,您可能需要数百万个示例(除非您可以重用现有模型的某些部分)。
为了很好地泛化,重要的是您的训练数据集要能够代表您想要泛化的新的实例。无论您使用基于实例的学习还是基于模型的学习,这都是正确的。
显然,如果您的训练数据充满了错误、异常值和噪声(例如,由于测量质量很差),那么系统将更难检测底层模式,因此您的系统不太可能执行得很好。花时间清洗训练数据集通常是非常值得的。事实上,大多数数据科学家在这方面花费了大量的时间。
俗话说:垃圾进垃圾出。只有当训练数据包含足够的相关特性而不是太多不相关的特性时,您的系统才能够学习。机器学习项目成功的一个关键部分是提供一组良好的特征来进行训练。
过拟合问题的有效解决方案: 1)通过选择参数较少的模型(如线性模型而不是高次多项式模型)、减少训练数据中的特征数量或约束模型来简化模型 2)收集更多的培训数据 3)减少训练数据中的噪声(例如,修正数据错误,去除异常值)
正如您可能猜到的,欠拟合与过度拟合是相反的:当您的模型过于简单,无法了解数据的底层结构时,就会发生欠拟合。
欠拟合问题的有效解决方案: 1)选择具有更多参数的更强大的模型 2)为学习算法提供更好的特征(特征工程) 3)减少模型上的约束(例如,减少正则化超参数)