问题描述:在对多标签分类预测的任务中,使用XGB进行分类。但在运行“xgb_model = xgb.train(params, dtrain, num_rounds)”时出现了错误。错误代码如下:
28 # 训练XGBoost模型
29 num_rounds = 100
---> 30 xgb_model = xgb.train(params, dtrain, num_rounds) # 【这里出现了错误】
31
32 # 在测试集上评估模型
报错信息:
SoftmaxMultiClassObj: label must be in [0, num_class).
对报错信息进行分析:
通过报错信息发现,由于我是做三分类,习惯上将标签分类“-1,0,1”。所以导致分类标签不符合该函数的规范。该函数需要标签从0开始。
解决方法:
将之前设置的标签”-1,0,1“改成“0,1,2”就能够正常运行这段代码了。