擅长:python、mysql、java
<p>此问题已收到多个响应,包括此线程以及<a href="https://stackoverflow.com/questions/38054887/xgboost-predictor-in-r-predicts-the-same-value-for-all-rows">here</a>和<a href="https://stackoverflow.com/questions/49824429/xgboost-prediction-always-returning-the-same-value-why">here</a>。</p>
<p>我对XGBoost和LGBM都有类似的问题。对我来说,解决方案是增加训练数据集的大小。</p>
<p>我在一台本地机器上使用一个大型稀疏数据集(200000行和7000列)的随机样本(约0.5%)进行训练,因为我没有足够的本地内存用于该算法。结果对我来说,预测值的数组只是目标变量平均值的数组。这对我来说说明这个模型可能不合适。一个不合适模型的解决方案是在更多的数据上训练模型,所以我尝试在内存更大的机器上进行分析,问题得到了解决:我的预测数组不再是一个平均目标值数组。另一方面,问题可能只是我所看到的预测值片段是从信息很少的训练数据(如0和nan)中预测出来的。对于信息量很小的训练数据,预测目标特征的平均值是合理的。</p>
<p>我遇到的其他建议解决方案对我都没有帮助。总结一些建议的解决方案包括:
1) 检查伽马是否过高
2) 确保目标标签未包含在培训数据集中
3) 最大深度可能太小。</p>