gpt4 book ai didi

python - XGBoost 回归 - 预测值超出训练范围

转载 作者:行者123 更新时间:2023-12-04 03:38:34 31 4
gpt4 key购买 nike

包含各种特征和回归目标(称为 qval)的数据集用于训练 XGBoost 回归器。该值 qval 介于 0 和 1 之间,应具有以下分布: enter image description here

到目前为止,还不错。但是,当我使用 xgb.save_model() 保存模型并使用 xgb.load_model() 重新加载它以在另一个数据集上预测此 qval 时,预测的 qval 超出 [0,1] 边界,如此处所示。

enter image description here

有人可以解释这是否正常,如果是,为什么会这样?从我的角度来看,可能只是计算 qval 的“方程式”(这里是非常糟糕的词)是在某些数据上训练的,而权重并没有真正考虑到 [0,1] 边界。因此,当将这些“权重”应用于新数据时,结果超出范围。虽然不完全确定。

最佳答案

是的,xgboost 可以在训练标签范围之外进行预测。

from sklearn.datasets import make_classification
from sklearn.ensemble import GradientBoostingRegressor

X, y = make_classification(random_state=42)

gbm = GradientBoostingRegressor(max_depth=1,
n_estimators=10,
learning_rate=1,
random_state=42)
gbm.fit(X,y)
preds = gbm.predict(X)
print(preds.min(), preds.max())
# Output
#-0.010418732339562916 1.134566081403055

这可能意味着您的测试集与训练集不同。

对于随机森林和决策树,这不会发生。

这种现象与增强集成及其工作原理有关。

关于python - XGBoost 回归 - 预测值超出训练范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66475093/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com