使用KFold交叉驗證方法劃分訓練集和驗證集
阿新 • • 發佈:2022-04-19
在進行深度學習時,為了提高精度,或者為了評估我們模型的優劣,以及如何選擇一個更好的模型。這樣我們就需要用到交叉驗證方法。
我們主要實現如何使用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_datasetsif __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)