交叉验证通常把数据分为训练机,验证集和测试集。主要分为以下三种:
1).Hold-Out Method
将原始数据随机分为两组,一组做为训练集,一组做为验证集,利用训练集训练分类器,然后利用验证集验证模型,记录最后的分类准确率为此Hold-OutMethod下分类器的性能指标.此种方法的好处的处理简单,只需随机把原始数据分为两组即可,这种方法没有达到交叉的思想,随机的将原始数据分组,最后验证集分类准确率的高低与原始数据的分 组有很大的关系,所以这种方法得到的结果其实并不具有说服性.
2).K-fold Cross Validation
将原始数据分成K组(一般是均分),将每个子集数据分别做一次验证集,其 余的K-1组子集数据作为训练集,这样会得到K个模型,用这K个模型最终的验证集的分类准确率的平均数作为此K-CV下分类器的性能指标.K一般大于等于2,实际操作时一般从3开始取,只有在原始数据集合数据量小的时候才会尝试取2.K-CV可以有效的避免过学习以及欠学习状态的发生,最后得到的结果也比较具有说服性.
3).Leave-One-Out Cross Validation
如果设原始数据有N个样本,那么LOO-CV就是N-CV,即 每个样本单独作为验证集,其余的N-1个样本作为训 练集,所以LOO-CV会得到N个模型,用这N个模型最终 的验证集的分类准确率的平均数作为此下LOO-CV分类器的性能指标.相比于前面两种有两个明显的优点:
a.每一回合中几乎所有的样本皆用于训练模型,因此最接近原始样本的分布,这样评估所得的结果比较可靠。
b.实验过程中没有随机因素会影响实验数据,确保实验过程是可以被复制的。
缺点则是计算成本高,因为需要建立的模型数量与原始数据样本数量相同,当原始数据样本数量相当时,LOO-CV在实作上便有困难几乎就是不显示,除非每次训练分类器得到模型的速度很快,或是可以用并行化计算减少计算所需的时间.
使用Cross-Validation时常犯的错误
许多研究都有用到evolutionary algorithms(EA)与classifiers,所使用的fitness function中通常都有用到classifier的辨识率,然而把cross-validation用错的案例还不少。前面说过,只有training data才可以用于model的建构,所以只有training data的辨识率才可以用在fitness function中。而EA是训练过程用来调整model最佳参数的方法,所以只有在EA结束演化后,model参数已经固定了,这时候才可以使用test data。
那EA跟cross-validation要如何搭配呢?CV的本质是用来estimate某个classification method对一组dataset的generalization error,不是用来设计classifier的方法,所以cross-validation不能用在EA的fitness function中,因为与fitness function有关的样本都属于training set,那试问哪些样本才是test set呢?如果某个fitness function中用了cross-validation的training或test辨识率,那么这样的实验方法已经不能称为 cross-validation了。
EA与k-CV正确的搭配,是将dataset 分成k等份的subsets后,每次取1份subset作为test set,其余k-1份作为training set,并且将该组training set套用到EA的fitness function计算中(至于该training set如何进一步利用则没有限制)。因此,正确的k-CV 会进行共k次的EA演化,建立k个classifiers。而k-CV的test辨识率,则是k组test sets对应到EA训练所得的k个classifiers辨识率之平均值。
- 大小: 56.2 KB
分享到:
相关推荐
单隐藏层神经网络,五折交叉验证外加训练集
matlab进行十折交叉验证神经网络,用于预测
利用matlab实现贝叶斯分类,采用10折10次交叉验证法选取训练集和测试集,进行循环测试,最后返回准确率为0.9184.另外,文件内含数据源。
对于理解SVM交叉验证很有用,可以明白原理,对近一步理解SVM很有帮助
ARCGIS克里金插值如何使用交叉验证法
用于交叉验证的MATLAB代码,可以很好实现对数据的验证
svm参数中的交叉验证法,并结合网格训练进行。
手动实现交叉验证,代码简洁易懂,可以学到不错的知识
交叉验证及带例子的支持向量机回归代码,修改可用。
EBS交叉验证规则是控制一个特定键弹性域结构内的值组合规则
提供交叉验证神经网络matlab代码,供大家学习。
pls交叉验证,可自行设定K-folder交叉验证
基于决策树的n则交叉验证分类器 based on decision tree cross-validation classifier 文件列表: crossvalidate.m NDT.mat
SVM(支持向量机)参数寻优,用到的方法是交叉验证法。
利用交叉验证方法检验所建立的BP神经网络的分类效果,该程序是基于5折交叉验证对所建立的神经网络进行检验。
svm十倍交叉验证,非常好用,在解决小样本、非线性及高维模式识别中表现出许多特有的优势
传统交叉验证方法面对时序数据表现出较明显的过拟合,而时序交叉验证方法能 够有效防止过拟合。借助时序交叉验证的机器学习选股策略能够获得更高 并且更稳定的收益。推荐投资者在选择机器学习模型超参数时,使用时序...
本项目包含 1.数据处理 2.数据探索性分析 3.网格搜索对决策树、xgboost进行模型参数调优 4.基于五折交叉验证的决策树、xgboost模型预测
采用了十折交叉验证提高了分类的准确性,分类器分类函数可以替换成Linear,quadratic,rbf函数
2.通过一对一方法将45类训练样本((0,1),(0,2),…(1,2)…(2,3))送入交叉验证法,训练算法为smo 3.得出45个模型,测试时在利用投票法判定 数据结构 '''***********************************************************...