我正在使用 OneHotEncoder 来编码一些分类变量(例如 - 性别和年龄组)。编码器生成的特征名称类似于 - ‘x0_female’、’x0_male’、’x1_0.0’、’x1_15.0’ 等。
>>> train_X = pd.DataFrame({'Sex':['male', 'female']*3, 'AgeGroup':[0,15,30,45,60,75]})
>>> from sklearn.preprocessing import OneHotEncoder
>>> encoder = OneHotEncoder()
>>> train_X_encoded = encoder.fit_transform(train_X[['Sex', 'AgeGroup']])
>>> encoder.get_feature_names()
>>> array(['x0_female', 'x0_male', 'x1_0.0', 'x1_15.0', 'x1_30.0', 'x1_45.0',
'x1_60.0', 'x1_75.0'], dtype=object)
有没有办法告诉 OneHotEncoder
以在开头添加列名的方式创建特征名称,例如-Sex_female,AgeGroup_15.0等,类似于Pandas get_dummies()
确实如此。
原文由 Supratim Haldar 发布,翻译遵循 CC BY-SA 4.0 许可协议
可以将具有原始列名的列表传递给
get_feature_names
。get_feature_names
在 1.0 中已弃用,将在 1.2 中删除。请改用get_feature_names_out
。sklearn.preprocessing.OneHotEncoder
。