`

交叉验证

 
阅读更多

交叉验证通常把数据分为训练机,验证集和测试集。主要分为以下三种:

 

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贝叶斯分类(2)-10折10次交叉验证.zip_10折10次交叉验证_10折交叉法_10次交叉验证_准确率_贝叶斯分

    在机器学习领域,模型的评估和优化是至关重要的步骤,其中交叉验证是一种广泛应用的方法。本示例中的"matlab贝叶斯分类(2)-10折10次交叉验证"着重探讨了如何在MATLAB环境中利用贝叶斯分类器进行模型训练,并通过10折...

    ARCGIS克里金交叉验证法

    ARCGIS克里金交叉验证法 克里金插值(Kriging)是一种常用的空间插值方法,它可以对空间数据进行估计和预测。ARCGIS克里金交叉验证法是指在ARCGIS平台上使用克里金插值方法,并对其进行交叉验证,以评估模型的准确...

    SVM交叉验证原理

    ### SVM交叉验证原理详解 #### 一、交叉验证概述 交叉验证(Cross Validation)是一种评估统计分析、机器学习算法在独立于训练数据的数据集上的泛化能力的方法,它有助于避免模型过拟合的问题。在机器学习领域,尤其...

    EBS交叉验证规则

    ### EBS交叉验证规则详解 #### 一、交叉验证规则概览 EBS(Enterprise Business Suite)中的**交叉验证规则**是一种重要的数据完整性机制,它主要用于控制特定键弹性域结构内的值组合规则。通过这种机制,系统能够...

    【sklearn非线性回归预测】交叉验证评估与调参

    交叉验证调参与交叉验证评估的区别与使用 什么是交叉验证 交叉验证原理 交叉验证原理与常用方法 scikitlearn交叉验证评估 交叉验证:评估估算器的表现 在交叉验证中数据集一般可以分为训练集和测试集,其中训练集的...

    交叉验证神经网络matlab

    交叉验证是一种评估模型性能的重要方法,特别是在有限的数据集上训练复杂的模型如神经网络时更为关键。在本场景中,我们关注的是使用MATLAB实现交叉验证神经网络的过程。MATLAB是科学计算领域广泛使用的编程环境,它...

    基于决策树的n则交叉验证分类器

    在本主题中,“基于决策树的n则交叉验证分类器”指的是利用决策树算法,并结合交叉验证方法来提高分类器的性能和泛化能力。 交叉验证是一种统计学上的评估方法,用于减少模型的过拟合风险。在n折交叉验证中,原始...

    交叉验证及svr.zip_SVR支持向量机_cross validation_svr交叉验证_交叉验证_交叉验证 回归

    交叉验证和支持向量机(SVR)是机器学习领域中的两个关键概念,它们在构建高效且稳健的预测模型中起着至关重要的作用。本篇将深入探讨这两个主题,并结合实际的代码示例来阐述其应用。 **交叉验证** 交叉验证是一...

    利用Python手动实现十折交叉验证

    交叉验证是一种统计学上评估模型性能的方法,尤其在机器学习领域广泛应用。它的基本思想是将原始数据集划分为k个子集(或称为“折”),每次用k-1个子集的数据训练模型,剩下的一个子集用于测试,这样重复k次,每次...

    学习曲线与交叉验证

    学习曲线和交叉验证是机器学习领域中至关重要的概念,它们对于模型评估和调优具有深远影响。在这篇文章中,我们将深入探讨这两个主题,以及它们如何帮助我们构建更准确、更健壮的预测模型。 首先,让我们理解“学习...

    svm.rar_SVM 交叉_svm_交叉验证_交叉验证SVM_十倍交叉验证

    标题中的"svm.rar_SVM 交叉_svm_交叉验证_交叉验证SVM_十倍交叉验证"暗示了这个压缩包包含的是与SVM相关的交叉验证代码,特别是十倍交叉验证(Cross-Validation)的实现。 交叉验证是一种统计学方法,用于评估模型...

    SVM_svmmatlab_svm参数寻优_SVM参数_交叉验证SVM_交叉验证,SVM

    交叉验证是评估模型性能和参数调优的常用方法,特别是K折交叉验证(K-Fold Cross Validation)。在K折交叉验证中,数据集被分成K个子集,每次将其中一个子集作为测试集,其余K-1个子集作为训练集,重复K次,确保每个...

    10折交叉验证(神经网络).zip_10-折交叉验证_10折 神经网络_十折交叉_十折交叉验证

    matlab进行十折交叉验证神经网络,用于预测

    神经网络.rar_五折交叉验证_交叉验证_神经网络训练

    单隐藏层神经网络,五折交叉验证外加训练集

    多元回归的交叉验证程序 可供做预测模型(matlab代码)

    在这个场景中,我们关注的是在MATLAB环境中实现的交叉验证程序,这在建立预测模型时尤为重要。交叉验证是一种评估模型性能的技术,通过将数据集分成训练集和测试集来减少过拟合的风险,确保模型具有较好的泛化能力。...

    交叉验证MATLAB代码

    用于交叉验证的MATLAB代码,可以很好实现对数据的验证

    十折交叉验证SVM分类器Matlab代码

    在机器学习领域,模型的评估和优化是至关重要的步骤,其中十折交叉验证(Cross-Validation,简称CV)是一种常用且有效的技术。本资源提供的"十折交叉验证SVM分类器Matlab代码"旨在帮助用户理解并应用这种验证方法到...

    交叉验证代码实现

    交叉验证是一种统计学上的评估机器学习模型性能的重要方法,它能有效地避免模型在特定数据集上的过拟合或欠拟合问题。在这个场景中,我们关注的是如何在Python编程环境中,利用SVM(Support Vector Machine,支持...

    波士顿房价预测 交叉验证:寻找最优超参数.rar

    "波士顿房价预测 交叉验证:寻找最优超参数.rar"这个压缩包文件提供了一个实践案例,教你如何在过拟合情况下通过交叉验证来寻找最优的超参数,从而提高模型的泛化能力。以下是关于这一主题的详细讲解: **波士顿...

    PLSI_交叉验证_偏最小二乘_偏最小二乘法_源码

    标题中提到的"PLSI_交叉验证_偏最小二乘_偏最小二乘法_源码"表明,我们将探讨偏最小二乘法的实现,以及如何通过交叉验证来评估和优化模型性能。交叉验证是评估模型泛化能力的关键技术,通过将数据集划分为训练集和...

Global site tag (gtag.js) - Google Analytics