交叉验证:
1)简单交叉验证:随机地将已给数据分为两部分,一部分作为训练集,另一部分作为测试集
sklearn.model_selection.train_test_split(*arrays, **options)
2)S折交叉验证:首先随机的将已给数据切分为S个互不相交的大小相同的子集:然后利用S-1个子集的数据训练模型,利用余下的子集测试模型;将这一过程对可能的S种选择重复进行,最后选出S次评测中平均测试误差最小的模型.
class sklearn.model_selection.KFold(n_splits=’warn’, shuffle=False, random_state=None)
3)留一交叉验证:S折交叉验证的特殊情形是S=N,称为留一交叉验证,往往在数据缺乏的情况下使用
网格交叉验证(网格搜索):
sklearn中对GridSearchCV的解释为:Exhaustive search over specified parameter values for an estimator.也就是说,网格交叉验证是对估计器的指定参数值穷举搜索.过给定不同的参数值的组合,验证选择出一组最优的Parameters.
小结:
网格交叉验证用于找到一组最优的参数组合,使得在这组参数下模型效果最好;而交叉验证主要用于模型的效果验证,它是对于数据集的测试集和验证集的选择,也能够有效的防止模型过拟合.所以说,这两者是不同的概念.
网友评论