KFold交叉验证实现

实现代码 

import pandas as pd
from sklearn.model_selection import GroupKFold

train = pd.read_csv("../../Data/train.csv")  # (6079, 41)
test = pd.read_csv("../../Data/test.csv")  # (476, 11)


num_folds = 5
gkf = GroupKFold(n_splits=num_folds).split(X=train.question_body, groups=train.question_body)  # train.question_body 用来获取总长度
print(gkf)


for fold, (train_idx, valid_idx) in enumerate(gkf):  # 五折交叉验证
    print("fold:{}, 训练集长度:{}, 验证集长度:{}".format(fold, len(train_idx), len(valid_idx)))

    train_data = train.iloc[train_idx]  # 按照行索引 获取数据
    valid_data = train.iloc[valid_idx]  # 验证集

    print(len(train_data))
    print(len(valid_data))
    assert len(train_data) + len(valid_data) == len(train), ("数据划分不正确!!!",)

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值