K折交叉验证:sklearn.model_selection.KFold(n_splits=n, shuffle=False, random_state=None)
思路:将训练/测试数据集划分为n个互斥子集,每次用其中一个子集当作验证集,剩下的n-1个作为训练集,进行n次训练和测试,得到n个结果
注:对于不能均等份的数据集,其前n_samples % n子集拥有int(n_samples / n)+ 1个样本,其余子集都只有int(n_samples / n)样本
参数说明:
n_splits:表示划分几等份
shuffle:在每次划分时,是否进行洗牌(默认为False)
①若为Falses时,其效果等同于random_state等于整数,每次划分的结果相同
②若为True时,每次划分的结果都不一样,表示经过洗牌,随机取样的
random_state:随机种子数
属性:
①get_n_splits(X=None, y=None, groups=None):获取参数n_splits的值
②split(X, y=None, groups=None):将数据集划分成训练集和测试集,返回索引生成器
实例:
①设置shuffle=False,运行两次结果相同
from sklearn.model_selection import KFold
import numpy as np