根据XGBoost文档,不支持分类特征。因此,我正在尝试使用pd.get_dummies()
功能对我的分类标签进行单热编码。但是,当我在下面创建一个DMatrix
对象时,我收到一个错误,指出我在 DMatrix 中的标签不能有多个列
features = pd.get_dummies(df_features)
labels = pd.get_dummies(df_labels)
train_features, test_features, train_labels, test_labels = train_test_split(features, labels,
test_size=0.25,
random_state=42)
dtrain = xgb.DMatrix(train_features,label=train_labels)
错误:
值错误:标签的数据帧不能有多个列
如何解决这个问题?
我也有同样的问题。 我所做的只是
labels = pd.get_dummies(df_labels).values
它将转换为数字数组
array([[1, 0, 0],
[1, 0, 0],
[1, 0, 0]
])