在skearn0.18版本中存在sklearn.cross_validation.KFold,现在基本被sklearn.model_selection.KFold代替
思路:将训练/测试数据集划分n_splits个互斥子集,每次用其中一个子集当作验证集,剩下的n_splits-1个作为训练集,进行n_splits次训练和测试,得到n_splits个结果
sklearn.model_selection.KFold
, K折交叉验证:kf=sklearn.model_selection.KFold(n_splits=n, shuffle=False, random_state=None)
思路:将训练/测试数据集划分n_splits
- n: 元素个数
- n_splits: 几折
- shuffle: 是否打乱排序
- random_state:如何随机化(默认值None,采用np.random)
- 返回值类型:list
图中便是5折,使用for循环可以输出5次,蓝色的是train,橙色的是test
常常在KFold
的for循环中使用enumerate
函数,便于看清这是第几次for循环
属性:
①get_n_splits(X=None, y=None, groups=None)
:获取参数n_splits的值
②split(X, y=None, groups=None)
:将数据集划分成训练集和测试集,返回索引生成器