使用XGBoost时对二进制功能进行一种热编码

时间:2019-11-27 21:15:30

标签: python machine-learning scikit-learn data-mining data-analysis

我很清楚,将分类特征与基于树的模型(例如随机森林和梯度增强)一起使用时,无需从N级分类特征中删除一个等级。例如,可以将以下具有三个级别的颜色特征变成三个二进制特征。

Color|| Color_R | Color_B | Color_G
____ ||_________|_________|________
 R   ||   1     |   0     |   0
 B   ||   0     |   1     |   0
 G   ||   0     |   0     |   1

但是,二进制功能(例如,TRUE / FALSE,MALE / FEMALE)如何处理?应该将其保留为单个二进制功能(下面的选项I)还是将其一键编码为两个二进制功能(下面的选项II)

选项I

Gender || Gender  | 
____   ||_________|
M      ||   1     | 
F      ||   0     | 
M      ||   1     | 

选项II

Gender || Gender_M | Gender_F 
____   || _________|_________
M      ||    1     |   0     
F      ||    0     |   1     
M      ||    1     |   0  

0 个答案:

没有答案