使用KFold交叉验证方法划分训练集和验证集

在进行深度学习时,为了提高精度,或者为了评估我们模型的优劣,以及如何选择一个更好的模型。这样我们就需要用到交叉验证方法。

我们主要实现如何使用KFold划分训练集和验证集

#coding:utf-8
from
sklearn.model_selection import KFold def select_train_val(all_path, seed): kfold = KFold(5, shuffle=True, random_state=seed) splits = list(kfold.split(patients_dir)) train_datasets = [] val_datasets = [] for n in range(0, fold_number): train_idx, val_idx = splits[n] print("first idx of train", train_idx[0]) print("first idx of test", val_idx[0]) train = [patients_dir[i] for i in train_idx] val = [patients_dir[i] for i in val_idx] return train_datasets, val_datasets if __name__ == "__main__": from glob import glob path = r"/home/wpx/BraTS2019/Train/*" all_file = glob(path) # 这是获取到5折对应的训练集和验证集,我们如果只是的用来划分训练集和验证集,我们最终可以随机选择某一折,比如选第一折划分好的训练集和验证集,可以这样操作: #train_data, val_data = train_dataset[1], val_dataset[1] train_dataset, val_dataset = select_train_val(all_file,1234)

 

posted @ 2022-04-19 16:44  九叶草  阅读(466)  评论(0编辑  收藏  举报