处理决策树中的名义类别特征

数据挖掘 Python scikit-学习 决策树 分类数据 一热编码
2022-03-08 01:20:01

我一直在阅读一些关于如何处理决策树的名义特征(sklearn 实现)的stackoverflow问题。

答案之一指出:

使用 OneHotEncoder 是当前唯一有效的方法,允许任意拆分不依赖于标签排序,但计算量很大。

但是如果我们使用LabelEncoder并使我们的树足够深,它最终会隔离每个类别并且输出保持不变。

那么 OneHotEncoding 的优势是什么?

1个回答

我不会说使用 One-Hot-Encoder 处理标称特征是一种最佳方式。甚至它也可能在性能方面对您的决策树模型产生不利影响。

理论上,决策树不需要对分类特征进行 one-hot-encoding,此外它会增加计算次数并导致模型相对低效。与非树算法(例如回归算法)不同,决策树不会因分类特征的标签编码而产生偏差,因为它使用拆分来达到最佳结果。

实验结果表明,one-hot-encoding 会增加树的稀疏性,这可能会大大降低模型的性能。这里对one-hot-encoding对Tree-based算法的影响进行了精彩的分析和解释。另外,检查这个有用的来源