一:交叉验证(crossvalidation)(附实验的三种方法)方法简介
(1) 定义:交叉验证(Cross-validation)主要用于建模应用中,例如PCR(Principal Component Regression) 、PLS(Partial
least squares regression)回归建模中。在给定的建模样本中,拿出大部分样本进行建模型,留小部分样本用刚建立的模型进行预报,并求这小部分样本的预报误差,记录它们的平方加和。这个过程一直进行,直到所有的样本都被预报了一次而且仅被预报一次。把每个样本的预报误差平方加和,称为PRESS(predicted Error Sum of Squares)。【来自wikipidia:https://zh.wikipedia.org/wiki/%E4%BA%A4%E5%8F%89%E9%A9%97%E8%AD%89#K-fold_cross-validation】
(2)分类:
交叉验证一般分为三类:double-fold CV即经常所说的2折交叉;10-fold交叉和LOO(leaveone
out)CV即留一法交叉。
2折:将原始数据集DataSet均分为两份:一份作为训练集,即trainingSet,一份作为测试集,即testingSet,然后用训练集去做训练,用测试集去验证;之后再将训练集作为测试集,测试集作为训练集进行迭代一次,将两次所得的误差经行处理作为总体数据的预测误差。(注:这里强调一点,就是数据集一定要均分为两份,理由是:作为训练集,数据量一定要不小于测试集,所以在迭代的过程中,使得数据不出现错误情况,必须均分。)
K-折:(在这里说下K-折)是在将数据集分成K个子集,K个子集中得一个作为测试集,而其余的K-1个数据集作为训练集,最后对K个数据子集的错误计算均值,K次迭代验证是对监督学习算法的结果进行评估的方法,数据集的划分一般采用等均分或者随机划分。
LOO:这个方法是K折的一种特列,就是把数据分为N份,其实每一份都是一个样本,这样迭代N次,计算最后的误差来作为预测误差。
(3) 度量方法:在以上的交叉验证的最后都提到了数据误差,因为没验证一次都有一次数据误差,经行K折验证,进行迭代K次,这次误差的处理也有不同的方法,也就是度量方法,比如你取平均值ME,或者方差等都是可以的,还有平均标准误差等,都可以作为最后的验证误差。
(4) 下面是3-fold cross validation
二、实验数据处理方法
(1) 验证:是指把数据分为两部分,一部分作为训练集,即trainingSet,一部分为测试集,即testingSet,一般前者占数据的70%,后者占数据的30%,用训练集来进行训练,用测试集来进行检验,将最后的误差作为总体预测误差。
(注:在这里大家要注意与2折交叉验证的区别,主要在数据集的分和检验上)
(2)交叉验证:在这里就不叙述了,就是利用交叉验证的结果即作为参数选择的标准,同时也作为模型择优的标准。
(3) 实验三【来自机器学习导论】这里首先将数据分为两部分,一部分作为训练集,一部分作为测试集,用训练集做交叉验证选择最优参数,用测试集来选择最优模型。当然最后的误差也是有测试集来作为预测误差。
以上是三种实验处理的方法,纠正哪种方法好,都不能做什么评论,只能说适合你的胃口,或者你专业的胃口,或者看客的胃口……