机器学习中模型评估方法

交叉验证

什么是交叉验证(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)。

猜你喜欢

转载自blog.csdn.net/nextdoor6/article/details/82793902
今日推荐