交叉验证
什么是交叉验证(CV)
交叉验证的基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(validation set or test set),首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型(model),以此来做为评价分类器的性能指标。
交叉验证的分类
1.随机抽样验证(Hold-OutMethod)
将原始数据随机分为两组,一组做为训练集,一组做为验证集,利用训练集训练分类器,然后利用验证集验证模型,记录最后的分类准确率为此Hold-OutMethod下分类器的性能指标.。
2.k折交叉验证(K-fold cross validation)
初始采样分割成K个子样本,一个单独的子样本被保留作为验证模型的数据,其他K-1个样本用来训练。交叉验证重复K次,每个子样本验证一次,平均K次的结果或者使用其它结合方式,最终得到一个单一估测。
3.留一法
假设样本数据集中有N个样本数据。将每个样本单独作为测试集,其余N-1个样本作为训练集,这样得到了N个分类器或模型,用这N个分类器或模型的分类准确率的平均数作为此分类器的性能指标。
方法优缺点对比
随机抽样验证在验证时可能从未做过训练或测试数据,而有些数据多次选为训练或测试数据。
K折交叉验证中每一个样本数据都即被用作训练数据,避免的过度学习和欠学习状态的发生,得到的结果比较具有说服力。十折交叉验证是最常用的。
留一法中每一个分类器或模型都是用几乎所有的样本来训练模型,最接近样本,这样评估所得的结果比较可靠。实验没有随机因素,整个过程是可重复的。但缺点是计算成本高,当N非常大时,计算耗时。
交叉验证目的
交叉验证的目的用于评估模型的性能,得到可靠稳定的模型。
交叉验证实例
https://blog.csdn.net/yueguizhilin/article/details/77711789
模型评估指标(准确率(Accuracy),精确率(Precision),召回率(Recall))
对于数据测试结果有下面4种情况:
TP(True Positive): 预测为正,实际为正
FP(False Positive): 预测为正,实际为负
TN(True Negative):预测为负,实际为负
FN(False Negative): 预测为负,实际为正
评估公式
准确率:Accuracy=(TP+TN)/(TP+TN+FN+FP)
精准率: P = TP/ (TP+FP)
召回率: R = TP/ (TP+FN)
评价分类器性能的指标一般是分类准确率(Accuracy),其定义是:对于给定的测试数据集,分类器正确分类的样本数和总样本数之比。对于二分类问题常见的评价指标是精确率(precision)与召回率(recall)。