留出法、K折交叉驗證、留一法進行數據集劃分
阿新 • • 發佈:2018-10-08
leave targe lec digits 行數據 import one 訓練 訓練集
from sklearn import datasets
from sklearn import model_selection
#引入sklearn庫中手寫數字的數據集
digits = datasets.load_digits()
#留出法
X_train, X_test, y_train, y_test = model_selection.train_test_split(digits.data, digits.target, test_size = 0.2, shuffle = True)
#K折交叉驗證
#設置K為5
kf = model_selection.KFold(n_splits=5)
#使用5折交叉驗驗證劃分數據集,返回一個生成器對象(即索引)
digits_gen = kf.split(digits.data)
for train_idx, test_idx in digits_gen:
X_train = digits.data[train_idx] #訓練集
X_test = digits.data[test_idx] #測試集
y_train = digits.target[train_idx] #訓練集標簽
y_test = digits.target[test_idx] #測試及標簽
#留一法交叉驗證
loo = model_selection.LeaveOneOut()
digits_gen = loo.split(digits.data)
for train_idx, test_idx in digits_gen:
X_train = digits_gen[train_idx]
X_test = digits_gen[test_idx]
y_train = digits_gen[train_idx]
y_test = digits_gen[test_idx]
留出法、K折交叉驗證、留一法進行數據集劃分