我在同一个数据集上进行训练和预测,但我想执行 10 倍交叉验证并预测左侧折叠,从而预测整个数据集。我怎样才能做到这一点?
我正在使用的库是:
from sklearn import cross_validation
import xgboost as xgb
我在同一个数据集上进行训练和预测,但我想执行 10 倍交叉验证并预测左侧折叠,从而预测整个数据集。我怎样才能做到这一点?
我正在使用的库是:
from sklearn import cross_validation
import xgboost as xgb
您正在做的是 k 折交叉验证的典型示例。
XGBoost
仅用于提升性能,表示“分布式梯度提升”。
首先,运行交叉验证步骤:
kfld = sklearn.cross_validation.KFold(labels.size, n_folds=10)
然后,使用训练和测试索引kfld
来构建 XGBoost 矩阵并通过遍历它们(索引)来重新缩放权重。
这里给出了一个非常简洁的实现作为 Kaggle 示例。
所以,交叉验证不是用xgboost
包做的,而是用 的cross_validation
模块做的sklearn
,然后对k-fold验证变量结果的索引做梯度提升。
xgboost 带有自己的 cv 方法,请参见此处的示例