本文翻译自 A Visual Introduction to Machine Learning,原载于 Hacker News。
在机器学习(Machine Learning)领域,计算机运用统计学习(Statistical Learning)技术自动识别数据中的模式。这些技术可以用来做出高度准确的预测。
让我们通过一个关于房屋的数据集,来创建一个机器学习模型,用于区分纽约和旧金山的房子。
首先,建立直觉
假设你需要判断一栋房子是在旧金山还是纽约。用机器学习的术语来说,这种对数据点进行分类的任务叫做分类(Classification)。
由于旧金山相对多山,房屋的海拔高度可能是区分这两个城市的好方法。
根据房屋海拔数据,你可以认为海拔高于 240 英尺的房子应该被归类为旧金山的房子。
增加维度,提升精度
添加另一个维度(Dimension)可以让分类更加精细。例如,纽约公寓的每平方英尺价格可能非常昂贵。
因此,将海拔和每平方英尺价格放在散点图(Scatterplot)中一起可视化,可以帮助我们更好地区分低海拔的房屋。
数据表明,在海拔 240 英尺或以下的房屋中,每平方英尺价格超过 1776 美元的通常在纽约市。
数据集中的维度被称为特征(Features)、预测变量(Predictors)或变量(Variables)。
绘制边界
你可以将海拔(>242 英尺)和每平方英尺价格(>$1776)的观察结果可视化为散点图中区域的边界。绘制在绿色区域的房子属于旧金山,蓝色区域的则属于纽约。
使用数学方法识别数据中的边界,是统计学习的精髓。
当然,你还需要更多信息来区分那些海拔较低且每平方英尺价格也较低的房子。
多维度数据
我们用来创建模型的数据集有 7 个不同的维度。创建模型也被称为训练(Training)模型。
在散点图矩阵中可视化这些变量,可以展示每对维度之间的关系。
数据中明显存在一些模式,但勾勒出它们的边界并不明显。
机器学习登场
寻找数据中的模式正是机器学习的用武之地。机器学习方法使用统计学习来识别边界。
决策树(Decision Tree)就是机器学习方法的一个例子。决策树每次只观察一个变量,是一种相对容易理解(虽然较为基础)的机器学习方法。
寻找更好的边界
让我们重新审视之前提出的 240 英尺海拔边界,看看如何改进我们的直觉。
显然,这需要一个不同的视角。
通过将可视化转换为直方图(Histogram),我们可以更清楚地看到每个海拔高度的房屋出现频率。
虽然纽约最高的房子大约在 240 英尺,但绝大多数房屋的海拔似乎要低得多。
你的第一个分支
决策树使用 if-then 语句来定义数据中的模式。
例如,如果房子的海拔高于某个数值,那么这栋房子可能在旧金山。
在机器学习中,这些语句被称为分支(Forks),它们根据某个值将数据分成两个分支(Branches)。
分支之间的那个值叫做分裂点(Split Point)。分裂点左侧的房子以一种方式分类,右侧的则以另一种方式分类。分裂点是决策树版本的边界。
权衡取舍
选择分裂点需要权衡。我们最初的分裂点(~240 英尺)错误地将一些旧金山房子归类为纽约房子。
看看左边饼图中那大块的绿色,那些都是被错误分类的旧金山房子。这些被称为假阴性(False Negatives)。
然而,一个旨在捕获所有旧金山房子的分裂点也会包含许多纽约房子。这些被称为假阳性(False Positives)。
最佳分裂
在最佳分裂点,每个分支的结果应该尽可能同质(或纯净)。有几种数学方法可以选择来计算最佳分裂。
正如我们在这里看到的,即使单个特征上的最佳分裂也无法完全将旧金山房子与纽约房子分开。
递归
要添加另一个分裂点,算法会在数据子集上重复上述过程。这种重复叫做递归(Recursion),这是训练模型中经常出现的一个概念。
左侧的直方图显示了每个子集的分布,对每个变量重复显示。
最佳分裂会根据你观察的是树的哪个分支而有所不同。
对于低海拔房屋,每平方英尺价格(在 X 美元/平方英尺处)是下一个 if-then 语句的最佳变量。对于高海拔房屋,则是价格(在 Y 美元处)。
生成一棵树
添加更多分支会增加新信息,从而提高树的预测准确率。
再往下一层分裂,树的准确率提高到 84%。
再添加几层,我们达到 96%。
你甚至可以继续添加分支,直到树的预测 100% 准确,这样在每个分支的末端,房子要么纯粹在旧金山,要么纯粹在纽约。
这些树的最终分支被称为叶节点(Leaf Nodes)。我们的决策树模型会根据哪个类别的房子占多数来对每个叶节点中的房子进行分类。
进行预测
新训练的决策树模型通过让每个数据点流经各个分支,来确定房子是在旧金山还是纽约。
这里你可以看到用于训练树的数据流经这棵树。
这些数据被称为训练数据(Training Data),因为它们被用来训练模型。
因为我们让树生长直到 100% 准确,这棵树完美地将每个训练数据点映射到它所在的城市。
现实检验
当然,更重要的是树在从未见过的数据上的表现。
要测试树在新数据上的表现,我们需要将其应用于从未见过的数据点。这些之前未使用过的数据被称为测试数据(Test Data)。
理想情况下,树在已知和未知数据上的表现应该相似。
所以这棵树不太理想。
过拟合
这些错误是由于过拟合(Overfitting)造成的。我们的模型学会了将训练数据中的每个细节都视为重要,即使是那些结果无关紧要的细节。
过拟合是机器学习中的一个基本概念,我们将在下一篇文章中解释。
总结
- 机器学习通过统计学习和计算机识别数据集中的边界来发现模式。你可以用它来进行预测。
- 决策树是一种进行预测的方法,它使用一系列 if-then 语句来识别边界并定义数据中的模式。
- 过拟合发生在某些边界基于不重要的区别时。你可以通过让测试数据流经模型来检查模型是否过拟合。
敬请期待
在下一篇文章中,我们将探讨过拟合,以及它与机器学习中的一个基本权衡的关系。
译者注:这篇文章来自 R2D3 项目,由两位数据科学家 Tony Chu 和 Stephanie Yee 创建。它的独特之处在于通过精美的滚动动画来解释复杂的数据科学概念。强烈建议访问原文体验完整的交互式可视化效果,这会让你对机器学习有更直观的理解。决策树虽然基础,但它是理解更复杂算法(如随机森林、梯度提升树)的重要基石。理解过拟合的概念对于任何机器学习从业者来说都是至关重要的——在模型复杂度和泛化能力之间找到平衡点,是机器学习的核心挑战之一。