赞
踩
关键:怎么获得“测试集”(test set) ?
测试集应该与训练集“互斥”
常见方法:
注意:
保持数据分布一致性 (例如: 分层采样)
多次重复划分 (例如: 100次随机划分)
测试集不能太大、不能太小 (例如:1/5~1/3)
cross validation大概的意思是:对于原始数据我们要将其一部分分为traindata,一部分分为test data。train data用于训练,test data用于测试准确率。在test data上测试的结果叫做validation error。将一个算法作用于一个原始数据,我们不可能只做出随机的划分一次train和testdata,然后得到一个validation error,就作为衡量这个算法好坏的标准。因为这样存在偶然性。我们必须多次的随机的划分train data和test data,分别在其上面算出各自的validation error。这样就有一组validationerror,根据这一组validationerror,就可以较好的准确的衡量算法的好坏。crossvalidation是在数据量有限的情况下的非常好的一个evaluate performance的方法。而对原始数据划分出train data和testdata的方法有很多种,这也就造成了cross validation的方法有很多种。
kFold
classsklearn.model_selection.KFold(n_splits=3,shuffle=False, random_state=None)
参数:
n_splits : 默认3,最小为2;K折验证的K值
shuffle : 默认False;shuffle会对数据产生随机搅动(洗牌)
random_state :默认None,随机种子
方法:
get_n_splits([X, y, groups]) Returnsthe number of splitting iterations in the cross-validator
split(X[, y, groups]) Generateindices to split data into training and test set.
>>> import numpy as np
>>>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。