决策树分类器的底层 sklearn“熵”和“log_loss”标准有区别吗?

问题描述 投票:0回答:1

我正在使用 sklearn 实现决策树分类器并测试不同的标准,但我似乎找不到“熵”和“log_loss”标准之间的区别。 sklearn源代码中树文件夹的底层_classes.py将对数损失和熵定义为其分类器标准字典中的相同类型,大概使它们成为相同的操作?

CRITERIA_CLF = {
    "gini": _criterion.Gini,
    "log_loss": _criterion.Entropy,
    "entropy": _criterion.Entropy,
}

根本的区别是什么?似乎运行对数损失和熵在幕后做同样的事情。

python scikit-learn decision-tree
1个回答
0
投票

在决策树和随机森林算法的背景下,

log_loss
entropy
之间没有区别。事实上,这些只是用于指代相同标准的可互换术语。正如 sklearn 文档中提到的这里

测量分割质量的功能。支持的标准是 “gini”代表基尼杂质,“log_loss”和“entropy”both代表 香农信息增益,请参阅数学公式。注:这个 参数是特定于树的。

同时检查 sklearn 文档中提供的数学公式,您可以发现这些术语在这种情况下是可以互换的。在我看来,理论上使用的最佳术语是[香农熵][3]所描述的熵。术语“log_loss”在决策树的背景下似乎有点不合适。另外值得注意的是,在 sklearn 的早期版本中,决策树分割的唯一标准是

entropy
gini
。好像是

[3]: https://www.sciencedirect.com/topics/engineering/shannon-entropy#:~:text=%20Shannon%20entropy%20S%20(%20x,new%20value%20in%20the%20process .

© www.soinside.com 2019 - 2024. All rights reserved.