随机森林分类器中的 One-hot 编码

Abh*_*sar 3 machine-learning random-forest scikit-learn

python中的随机森林分类器是否需要one-hot编码?我想从逻辑上理解随机森林是否可以使用标签编码而不是单热编码来处理分类特征。

小智 8

编码的概念在机器学习中是必要的,因为在它的帮助下,我们可以将非数字特征转换为任何模型都可以理解的数字特征。

任何类型的编码都可以对任何非数字特征进行,它仅取决于直觉。

现在,回答您的问题何时使用标签编码以及何时使用 One-hot 编码:

  1. 使用标签编码- 当您想要保留特征的序数性质时使用此选项。例如,您有一个教育级别的特征,其中包含“Bachelor”、“Master”、“Ph.D”等字符串值。在这种情况下,您希望保留 Ph.D > Master > Bachelor 的序数性质,因此您将使用标签编码进行映射,例如 - Bachelor-1、Master-2、Ph.D-3。
  2. 使用 One-hot 编码- 当您想要以相同的顺序处理分类变量时,请使用此编码。例如,您有颜色变量,其值为“红色”、“黄色”、“橙色”。现在,在这种情况下,任何值都不优先于其他值,因此您将在此处使用 One hot 编码。

注意:在 One-hot 编码中,您的特征数量将会增加,这对于任何基于树的算法(如决策树、随机森林等)都不利。这就是为什么在这种情况下标签编码是首选,但如果您使用 one-hot编码时,您可以使用 sklearn 中的超参数来检查分类特征的重要性feature_importances_。如果该功能的重要性较低,您可以放弃它。