为什么在决策树中使用交叉熵而不是 0/1 损失
Why use cross entropy in decision tree rather than 0/1 loss
我知道交叉 entropy/mutual 信息作为损失函数在分类决策中的作用。但我想知道为什么0/1损失不是一个好的选择。
在一般机器学习的背景下,0-1损失很少被使用的主要原因是0-1损失不是凸损失函数,并且在0处不可微。结果是NP-hard 解决一个关于0-1损失的问题。 Here is a source讨论一些直接优化0-1 loss的方法
交叉熵可以理解为以表示相同一般思想的方式放松 0-1 损失(根据预测正确标签的程度将 "success" 归因于候选分类那个例子),但它是凸的。
在您在标题中提到的决策树的特定上下文中,至少有两个与此相关的重要考虑因素。
在原始决策树训练中,用于修改模型参数(决策拆分)的标准是某种分类纯度的度量,例如 information gain or gini impurity, both of which represent something different than standard cross entropy in the setup of a classification problem. You actually can use 0-1 loss for the splitting criterion here, which is also known as using the misclassification rate. Here are some PDF lecture notes 在幻灯片 19 中显示了信息增益和基尼杂质的平滑函数的漂亮图与误分类率的不可微分的尖锐点形成对比。
在梯度提升树中,你再次需要一个可微分的损失函数,这主要是在使用 mean-squared 误差的回归树的上下文中讨论的,通常指的是偏差损失或"exponential" (AdaBoost) 分类损失,但原则上可以以某种自定义方式使用交叉熵。
对于极大地受益于凸函数或至少可微损失函数的问题,例如训练基于神经网络的分类器,使用像交叉熵这样的松弛的好处通常是非常巨大的,而且通常没有太多实用性完全优化 0-1 损失的价值。
对于普通决策树,您可以使用 0-1 损失来计算每个建议拆分的准确性指标,您处理的不是相同的 NP-hard 优化问题,而只是使用0-1 损失作为拆分标准,并且仍然只是搜索 f
-by-d
可能拆分的 f
特征的数量,每个特征具有 d
观察值。
我相信你可以提出一些 hand-wavy 论点,即信息增益或基尼杂质允许对给定特征分割的信息量进行更细微的解释,或者你可以更有可信度地争辩说纯粹优化每次拆分的原始分类精度可能会导致严重的过度拟合,尤其是使用贪婪方法时。
但最后,如果您有理由相信它是解决给定建模问题的一种有价值的方法,那么您没有理由不使用 0-1 损失作为拆分标准正在努力。
我知道交叉 entropy/mutual 信息作为损失函数在分类决策中的作用。但我想知道为什么0/1损失不是一个好的选择。
在一般机器学习的背景下,0-1损失很少被使用的主要原因是0-1损失不是凸损失函数,并且在0处不可微。结果是NP-hard 解决一个关于0-1损失的问题。 Here is a source讨论一些直接优化0-1 loss的方法
交叉熵可以理解为以表示相同一般思想的方式放松 0-1 损失(根据预测正确标签的程度将 "success" 归因于候选分类那个例子),但它是凸的。
在您在标题中提到的决策树的特定上下文中,至少有两个与此相关的重要考虑因素。
在原始决策树训练中,用于修改模型参数(决策拆分)的标准是某种分类纯度的度量,例如 information gain or gini impurity, both of which represent something different than standard cross entropy in the setup of a classification problem. You actually can use 0-1 loss for the splitting criterion here, which is also known as using the misclassification rate. Here are some PDF lecture notes 在幻灯片 19 中显示了信息增益和基尼杂质的平滑函数的漂亮图与误分类率的不可微分的尖锐点形成对比。
在梯度提升树中,你再次需要一个可微分的损失函数,这主要是在使用 mean-squared 误差的回归树的上下文中讨论的,通常指的是偏差损失或"exponential" (AdaBoost) 分类损失,但原则上可以以某种自定义方式使用交叉熵。
对于极大地受益于凸函数或至少可微损失函数的问题,例如训练基于神经网络的分类器,使用像交叉熵这样的松弛的好处通常是非常巨大的,而且通常没有太多实用性完全优化 0-1 损失的价值。
对于普通决策树,您可以使用 0-1 损失来计算每个建议拆分的准确性指标,您处理的不是相同的 NP-hard 优化问题,而只是使用0-1 损失作为拆分标准,并且仍然只是搜索 f
-by-d
可能拆分的 f
特征的数量,每个特征具有 d
观察值。
我相信你可以提出一些 hand-wavy 论点,即信息增益或基尼杂质允许对给定特征分割的信息量进行更细微的解释,或者你可以更有可信度地争辩说纯粹优化每次拆分的原始分类精度可能会导致严重的过度拟合,尤其是使用贪婪方法时。
但最后,如果您有理由相信它是解决给定建模问题的一种有价值的方法,那么您没有理由不使用 0-1 损失作为拆分标准正在努力。