K折交叉验证实现
StratifiedKFold用法类似Kfold,但是他是分层采样,确保训练集,测试集中各类别样本的比例与原始数据集中相同。
from sklearn.model_selection import StratifiedKFold
kf = StratifiedKFold(n_splits=3, shuffle=True, random_state=2019)# 3折交叉
purchase_result=0 #最终结果
for train_index, test_index in kf.split(data,lable_purchase):
#data为训练集,lable_purchase是lable
X_train_p, y_train_p = data.iloc[train_index], lable_purchase.iloc[train_index]
X_valid_p, y_valid_p = data.iloc[test_index], lable_purchase.iloc[test_index]
purchase_result +=xgb_model(X_train_p, X_valid_p, y_train_p, y_valid_p, test)/3.0
print(purchase_result)
来源:https://blog.csdn.net/weixin_39003567/article/details/99460150