交叉验证解读

最开始的理解

之前对在学习《统计学习方法》的时候只看到过交叉验证,大意是使用数据分成不同类进行训练,但是在最近的学习中用到了电力系统中节点的电压幅值数据进行SVM分类,由于样本较少,分类正确率很小,所以开始看Matlab中的Fitcsvm代码进行解读

SVMModel = fitcsvm(X,Y,'Standardize',true,'KernelFunction','RBF',...
    'KernelScale','auto');
    CVSVMModel = crossval(SVMModel);
    classLoss = kfoldLoss(CVSVMModel)

对于上面的代码基础解读就是使用fitcsvm进行训练分类器,crossval就是利用10倍的交叉验证数据验证分类器,kfoldloss就是得到分类器的泛华能力,是一个平均的值。

正确的解读

分类器模型一般在特定的数据上进行训练,因为所得模型可能存在过拟合的现象。所以,模型训练完成以后一般须要进行检验,以验证分类模型在未知数据集上的预测能力,即咱们一般所说的“模型泛化”能力。模型的验证是模型在投入使用前的关键步骤,在此收集了当下比较流行的交叉验证技术资料,整理以下,方便查阅和温习:

 交叉验证(CrossValidation)方法思想简介性能

如下简称交叉验证(Cross Validation)为CV.CV是用来验证分类器的性能一种统计分析方法,基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分作为训练集(train set),另外一部分作为验证集(validationset),首先用训练集对分类器进行训练,在利用验证集来测试训练获得的模型(model),以此来作为评价分类器的性能指标.常见CV的方法以下:

Hold-Out Method测试
将原始数据随机分为两组,一组作为训练集,一组作为验证集,利用训练集训练分类器,而后利spa

用验证集验证模型,记录最后的分类准确率为此Hold-OutMethod下分类器的性能指标.此种io
方法的好处的处理简单,只需随机把原始数据分为两组便可,其实严格意义来讲Hold-Out model
Method并不能算是CV,由于这种方法没有达到交叉的思想,因为是随机的将原始数据分组,所并行以最后验证集分类准确率的高低与原始数据的分组有很大的关系,因此这种方法获得的结果方法其实并不具备说服性

3).Leave-One-Out Cross Validation(记为LOO-CV)

若是设原始数据有N个样本,那么LOO-CV就是N-CV,即每一个样本单独做为验证集,其他的N-1
个样本做为训练集,因此LOO-CV会获得N个模型,用这N个模型最终的验证集的分类准确率
的平均数做为此下LOO-CV分类器的性能指标.相比于前面的K-CV,LOO-CV有两个明显的优势:

a.每一回合中几乎全部的样本皆用于训练模型,所以最接近原始样本的分布,这样评估所得的结果比较可靠。

b.实验过程当中没有随机因素会影响实验数据,确保实验过程是能够被复制的。但LOO-CV的缺点则是计算成本高,由于须要创建的模型数量与原始数据样本数量相同,当原始数据样本数量至关多时,LOO-CV 在实做上便有困难几乎就是不显示,除非每次训练分类器获得模型的速度很快,或是能够用并行化计算减小计算所需的时间

   ## 由此得证,CV的功能和作用只是验证分类器的泛化能力,也就是对全部数据的预测的平均值,用这个指标来来对新的未知测试数据的预测,评估整个模型的预测能力
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值