我正在尝试学习XGBoost的基础知识,并设计了一个脚本,该脚本将我在Kaggle上发现的有关中国的Corona病毒爆发的一些数据分开。代码和模型可以正常工作,但是当我使用模型进行新的预测时,由于某些原因,我收到了“ ValueError:feature_names不匹配”。就像测试数据一样,新的测试数据具有一个带有2个值的2维数组,但是我仍然遇到值错误。
train = df[['RegionCode','ProvinceCode']].astype(int)
test = df['infected'].astype(int)
X_test, X_train, y_test, y_train = train_test_split(train, test, test_size=0.2, 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,
'num_class': 2}
epochs = 10
model = xgb.train(param, train, epochs)
上面的所有代码都可以,但是下面的错误给了我错误:
testArray=np.array([[13, 67]])
test_individual = xgb.DMatrix(testArray)
print(model.predict(test_individual))
知道我在做什么错吗?
似乎您在使用sklearn的train_test_split函数的基础知识上有所遗漏。
X_test, X_train, y_test, y_train = train_test_split(train, test, test_size=0.2, random_state=42)
上面的行期望train具有要用于训练的所有功能,而test期望具有目标功能。
尝试先修复它。