如何评价模型的好坏?

这篇具有很好参考价值的文章主要介绍了如何评价模型的好坏?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

回归:

  • MSE(均方误差)—— 判定方法:值越小越好(真实值-预测值,平方之后求和平均)
  • RMSE(均根方误差)—— 判定方法:值越小越好(MSE开根号)
  • R squared/拟合优度   —— 判定方法:值越接近1模型表现越好

分类:

  • ROC —— 判定方法:ROC曲线应尽量偏离参考线(越远模型预测效果越好)
  • AUC —— 判定方法:AUC大于0.5
  • K-S图 —— 判定方法:其值在0到100之间,值越大,模型表现越好
  • gini系数 —— 判定方法:基尼系数应大于60%
  • 混淆矩阵 —— 判定方法:根据不同的模型选不同的参数

Sklearn中的模型评估:

  • estimator的score方法:sklearn中的estimator都具有一个score方法,提供一个缺省的评估法则来解决问题。
  • Scoring参数:使用cross-validation的模型评估工具,依赖于内部的scoring策略。
  • Metric函数:metrics模块实现了一些函数,用来评估预测误差。

Sklearn.metrics函数:

https://scikit-learn.org/stable/modules/classes.html#module-sklearn.metrics

【分类指标】

  • accuracy_score(y_true,y_pre) : 精度 
  • auc(x, y, reorder=False) : ROC曲线下的面积
  • average_precision_score(y_true, y_score, average='macro', sample_weight=None) : AP
  • brier_score_loss(y_true, y_prob, sample_weight=None, pos_label=None)
  • confusion_matrix(y_true, y_pred, labels=None, sample_weight=None) : 混淆矩阵
  • f1_score(y_true, y_pred, labels=None, pos_label=1, average='binary', sample_weight=None): F1值
  • log_loss(y_true, y_pred, eps=1e-15, normalize=True, sample_weight=None, labels=None):对数损耗
  • precision_score(y_true, y_pred, labels=None, pos_label=1, average='binary',) :查准率
  • recall_score(y_true, y_pred, labels=None, pos_label=1, average='binary', sample_weight=None):查全率
  • roc_auc_score(y_true, y_score, average='macro', sample_weight=None):ROC曲线下的面积就
  • roc_curve(y_true, y_score, pos_label=None, sample_weight=None, drop_intermediate=True) : ROC曲线的横纵坐标值

【回归指标】

  • explained_variance_score(y_true, y_pred, sample_weight=None, multioutput='uniform_average'):回归方差(自变量与因变量之间的相关程度)
  • mean_absolute_error(y_true, y_pred, sample_weight=None, multioutput='uniform_average'):平均绝对误差
  • mean_squared_error(y_true, y_pred, sample_weight=None, multioutput='uniform_average'):均方差
  • median_absolute_error(y_true, y_pred)  : 中值绝对误差
  • r2_score(y_true, y_pred, sample_weight=None, multioutput='uniform_average')  :R平方值

1.混淆矩阵

如何评价模型的好坏?

基于样本预测值和真实值是否相符,可得到4种结果:

TP(True Positive):样本预测值与真实值相符且均为正,即真阳性

FP(False Positive):样本预测值为正而真实值为负,即假阳性

FN(False Negative):样本预测值为负而真实值为正,即假阴性

TN(True Negative):样本预测值与真实值相符且均为负,即真阴性

第一类错误:原假设是正确的,而你判断它为错误的

第二类错误:原假设是错误的,而你判断它为正确的

2.准确度(Accuracy)

如何评价模型的好坏?

准确度(Accuracy Acc):准确度是所有预测中预测正确的比例。

3.精确率(Precision)

如何评价模型的好坏?

Precision,准确率/查准率,需要注意的是, Precision 和 Accuracy 不一样,Accuracy 针对所有样本,而 Precision 仅针对预测出来(包括误检)的那一部分样本。 

4.召回率(Recall)

如何评价模型的好坏?

例如,有一个池塘,里面共有1000条鱼,含100条鲫鱼。机器学习分类系统将这1000条鱼全部分类为“不是鲫鱼”,那么准确率也有90%(显然这样的分类系统是失败的),然而查全率为0%,因为没有鲫鱼样本被分对。这个例子显示出一个成功的分类系统必须同时考虑Precision和Recall,尤其是面对一个不平衡分类问题。

如何评价模型的好坏?

5.AUC(Area Under Curve)

ROC (Receiver operating characteristic) 

ROC曲线的横坐标为FPR(False Positive Rate),纵坐标为TPR(True Positive Rate) 

如何评价模型的好坏?                     如何评价模型的好坏?

FPR表示负样本分错的概率;TPR表示正样本分对的概率

对于一个特定的分类器和测试数据集,显然只能得到一个分类结果,即一组FPR和TPR;而要得到一个曲线,实际上需要一系列的FPR和TPR的值,可以利用sigmoid函数计算样本预测输出为正的概率,然后根据设置不同的threshold,来获得多组FPR和TPR的值。

AUC(Area Under Curve)被定义为ROC曲线下的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间

AUC值是一个概率值,当你随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值。当然,AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好的分类。

ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化

样本有偏,ACC很容易掩盖问题,但是AUC却可以出淤泥而不染!

6.AP(Average precision)

查准率和查全率是一对矛盾的度量,一般而言,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。

从直观理解确实如此:我们如果希望好瓜尽可能多地选出来,则可以通过增加选瓜的数量来实现,如果将所有瓜都选上了,那么所有好瓜也必然被选上,但是这样查准率就会越低;若希望选出的瓜中好瓜的比例尽可能高,则只选最有把握的瓜,但这样难免会漏掉不少好瓜,导致查全率较低。通常只有在一些简单任务中,才可能使查全率和查准率都很高。所以为了更全面的衡量模型的性能提出了 AP。

Precision-recall曲线(PR曲线)(Precision Recall Curve),即横轴为 Recall,竖轴为 Precision。PR曲线的横轴Recall也就是TPR,反映了分类器对正例的覆盖能力。而纵轴Precision反映了分类器预测正例的准确程度。那么,Precision-recall曲线反映了分类器对正例的识别准确程度和对正例的覆盖能力之间的权衡。对于随机分类器而言,其Precision固定的等于样本中正例的比例,不随recall的变化而变化。

注意⚠️:AP 的值就是 PR 曲线与 x 轴和 y 轴所围成图形的面积,不是Precision的平均值!!(根据不同的置信度阈值 (p_threshold),计算出这模型得到的对某个类别的R、P,然后作出PR曲线,并求解面积,就能得到分类模型对该类别的AP。)

  • AP是对所有图片内的某一类来说
  • AP: 对不同召回率点上的精度进行平均(即PR曲线下的面积): 如何评价模型的好坏?
  • mAP(Mean Average Percision)是针对多类来说,多个物体类别的AP平均
  • mAP的对象是所有类的所有图片,衡量的是学出的模型在所有类别上的好坏

mAP 是从类别的维度对 AP 进行平均,因此可以评价多分类器的性能。

VOC mAP:在实际计算中,由于 PR 曲线并不是单调递减的,而是抖动的,所以对进行“平滑”操作。由于 VOC 在 2010 年更新了“平滑”的方式。

  • AUC主要考察模型对正样本以及负样本的覆盖能力(即“找的全”)
  • mAP主要考察模型对正样本的覆盖能力以及识别能力(即对正样本的找的全找的对

7.F1 score

Precision体现了模型对负样本的区分能力,Precision越高,模型对负样本的区分能力越强;Recall体现了模型对正样本的识别能力,Recall越高,模型对正样本的识别能力越强。F1 score是两者的综合,F1 score越高,说明模型越稳健

如何评价模型的好坏?

8.其他常见指标:

Hamming loss(汉明损失),该指标衡量了预测所得标记与样本实际标记之间的不一致程度,即样本具 有标记y但未被识别出,或不具有标记y却别误判的可能性。例如对于一个多标签问题,某样本的真实标签为1,0,1,预测标签为0,1,1,有2个对1个错,Hamming loss=1/3。此评估指标值越小越好。

one-error,用来计算在测试文件集中,测试结果分类值(取值0~1)最高的标签不在实际分类标签中的文件数。如预测分类值为{0.3,0.8,0.2,0.5},其实际分类标签为{1,0,0,1}时,分类值最高的是第二个标签,但他并不在实际分类标签中,因此one-error评估值是1/4。同样,此评估值越小越好。

coverage,用于计算在整个测试文件集中,实际分类标签在预测分类标签中的最大rank值的平均值。如预测分类标签为{0.3,0.8,0.2,0.5},rank即为{3,1,4,2}。当实际分类标签为{1,0,0,1}时,此测试集的coverage评估值为2。同样,此评估值越小越好。

ranking loss,用于计算预测分类标记与实际分类标记中,rank排名相反的次数。此评估值越小越好。文章来源地址https://www.toymoban.com/news/detail-403147.html

到了这里,关于如何评价模型的好坏?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 图像处理之图像质量评价指标RMSE(均方根误差)

    一、RMSE基本定义 MSE全称为“Root Mean Square Error”,中文意思即为均方根误差,是衡量图像质量的指标之一。计算原理为 真实值与预测值的差值的平方然后求和再平均,最后开根号 ,公式如下: RMSE值越小,说明图像越相似。计算RMSE有四种方法: 方法一 :计算RGB图像三个通道

    2024年02月04日
    浏览(45)
  • 图像处理之图像质量评价指标MSE(均方误差)

    一、MSE基本定义 MSE全称为“Mean Square Error”,中文意思即为均方误差,是衡量图像质量的指标之一。计算原理为 真实值与预测值的差值的平方然后求和再平均 ,公式如下: 其中, M为图像I的像素总数,N为图像K的像素总数。 MSE值越小,说明图像越相似 。计算MSE有四种方法:

    2024年02月05日
    浏览(42)
  • 临床决策曲线分析如何影响预测模型的使用和评价

    目前,临床决策曲线分析(clinical decision curve analysis, DCA)在业界已经被超过1500文献使用,也被多个主流的临床杂志所推荐,更被写进了临床预测模型撰写标准(TRIPOD)中,但是许多预测模型的文章却仅仅把它当做另外一个模型评价的指标,显然是没有完全了解DCA对于预测模

    2023年04月23日
    浏览(82)
  • 如何衡量软件质量好坏?

    作为测试人员肯定会被问如何评价一个软件质量的好坏。一般同学都会回答说,上线没 bug。但是一款软件如果没人用,那肯定没 Bug。所以没 bug 绝对不是一个好的评判标准。 那什么样的标准是好的标准? 1. 功能性:软件能够实现用户和客户期望的功能需求和业务需求。实现

    2024年02月12日
    浏览(81)
  • 我的AI笔记_1(线性回归原理、误差、似然函数、最小二乘法由来)

    我想入门AI,从简单的机器学习开始吧。(这是我学习过程中做的笔记,有见解不同的兄弟姐妹们也欢迎留言)我本人学习过程喜欢看视频而不是看书,针对看视频学习更高效和看书更高效的问题争论过很多次,但是个人感觉视频更高效,知识更容易进入我的大脑袋~ 学习这一

    2024年02月05日
    浏览(49)
  • 如何评判算法好坏?复杂度深度解析

    斐波那契数列的递归方式非常简洁,但简介一定好吗?那该如何衡量其好与坏呢? 算法在编写成可执行程序后,运行时需要消耗时间资源和空间(内存)资源,因此 衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的 ,及 时间复杂度 和 空间复杂度 。 时间复杂度

    2024年02月15日
    浏览(40)
  • 机器学习基础算法--回归类型和评价分析

    目录 1.数据归一化处理 2.数据标准化处理 3.Lasso回归模型 4.岭回归模型 5.评价指标计算       MSE= i=1 n ( Y i - Y ^ ) 2 n RMES= i=1 n ( Y i - Y ^ ) 2 n MAE= i=1 n | Y i - Y ^ | n R 2 =1- i=1 n ( Y ^ - Y i ) 2 i=1 n ( Y ¯ - Y i )2

    2024年02月09日
    浏览(40)
  • 如何对多元线性回归模型调参?

    多元线性回归模型通常不像复杂的机器学习模型那样拥有许多可调节的超参数。然而,仍有一些关键步骤和技巧可以用于优化多元线性回归模型的性能: 特征选择 移除无关特征:通过分析特征与目标变量的关联度,移除与目标变量关联度低的特征。 使用特征选择方法:可以

    2024年01月23日
    浏览(41)
  • 【FATE联邦学习】非分类、回归任务,如何获得联邦模型的输出?

    一般来说,从FATE框架中获得数据使用 get_component(\\\'name\\\').get_output_data() 。 但是这样子在目前的1.x的FATE中, 只能以分类、回归的格式输出才能获得 。 如果是图片、文本、token embedding等,用这种方式根本拿不到模型的输出。 经过跟 FATE社区人员 交涉,社区肯定了这种方法拿不出

    2024年02月12日
    浏览(41)
  • 直线导轨的误差匹配度如何?

    直线导轨的误差匹配度是评估导轨之间配合精度的重要指标,导轨之间的配合精度越高,误差匹配度就会越好,反之则越差。 在直线导轨的生产和加工过程中,每个导轨都会产生一定误差,例如平行误差、垂直误差、轨面平整度、滑块移动平稳度、重复定位精度等。这些误差

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包