我正在使用 XGBoost 构建一个模型,以根据省和地区代码预测冠状病毒感染。数据集:https://www.kaggle.com/sudalairajkumar/covid19-in-italy .
我已经拆分了数据,但是当我尝试设置模型时,出现以下错误:
XGBoostError: [16:16:15] C:/Users/Administrator/workspace/xgboost-
win64_release_1.0.0/src/objective/multiclass_obj.cu:115:
SoftmaxMultiClassObj: label must be in [0, num_class).
代码如下:
train = df[['RegionCode','ProvinceCode']].astype(int)
test = df['TotalPositiveCases'].astype(int)
X_test, X_train, y_test, y_train = train_test_split(train, test,
test_size=0.30, random_state=42)
train = xgb.DMatrix(X_train, label=y_train)
test = xgb.DMatrix(X_test, label=y_test)
param = {
'max_depth':4,
'eta':0.3,
'objective': 'multi:softmax',
'num_class': 3}
epochs = 10
model = xgb.train(param, train, epochs)
模型属性是我得到错误的地方
最佳答案
当目标特征中的标签多于 num_class 参数中提到的标签时,就会出现此错误。
您应该检查您的目标是否具有比您的 num_class 参数更多的功能,或者您可以做的是打印 target.unique(),因为数据中可能有一些空值或 NAN。
关于python - 如何解决 XGBoost SoftmaxMultiClassObj : label must be in [0, num_class) 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60645163/