大多数机器学习算法都是黑匣子——你输入数据,内部发生数学运算,然后得出预测。决策树是不同的。它们是为数不多的可以向非技术同事充分解释、在白板上绘制并仍然相信能够做出准确预测的算法之一。
您可能已经玩过 20 个问题:一个人想到一件事,其他人提出是/否问题来缩小范围。 “它是活的吗?比汽车大吗?它住在水里吗?”每个答案都会消除大量的可能性,直到答案变得显而易见。
决策树的工作原理与此完全相同。给定一个要分类的新数据点,树会询问一系列有关其特征的问题,跟随与每个答案匹配的分支,直到到达叶子——最终的预测。
在我们讨论树如何学习之前,让我们先命名各个部分:
单个数据点从根传播到叶子,在每个节点回答一个问题,直到达到预测。
聪明的部分:算法如何决定在每个节点询问“哪个”问题?它会尝试对每个特征进行每一种可能的分割,并选择最能分离数据的特征。
“最佳分离”的两种常见衡量标准:
基尼不纯度衡量一个群体的混合程度。一个完全纯的节点(所有示例都属于一个类)的基尼不纯度为 0。完全混合的节点具有最大的不纯度。该算法更喜欢产生最纯粹的子节点的分割。
信息增益是相似的:它测量分割减少了类标签的不确定性(熵)的程度。更高的信息增益=更好的分裂。
这两种衡量标准都提出了相同的根本问题:在对这个功能进行划分之后,我对这个班级的确定性有多少?
CART 算法(分类和回归树)由 Breiman、Friedman、Olshen 和 Stone 于 1984 年提出,是大多数现代决策树实现的基础。尽管已有 40 年历史,它仍然是使用最广泛的机器学习算法之一。
如果不受约束,决策树将会不断生长,直到每个训练示例都有自己的叶子——在训练数据上实现 100% 的准确率,但在新数据上完全失败。这是过度拟合。
想象一下逐字记住过去的每一个考试问题而不是理解主题。你可能会在过去的试卷中取得好成绩,但在真正的考试中却失败了。
主要补救措施有两个:
预剪枝(提前停止) — 在训练期间设置限制:最大深度、每片叶子的最小样本、最小信息增益阈值。当树达到这些极限时,它就会停止生长。
后修剪 — 生长完整的树,然后修剪不会提高验证集性能的分支。
深度为 1(单个问题)的决策树称为“决策树桩”。这非常简单——几乎肯定是欠拟合。一棵深度为 100、每片叶子一个样本的树是过度拟合的。你会如何决定在哪里停下来?
单个决策树功能强大但脆弱——训练数据的微小变化可能会产生截然不同的决策树。解决方案:种植数百棵树,每棵树都根据数据和特征的随机子集进行训练,然后对它们的预测进行平均。
这是随机森林——所有机器学习中最可靠、最广泛使用的算法之一。您将在后面的课程中深入介绍它。现在,请记住:个体树木是可以解释的,森林是强大的。
|优势 |弱点| |---|---| |完全可解释——可以可视化 |未经修剪容易过度拟合 | |无需标准化或缩放特征 |小数据变化 = 截然不同的树 | |处理数字和分类特征 |偏向于具有更多价值的功能| |无需特征工程即可工作 |不擅长捕捉线性关系 | |快速训练和预测 |单棵树的性能通常不如集成树 |
登录 参与讨论