gpt4 book ai didi

python - XGBoost 分类变量 : Dummification vs encoding

转载 作者:IT老高 更新时间:2023-10-28 22:11:43 38 4
gpt4 key购买 nike

在使用XGBoost时,我们需要将分类变量转换为数值。

以下方法在性能/评估指标上是否存在差异:

  1. 虚拟化分类变量
  2. 对您的分类变量进行编码,例如(a,b,c) 到 (1,2,3)

还有:

是否有任何理由不使用方法 2,例如使用 labelencoder

最佳答案

xgboost 只处理数字列。

如果你有一个描述分类变量的特征[a,b,b,c](即没有数字关系)

使用 LabelEncoder你会得到这个:

array([0, 1, 1, 2])

Xgboost 会错误地将此功能解释为具有数字关系! 这只是映射每个字符串 ('a','b','c') 为整数,仅此而已。

正确方法

使用 OneHotEncoder你最终会得到这个:

array([[ 1.,  0.,  0.],
[ 0., 1., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.]])

这是 xgboost 或任何其他机器学习工具的分类变量的正确表示

Pandas get_dummies是创建虚拟变量的好工具(在我看来更容易使用)。

上述问题中的方法 #2 无法正确表示数据

关于python - XGBoost 分类变量 : Dummification vs encoding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34265102/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com