gpt4 book ai didi

python - xgboost 预测方法为所有行返回相同的预测值

转载 作者:行者123 更新时间:2023-11-30 08:28:24 25 4
gpt4 key购买 nike

我用 Python 创建了一个 xgboost 分类器:

train 是一个 pandas 数据框,有 100k 行和 50 个特征作为列。目标是 pandas 系列

xgb_classifier = xgb.XGBClassifier(nthread=-1, max_depth=3, silent=0, 
objective='reg:linear', n_estimators=100)
xgb_classifier = xgb_classifier.fit(train, target)

predictions = xgb_classifier.predict(test)

但是,在训练之后,当我使用这个分类器来预测值时,整个结果数组是相同的数字。知道为什么会发生这种情况吗?

数据澄清:〜50 个具有数字目标的数字特征

我也尝试过RandomForestRegressor来自 sklearn 使用相同的数据,它确实给出了现实的预测。也许 xgboost 实现中存在合法错误?

最佳答案

此问题已收到多个回复,包括此线程以及 herehere .

我在 XGBoost 和 LGBM 上都遇到了类似的问题。对我来说,解决方案是增加训练数据集的大小。

我使用大型稀疏数据集(200,000 行和 7000 列)的随机样本 (~0.5%) 在本地计算机上进行训练,因为我没有足够的本地内存用于该算法。事实证明,对我来说,预测值数组只是目标变量平均值的数组。这对我来说表明该模型可能拟合不足。欠拟合模型的一种解决方案是在更多数据上训练模型,因此我尝试在具有更多内存的机器上进行分析,问题得到了解决:我的预测数组不再是平均目标值的数组。另一方面,问题可能只是因为我正在查看的预测值片段是根据信息很少的训练数据(例如 0 和 nan)预测的。对于信息很少的训练数据,预测目标特征的平均值似乎是合理的。

我遇到的其他建议解决方案都对我没有帮助。总结一些建议的解决方案包括:1)检查gamma是否太高2)确保您的目标标签不包含在您的训练数据集中3)max_深度可能太小。

关于python - xgboost 预测方法为所有行返回相同的预测值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33470477/

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