【发布时间】:2016-03-19 19:40:28
【问题描述】:
使用XGBoost时,我们需要将分类变量转换为数值。
以下方法在性能/评估指标上是否存在差异:
- 虚拟化分类变量
- 对分类变量进行编码,例如(a,b,c) 到 (1,2,3)
还有:
是否有任何理由不使用方法 2,例如使用 labelencoder?
【问题讨论】:
-
“在使用 XGBoost 时,我们需要将分类变量转换为数值。” 并非总是如此。如果
booster=='gbtree'(默认值),那么XGBoost 可以直接处理编码为数字的分类变量,而不需要哑化/one-hotting。而如果标签是字符串(不是整数),那么是的,我们需要对其进行转换。 -
@smci 虽然这是真的,但我相信保留了数字关系。因此,在 1 = 德克萨斯和 2 = 纽约的示例中,纽约会“更大”,这是不正确的。
标签: python categorical-data xgboost