K 折交叉验证(K-flod cross validation)
当样本数据不充足时,为了选择更好的模型,可以采用交叉验证方法。
基本思想:把给定的数据进行划分,将划分得到的数据集组合为训练集与测试集,在此基础上进行反复训练、测试以及模型选择。
最常用的为 K 折交叉验证。
首先随机将给定数据划分为 K 个互不相交、大小相同的自己;每次选择一个子集当作测试集(不能重复),其余 K-1 个子集作为训练集;一共进行 K 次;最后选择这 K 次中平均测试误差最小的模型。
例子
# coding=utf-8
from sklearn import datasets
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import KFold, cross_val_score
import numpy as np
if __name__ ==