为什么要用交叉验证

用交叉验证改善模型的预测表现 

求解神经网络做十字交叉验证k=10,这种方法到底是得到十个模型还是一个模型。

1、在训练模型时,如果已经预先指定好超参数了,这时候k交叉验证训练出来的模型只是不同数据训练出来的参数不同的相同结构的模型。一些文章中预先指定了超参数,再用k交叉验证只能单单说明在这组超参数下,模型的准确率是这样的,并不能说明当下的这组超参数是比其他的好。2、k交叉验证的用法是分别对自己想要尝试的n组超参数进行k交叉验证训练模型,然后比较n组超参数下用k交叉验证方法得到的n个平均误差,然后选出误差较小的那组超参数。3、在做实验时,比如要比较不同学习算法的效果,要先分别对不同算法用k交叉验证方法确定一组较好的超参数,然后在测试集上比较他们的准确率。

http://www.cnblogs.com/nxld/p/6380128.html

  1. 把整个数据集随机分成 K“层”

  2. 对于每一份来说: 

    1).以该份作为测试集,其余作为训练集; (用其中 K-1 层训练模型,然后用第K层验证)

    2).在训练集上得到模型; 

    3).在测试集上得到生成误差,这样对每一份数据都有一个预测结果;(记录从每个预测结果获得的误差)

  3. 记录下的 k 个误差的平均值,被称为交叉验证误差(cross-validation error)。可以被用做衡量模型表现的标准

  4. 误差最小的那一个模型

为什么要用交叉验证

为什么用交叉验证法?

  1. 交叉验证用于评估模型的预测性能,尤其是训练好的模型在新数据上的表现,可以在一定程度上减小过拟合。
  2. 还可以从有限的数据中获取尽可能多的有效信息。

还有一种比较特殊的交叉验证方式,Bootstrapping: 通过自助采样法,即在含有 m 个样本的数据集中,每次随机挑选一个样本,再放回到数据集中,再随机挑选一个样本,这样有放回地进行抽样 m 次,组成了新的数据集作为训练集。

这里会有重复多次的样本,也会有一次都没有出现的样本,原数据集中大概有 36.8% 的样本不会出现在新组数据集中。

优点是训练集的样本总数和原数据集一样都是 m,并且仍有约 1/3 的数据不被训练而可以作为测试集。 
缺点是这样产生的训练集的数据分布和原数据集的不一样了,会引入估计偏差。 

此种方法不是很常用,除非数据量真的很少。


交叉验证简介

K-CV可以有效的避免过学习以及欠学习状态的发生,最后得到的结果也比较具有说服性。

Cross-validation 的本质是用来估测(estimate)某个 classification method 对一组 dataset 的 generalization error,不是用来设计 classifier 的方法。

只有训练集才可以用在模型的训练过程中,测试集则必须在模型完成之后才被用来评估模型优劣的依据。

斯坦福大学机器学习——交叉验证(Cross Validation)

交叉验证是一种模型选择方法,其将样本的一部分用于训练,另一部分用于验证。因此不仅考虑了训练误差,同时也考虑了泛化误差

猜你喜欢

转载自blog.csdn.net/sinat_27652257/article/details/79735703
今日推荐