机器学习之交叉验证(cross-validation,CV)

机器学习之交叉验证(cross-validation,CV)

人和计算机的主要区别在于人可以对问题进行思考,而计算机只会计算。从AI角度来看,人们将大量无序嘈杂的数据简单清洗之后喂(feed)给计算机,训练使其得出含参数的模型,在模型的基础上,利用数据对模型的参数进行估计,通过参数化后的模型来描述数据的内在关系(pattern),从而以一个科学(maybe哲学~)的角度预测未来。

在对模型的选择上,可用的模型若干,不存在所谓最优解,我们只能认为对于某个确切问题来说,某个模型的解释能力更强。即使对于同一问题而言,在不同的评价标准下,之前最好的模型可能就不再适用。

在选择具有最好的预测能力的模型中,一个评价标准叫做比较各个模型对数据的拟合效果。数据分析最重要的目的就是预测数据,所以在拟合效果(可能over-fitting)和预测误差(要求high-accuracy)两者的权衡之中,需要找到一种平衡,交叉验证就是基于这样的考虑。

下述是几种交叉验证的方法:

1).Hold-Out Method
将原始数据随机分为两组,一组做为训练集,一组做为验证集,利用训练集训练分类器(classifier),然后利用验证集验证模型,记录最后的分类准确率为此Hold-Out Method下分类器的性能指标。
此种方法:
##优点是处理简单,只需随机把原始数据分为两组即可。
##缺点是由于是随机的将原始数据分组,所以最后验证集分类准确率的高低与原始数据的分组有很大的关系,所以这种方法得到的结果其实并不具有说服性。

2).K-fold Cross Validation(记为K-CV)
将原始数据分成K组(一般是均分),将每个子集数据分别做一次验证集,其余的K-1组子集数据作为训练集,这样会得到K个模型,用这K个模型最终的验证集的分类准确率的平均数作为此K-CV下分类器的性能指标。K一般大于等于2,实际操作时一般从3开始取,只有在原始数据集合数据量小的时候才会尝试取2。K-CV可以有效的避免过拟合以及欠拟合状态的发生,最后得到的结果也比较具有说服性。

3).Leave-One-Out Cross Validation(记为LOO-CV)
如果设原始数据有N个样本,那么LOO-CV就是N-CV,即每个样本单独作为验证集,其余的N-1个样本作为训练集,所以LOO-CV会得到N个模型,用这N个模型最终的验证集的分类准确率的平均数作为此下LOO-CV分类器的性能指标。
此种方法:
##优点是每一回合中几乎所有的样本皆用于训练模型,因此最接近原始样本的分布,这样评估所得的结果比较可靠,且由于实验过程中没有随机因素会影响实验数据,确保实验过程是可以被复制的。
##缺点是计算成本高,因为需要建立的模型数量与原始数据样本数量相同,当原始数据样本数量相当多时,LOO-CV在实作上便有困难几乎就是不显示,除非每次训练分类器得到模型的速度很快,或是可以用并行化计算减少计算所需的时间。

你可能感兴趣的:(机器学习,机器学习,算法,统计学)