XGBoost:奇特的行为与功能。

时间:2018-06-09 05:41:55

标签: python sql machine-learning xgboost

我有一个管道,可以构建一个XGboost回归模型,并对新数据进行评分。我还处于发达阶段,我注意到了一些奇怪的行为。下面的大纲。

  1. 我使用SQL为2018年之前的数据提取训练数据集
  2. 我在2018年的前几周通过SQL提取测试数据集。
  3. 在python代码中,我有相同的功能列表,其中包含我训练模型的功能。 (现在是奇怪的部分)。
  4. 我删除了测试数据集pull SQL中的一列(这是一个未在功能集中使用的列,因此不需要(它不是目标)。
  5. 这使RMSE增加了约100%。
  6. 我已经完成了相当多的QA。我找不到数据集或代码中的任何错误(SQL / Python)的任何差异。我甚至尝试添加和“ORDER BY RAND()”到SQL无济于事。看起来添加/删除未使用的列会完全改变RMSE。
  7. 最后,我决定将COLUMN留在SQL中,然后将其放在python脚本的最开头。当我放弃它时,RMSE再次上升~100%。 **我假设如果XGBoost以某种方式使用它,当列不在功能列表中时,当我通过数据[功能]时会抛出错误。
  8. 任何想法是怎么回事?

0 个答案:

没有答案