我现在正在参加比赛。我知道做好这件事是我的工作,但也许有人想在这里讨论我的问题及其解决方案,因为这对他们所在领域的其他人也有帮助。
我已经训练了一个 xgboost 模型(一个基于树的模型和一个线性模型以及两者的集合)。正如这里已经讨论过的,训练集(我在其中进行交叉验证)上的平均绝对误差(MAE)很小(大约 0.3),然后在保留测试集上,误差大约为 2.4。然后比赛开始了,误差在 8 左右(!),令人惊讶的是, 预测总是比真实值高 8-9 !看图中黄色圈出的区域:
我不得不说,训练数据的时期在 15 年 10 月结束,比赛现在开始(16 年 4 月,3 月的测试期约为 2 周)。
今天,我只是从我的预测中减去了 9 的常数值,误差下降到 2,我在排行榜上获得了第 3 名(对于这一天)。;) 这是黄线的右边部分。
所以我想讨论的是:
- xgboost 对在模型方程中添加截距项有何反应?如果系统变化太大(就像我从 10 月 15 日到 4 月 16 日的情况一样),这会导致偏差吗?
- 没有截距的 xgboost 模型对目标值的平行变化是否更稳健?
我将继续减去 9 的偏差,如果有人感兴趣,我可以向您展示结果。在这里获得更多见解会更有趣。