当前位置:   article > 正文

机器学习笔记(三)模型的评估和选择_机器学习 --- 模型评估、选择与验证 头歌

机器学习 --- 模型评估、选择与验证 头歌

一、 什么是好的模型

机器学习通常从以下去定义模型的优劣

  1. 准确
  2. 可解释
  3. 效率
  4. 可扩展

从图中我们可以更加清晰的了解什么是好的模型
在这里插入图片描述

二、 过拟合与欠拟合

  1. 所谓过拟合,简单的说就是我们设计的学习模型对训练样本的学习能力太强大了,导致对训练样本拟合的太好,但是应用到不同的未知数据却不适合,甚至表现很糟糕。即在训练样本中表现过于优秀,缺乏了模型应用的泛化能力。
  2. 而欠拟合,就是模型无法捕捉到数据中的重要差异和模式,即使在训练数据中也表现不佳时,称为欠拟合。通常是由于模型使用过于简单,不适合于数据体现出来的特征造成的。

在这里插入图片描述

三、 如何评估模型的泛化能力

1. 什么是泛化能力

泛化能力是指:机器学习算法对新鲜样本的适应能力。学习的目的是学到隐含在数据背后的规律,对具有同一规律的学习集以外的数据,经过训练的网络也能给出合适的输出,该能力称为泛化能力。

2. 如何评定模型的泛化能力?

  1. 使用泛化误差本身。这是很自然的想法,训练模型的最终目的就是希望模型的泛化误差最低,当然可以使用泛化误差本身。如果泛化误差小的话还可以接受,但是通常情况下没有那么幸运,泛化误差可能很大,这个时候肯定需要将部署的模型撤回,重新训练,当然可能需要部署和训练之间往复很多次,这种方式虽然能够更好的选择模型,但是成本和效率非常的差;
  2. 使用模型在数据集上训练的拟合程度来作为评估模型的方式。但是往往获取的数据集并不是完全的干净以及有代表性,通常获取到的数据集可能很少、数据的代表性不够、包含太多的噪声或者是被一些无关特征污染,获取到的数据集或多或少都会有这些问题,那么模型对训练数据集的拟合程度不能指导泛化误差,也就是说训练的时候拟合的好并不代表模型的泛化误差就小,你甚至可以将模型在数据集上的误差减小到0,但是因为对模型训练时候的数据集往往不干净,所以这样的模型并不代表泛化能力就强。
  3. 要评估模型,以估计其泛化的质量,唯一的方法就是在新的测试集上判断模型对新样本的判别能力。在执行(有监督的)机器学习实验时,将可用数据的一部分作为训练集,一部分作为测试集,训练使用训练集创建模型,然后使用测试集进行测试。测试集的错误率称为泛化错误,通过在测试集上评估模型,您可以得到此错误的估计。通常来说,我们的测试集应该和训练集互斥,积测试集的样本尽量不出现在训练集中。

在这里插入图片描述

四、 数据集的划分(评估方法(获得测试结果))

下面介绍如何划分训练数据与测试数据。

1. 留出法

留出法直接将数据集D划分为两个互斥的集合,其中一个作为训练集S,另一个作为测试集T。在训练集训练模型,利用测试集测试误差。D=S∪T,S∩T=null。
注意:训练/测试集的划分应尽量保持数据分布的一致性,避免因为数据划分过程引入额外的偏差而对最终结果产生影响
在这里插入图片描述
留出法的不足:留出法得到的结果往往不够稳定可靠,所获得的的结果极大程度的依赖训练集与测试集的划分方法。
在这里插入图片描述
从图中我们可以直观的看出训练集测试集不同的划分方法所得到的MSE(均方误差)的不同。

通常我们也将数据集划分为三个集合,即训练集、验证集和测试集。在训练集上训练模型,在验证集上评估模型,一旦找到的最佳的参数,就在测试集上最后测试一次,测试集上的误差作为泛化误差的近似。
在这里插入图片描述

2. 交叉验证法

交叉验证一般采用k折交叉验证,先将数据及划分为K个互斥子集(即每个子集Di都尽可能保持数据分布的一致性,即从总体数据D中通过分层采样得到),每次使用k-1个子集的并集作为训练集,余下的那作为测试集;这样就可以进行k次训练和测试,最终返回的是这k个测试结果的均值。
在这里插入图片描述
简单的说就是我们将整个数据集分成了K份,每次选取其中一份作为测试集,k-1份作为训练集,得到一个结果,经过K次循环,取得K个结果,取均值
在这里插入图片描述

留一法

留一交叉验证是将K次交叉验证带到其逻辑极限,K等于N(样本数量)

留一法就是每次只留下一个样本做测试集,其它样本做训练集,如果有k个样本,则需要训练k次,测试k次。留一发计算最繁琐,但样本利用率最高。适合于小样本的情况。

3. 自助法

“自助法”每次随机从m个样本的数据集D中挑选一个样本,将其拷贝放入D1,然后再将样本放回初始数据集D中,使得该样本在下次采样时仍有可能被采到;这个过程重复执行m次后,我们就得到了包含m样本的数据集D1。
假设D={1,5,2,3} m=4
D‘ 长度也应该等于4 ,所以抽4次
第一次抽到了2,然后吧放回去 D’ = {2}
第二次抽到了2,然后把2放回去 D‘ = {2,2}
第三次抽到了2,然后把2放回去 D‘ = {2,2,2}
第四次抽到了3,然后把3放回去 D‘ = {2,2,2,3}
其中{1,5}没有被抽到,将其作为测试集。
根据概率,未取到的数据占比约为36.8%:
在这里插入图片描述
自助采样,初始数据集D中约有36.8%的样本未出现在D1中,将D1作为训练集,D-D1作为测试集。
在这里插入图片描述

五、 如何评估模型的性能

⚫ 不同的模型通常有不同的评估方式和评估度量。

分类模型回归模型
准确率(Accuracy)平均绝对误差(MAE)
查准率(Precision)均方误差(MSE)
查全率(Recall)均方根误差(RMSE)
F度量MAPE(平均绝对百分比误差)
ROCR方
AUC
Log Loss

(一)分类模型性能评估

1.准确率:对于给定的测试数据集,模型正确分类的样本数和总样本数之比

对于分布不均衡的数据而言,准确率并不是一个很好的度量
比如:在这里插入图片描述

2.混淆矩阵(仅考虑二分类问题):
在这里插入图片描述

1.Accuracy = (TP+TN)/(TP+TN+FP+FN)
2.Precision(查准率):TP/(TP+FP) 预测的正例中的准确率
3.Recall(查全率):TP/(TP+FN) 在所有正例当中的准确率
4.P-R曲线
在这里插入图片描述
⚫ P-R图直观的显示算法在样本总体上的查准率、查全率。在进行比较时,若一个算法学习器的P-R曲线被另一个算法的曲线完全包住,怎可断言前者优于后者,若两个算法的P-R曲线发生了交叉,则一般很难断言孰优孰劣。如果一定要比个高低,则可比较P-R曲线下面积的大小,其在一定程度上表征了查准率和查全率上取得双高的比例,但这个值往往比较难以运算。
平衡点(BEP):precision和recall相等时的取值,比较BEP的大小
5.F1度量:反映了模型的稳健性

  1. F1度量是基于查准率和查全率的调和平均。
  2. F1 = 2(precision*recall)/(precision+recall)
  3. F1 score越大越好

6 ROC曲线:受试者工作特征曲线(为解决分布不均衡的数据问题)
1)真正例率:TP/(TP+FN)
2)假正例率:FP/(FP+TN)
在这里插入图片描述
⚫ 对角线为随意猜想模型
⚫ A,B为所有正例排在所有反例之前的模型
⚫ 进行比较时,与P-R曲线类似,B被A包住,A模型更优秀
⚫如果两个模型交叉,则难以断定孰优孰劣,可以计算曲线下面积
7.AUC:为ROC曲线所覆盖的区域面积,显然,AUC越大,分类器分类效果越好。
  AUC = 1,是完美分类器,采用这个预测模型时,不管设定什么阈值都能得出完美预测。绝大多数预测的场合,不存在完美分类器。
  0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
  AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。
  AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/909011
推荐阅读
相关标签