XGBoost 提取训练预测

XGBoost extract training predictions

在非常嘈杂的数据集上生成模型时,我需要提取最终 XGBoost 模型对训练集所做的预测。我知道我可以从 xgb.cv 中提取折叠外预测,但我不能用它来预测保留的测试集。

我明白这不是一个常见的用例,但它是必要的,因此找到哪些样本代表训练集中的异常值,以便进一步探索和以后的模型堆叠。

有没有办法显示最终模型对训练集的预测?我会想,因为我可以在每一轮都出错,但我找不到办法。

如果我误解了这个问题,请原谅我,但是 predict() 行不通吗?

model = xgboost(data = data$train, nround = 20,param=param)
training_predictions = predict(model, data$train)

另外,我在一台无法安装 XGB 的机器上,但我很确定模型对象将最终预测作为元素之一。

再想一想,我正在寻找的似乎是随机森林的袋外预测的类比。但是,由于提升树的性质,实际上并没有 "true" OOB 样本,因为任何样本都可能出现在以前的树中。

我认为最接近的方法是使用与训练模型相同的参数和随机种子从 CV XGB 模型中获取预测。