首页 > 其他 > 详细

K 折交叉验证:关于StratifiedKFold 与 KFold 的区别与联系

时间:2019-10-06 22:54:26      阅读:129      评论:0      收藏:0      [点我收藏+]

训练神经网络时的关键一步时要评估模型的泛化能力,一个模型如果性能不好,要么是因为模型过于复杂导致过拟合(高方差),要么是模型过于简单导致导致欠拟合(高偏差)。要解决这一问题,我们就要学会两种交叉验证计数——holdout交叉验证和k折交叉验证, 来评估模型的泛化能力。

计算K折 交叉验证结果的平均值作为参数来评估模型,故而使用k折交叉验证来寻找最优参数要比holdout方法更稳定。一旦我们找到最优参数,要使用这组参数在原始数据集上训练模型作为最终的模型。

1 KFold 

class sklearn.model_selection.KFold(n_splits=’warn’, shuffle=False, random_state=None)

提供 train / test 索引

提供训练/测试索引以将数据拆分为训练/测试集。将数据集拆分为k个连续的折叠(默认情况下不进行混洗)。

 

Provides train/test indices to split data in train/test sets. Split dataset into k consecutive folds (without shuffling by default).

 

然后将每个折叠用作一次验证,而剩余k-1个折叠形成训练集。

 n_splits : int,默认= 3

折数。必须至少为2。

在0.20版本中更改:n_splits v0.22中的默认值将从3更改为5。

随机播放 : 布尔值,可选

在拆分成批次之前是否对数据进行混洗。

random_state : int,RandomState实例或无,可选,默认=无

如果为int,则random_state是随机数生成器使用的种子;否则为false。如果是RandomState实例,则random_state是随机数生成器;如果为None,则随机数生成器是所使用的RandomState实例np.randomshuffle== True时使用。

 

class sklearn.model_selection.StratifiedKFold(n_splits=’warn’, shuffle=False, random_state=None)

 

 

 

 

首先,它们都是应用于K交叉验证的函数。

不同的是,KFold 函数只用于

 

K 折交叉验证:关于StratifiedKFold 与 KFold 的区别与联系

原文:https://www.cnblogs.com/gengyi/p/11628730.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!