我对xgboost回归器预测的分数似乎不一致感到困惑。
我在三样本训练集上训练模型:
X = [[1 2],
[1 2],
[2 2]]
y = [5, 5, 8]
...使用此代码:
reg = XGBRegressor(n_estimators=2,max_depth=2,learning_rate=1.0, silent=False,objective=‘reg:linear’)
reg.fit(X,y)
plot_tree(reg, num_trees=0)
...根据此图,这给了我两棵树:plot of two trees
但是当我对测试样本X_test = [1,2]
进行预测时,我感到困惑,因为:
X_test = [1,2]
reg.predict(X_test)
# print score = 4.875
但是具有上面绘制的树木结构的分数应为:0.25 + 4.125 = 4.375
为什么?我的操作有什么问题吗?
解决方案:使用参数XGBRegressor
声明您的base_score=0