连载|模型评估与过拟合(下)

简介: 连载|模型评估与过拟合(下)

模型评估与过拟合

性能度量

我们在进行对学习器泛化能力评估的同时,不仅需要有效的评估方法,还需要一个好的衡量模型泛化能力的评价标准。我们先来学习一下在分类算法中经常用到的模型评价指标。

准确率(Accuracy)

分类正确的样本个数占总样本个数的比例。

image.png

精确率(Precision)

分类正确的正样本个数占分类器判定为正样本的个数的比例。

image.png

召回率(Recall)

分类正确的正样本个数占真实正样本的个数的比例。

image.png

F1 score

F1 score可以认为是精确率和召回率的调和平均值。

image.png

混淆矩阵

对于二分类问题我们可以将样例根据其真实类别与学习器预测类别的组合划分为真正例(True Positive)、假正例(False Positive)、真反例(True negative)、假反例(False negative),混淆矩阵如下表示:

image.png

在混淆矩阵下对精确率P和召回率R的定义如下:

image.png

对于精确率和召回率,其实是一对矛盾的度量,一般来说,精确率高时,召回率往往偏低,而召回率高时,精确率往往偏低。


ROC曲线(Receiver Operating Characteristic Curve)

关于ROC曲线中一个点的计算

ROC曲线经常作为评估2分类的重要指标,该曲线是2维平面内的曲线,其横坐标为假阳性率(FPR),纵坐标为真阳性率(TPR),二者的计算方式如下:

image.png

  • P:真实的正样本的数量
  • N:真实的副样本的数量
  • TP:P个正样本中被分类器预测为正样本的个数
  • FP:N个副样本中被分类器预测为正样本的个数


举个例子:

image.png

如何绘制ROC曲线

ROC曲线实际上是通过不断的移动分类器的截断点来生成曲线上的关键点的。


我们首先要对样本的预测概率从高到低进行排序,在输出最终的正例、负例之前我们需要指定一个阈值,预测概率大于该阈值的样本会被判为正例,小于该阈值的样本会被判为负例。

image.png

image.png

image.png

AUC(Area Under Curve)

说完了绘制ROC曲线,那么如何来计算AUC呢?


根据名称我们就可以知道,AUC就是在计算ROC曲线下方的面积,该值能够量化的反映基于ROC曲线衡量出的模型性能。由于ROC的曲线一般都处于Y=X这条直线的上方(若果不是的化把概率反转变成1-p即可成为更好的分类器),所以AUC的取值一般在0.5-1之间。AUC越大,说明分类器越可能把真正的正样本排在前面,分类性能越好。


P-R曲线(Precision-Recall)

P-R曲线的存在是为了进行精确率和召回率的衡量,P-R曲线顾名思义P就代表精确率而R就是召回率,在P-R曲线中横轴是召回率,纵轴是精确率。对于一个排序模型来说,其P-R曲线上的一个点代表着,在某一阈值下,模型将大于该阈值的结果判定为正样本, 小于该阈值的结果判定为负样本,此时返回结果对应的召回率和精确率,整条P-R 曲线是通过将阈值从高到低移动而生成的。下图中,其中实线代表 模型A的P-R曲线,虚线代表模型B的P-R曲线。原点附近代表当阈值最大时模型的 精确率和召回率。

image.png

由图可见,当召回率接近于0时,模型A的精确率为0.9,模型B的精确率是1, 这说明模型B得分前几位的样本全部是真正的正样本,而模型A即使得分最高的几 个样本也存在预测错误的情况。并且,随着召回率的增加,精确率整体呈下降趋 势。但是,当召回率为1时,模型A的精确率反而超过了模型B。这充分说明,只用 某个点对应的精确率和召回率是不能全面地衡量模型的性能,只有通过P-R曲线的 整体表现,才能够对模型进行更为全面的评估。


偏差与方差

偏差:描述的是预测值(估计值)的期望与真实值之间的差距。偏差越大,越偏离真实数据。

image.png

方差:描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,数据的分布越分散。

image.png

下图中展示高(低)偏差和高(低)方差对应的数据分布情况。

80.png

相关文章
|
7月前
|
机器学习/深度学习 测试技术
大模型开发:描述交叉验证以及为什么在模型评估中使用它。
【4月更文挑战第24天】交叉验证是评估机器学习模型性能的方法,通过将数据集分成训练集和多个子集(折叠)进行多次训练验证。它能减少过拟合风险,提供更可靠的性能估计,用于参数调优,并减少小数据集或噪声带来的随机性影响。通过汇总多轮验证结果,得到模型的整体性能估计。
72 7
|
7月前
|
机器学习/深度学习 算法
大模型开发:什么是过拟合和欠拟合?你如何防止它们?
机器学习中,过拟合和欠拟合影响模型泛化能力。过拟合是模型对训练数据过度学习,测试集表现差,可通过正则化、降低模型复杂度或增加训练数据来缓解。欠拟合则是模型未能捕捉数据趋势,解决方案包括增加模型复杂度、添加特征或调整参数。平衡两者需通过实验、交叉验证和超参数调优。
778 0
|
7月前
|
机器学习/深度学习 算法 Python
LightGBM中的特征选择与重要性评估
LightGBM中的特征选择与重要性评估【2月更文挑战第1天】
1361 0
|
18天前
|
机器学习/深度学习 存储 人工智能
《C++ 模型训练之早停法:有效预防过拟合的关键策略》
在C++模型开发中,过拟合是常见问题,早停法(Early Stopping)能有效避免这一陷阱。本文介绍如何在C++环境下通过设定监控指标、耐心值及记录最佳模型状态,实现早停法,确保模型在最佳状态下停止训练,保持良好泛化性能。
43 12
|
4月前
评估与预测
【8月更文挑战第21天】评估与预测。
35 1
|
5月前
|
人工智能 Python
模型评估与选择:避免过拟合与欠拟合
【7月更文第18天】在人工智能的探险旅程中,打造一个既聪明又可靠的模型可不简单。就好比在茫茫人海中找寻那位“知心朋友”,我们需要确保这位“朋友”不仅能在训练时表现优异,还要能在新面孔面前一样游刃有余。这就引出了模型评估与选择的关键议题——如何避免过拟合和欠拟合,确保模型既不过于复杂也不过于简单。今天,我们就来一场轻松的“模型相亲会”,通过交叉验证、混淆矩阵、ROC曲线这些实用工具,帮你的模型找到最佳伴侣。
228 2
|
7月前
|
机器学习/深度学习 监控 数据可视化
模型评估
“【5月更文挑战第27天】”
56 2
|
7月前
|
机器学习/深度学习 算法 数据挖掘
如何评估模型性能以进行模型选择?
【5月更文挑战第4天】如何评估模型性能以进行模型选择?
154 5
|
7月前
|
机器学习/深度学习 算法
如何评估使用PyBrain训练的模型性能
使用PyBrain训练模型的性能评估包括:混淆矩阵(TP, TN, FP, FN, 准确率)、性能度量(准确率, 错误率)、泛化能力、数据集划分(训练集与测试集误差)以及其他指标如计算速度和鲁棒性。评估过程需综合考虑多种方法,并依据业务需求和模型类型选择合适的方式。
42 3
|
7月前
|
机器学习/深度学习 自然语言处理 算法
【大模型】关于减轻 LLM 训练数据和算法中偏差的研究
【5月更文挑战第6天】【大模型】关于减轻 LLM 训练数据和算法中偏差的研究