1. 程式人生 > 其它 >使用KFold交叉驗證方法劃分訓練集和驗證集

使用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)