k折划分数据

采用 K 折交叉验证之前需要先划分好数据,这里记录一下各种 K 折划分数据的方法

0. 示例 csv

构造一个 example.csv 为例,其中 image_name 为特征,patient_id 为分组,target 为标签。

1. KFold

太简单不写了


2. StratifiedKFold

import os
import numpy as np
import pandas as pd
from sklearn.model_selection import StratifiedKFold

k = 3  # 将分为 3 折
df = pd.read_csv('example.csv')
df.insert(len(df.columns), 'StratifiedKFold', np.nan)

skf = StratifiedKFold(n_splits=k, shuffle=True, random_state=2020)
for fold, (train_ids, valid_ids) in enumerate(skf.split(X=np.zeros(len(df)), y=df['target']),
                                              start=1):
    df.loc[valid_ids, 'StratifiedKFold'] = fold
    
# 保存
df.to_csv('example_skf.csv')

# 看看 fold == 1 作为验证集时,训练集和验证集的标签计数
df = pd.read_csv('example_skf.csv', index_col=0)
train_df = df[df['StratifiedKFold'] != 1]
valid_df = df[df['Stratified
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值