我正在使用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。