我知道交叉熵/互信息作为分类决策中的损失函数是如何工作的。但我想知道为什么0/1损失不是一个好的选择。
回答:
在一般机器学习的背景下,0-1损失很少被使用的主要原因是0-1损失不是一个凸损失函数,并且在0处不可微分。事实证明,针对0-1损失精确解决问题是NP-hard的。这里有一篇来源讨论了直接优化0-1损失的一些方法。
交叉熵可以被理解为0-1损失的一种放松,它以一种代表相同一般概念的方式(根据候选分类在多大程度上预测该例子的正确标签来归因“成功”),但它是凸的。
在你标题中提到的决策树的具体背景下,至少有两个与此相关的重要考虑因素。
-
在普通决策树训练中,用于修改模型参数(决策分裂)的标准是某种分类纯度的度量,如信息增益或基尼不纯度,这两者在分类问题的设置中代表了与标准交叉熵不同的东西。实际上,你可以在这里使用0-1损失作为分裂标准,这也被称为使用误分类率。这里有一些PDF讲义,在第19页上,他们展示了信息增益和基尼不纯度的平滑函数图,与误分类率的不可微分的尖点形成对比。
-
在梯度提升树中,你再次需要一个可微的损失函数,这通常在回归树的背景下讨论使用均方误差,并且通常指的是分类中的偏差损失或“指数”(AdaBoost)损失,但原则上可以以某种定制的方式使用交叉熵。
对于那些极大受益于凸或至少可微损失函数的问题,例如训练基于神经网络的分类器,使用像交叉熵这样的放松方法的好处通常是巨大的,并且在完全优化0-1损失方面通常没有多少实际价值。
对于普通决策树,你可以在每个建议的分裂处使用0-1损失来计算准确性指标,你不是在处理同样的NP-hard优化问题,而是仅仅使用0-1损失作为分裂标准,并且仍然只是在f
-by-d
的可能分裂中搜索,其中f
个特征各有d
个观测值。
我相信你可以提出一些似是而非的论点,说信息增益或基尼不纯度允许对给定特征分裂的有用性进行更细致的解释,或者更有说服力地,你可以争辩说在每个分裂处纯粹优化原始分类准确性可能导致严重的过拟合,特别是使用贪婪方法时。
但最终,如果你有理由相信在你正在处理的特定建模问题中使用0-1损失作为分裂标准是一种有价值的方式,那么并没有硬性规定你不能这样做。