有没有办法在 python 中使用 xgboost 模块执行分层交叉验证?

数据挖掘 Python scikit-学习 xgboost 交叉验证
2021-10-03 15:04:45

我在同一个数据集上进行训练和预测,但我想执行 10 倍交叉验证并预测左侧折叠,从而预测整个数据集。我怎样才能做到这一点?

我正在使用的库是:

from sklearn import cross_validation
import xgboost as xgb
2个回答

您正在做的是 k 折交叉验证的典型示例。

XGBoost 仅用于提升性能,表示“分布式梯度提升”。

首先,运行交叉验证步骤:

kfld = sklearn.cross_validation.KFold(labels.size, n_folds=10)

然后,使用训练和测试索引kfld来构建 XGBoost 矩阵并通过遍历它们(索引)来重新缩放权重。

这里给出了一个非常简洁的实现作为 Kaggle 示例

所以,交叉验证不是用xgboost包做的,而是用 的cross_validation模块做的sklearn,然后对k-fold验证变量结果的索引做梯度提升。

xgboost 带有自己的 cv 方法,请参见此处的示例