机器学习中常用评估指标汇总

作者: 不会停的蜗牛 | 来源:发表于2017-07-03 11:29 被阅读705次

评估指标 Evaluation metrics 可以说明模型的性能,辨别模型的结果。

我们建立一个模型后,计算指标,从指标获取反馈,再继续改进模型,直到达到理想的准确度。在预测之前检查模型的准确度至关重要,而不应该建立一个模型后,就直接将模型应用到看不见的数据上。

今天先来简单介绍几种回归和分类常用的评估方法。


回归:

均方误差:

其中 D 为数据分布,p 为概率密度函数。

from sklearn.metrics import mean_squared_error
y_true = [3, -0.5, 2, 7]
y_pred = [2.5, 0.0, 2, 8]
mean_squared_error(y_true, y_pred)

0.375

分类:

二分类 and 多分类:

错误率

精度


二分类
混淆矩阵:
from sklearn.metrics import confusion_matrix
pipe_svc.fit(X_train, y_train)
y_pred = pipe_svc.predict(X_test)
confmat = confusion_matrix(y_true=y_test, y_pred=y_pred)
print(confmat)

[[71  1]
[ 2 40]]

单纯用 错误率,精度 是无法知道下面的问题时:

查准率
应用场景-当你想知道“挑出的西瓜中有多少比例是好瓜”

from sklearn.metrics import precision_score
from sklearn.metrics  import recall_score, f1_score
print('Precision: %.3f' % precision_score(y_true=y_test, y_pred=y_pred))

Precision: 0.976

查全率:
应用场景-当你想知道“所有好瓜盅有多少比例被挑出来了”

print('Recall: %.3f' % recall_score(y_true=y_test, y_pred=y_pred))

Recall: 0.952

P-R 图:
当一个学习器的 P-R 曲线被另一个学习器的包住,那么后者性能优于前者。
有交叉时,需要在具体的查准率或者查全率下进行比较。

平衡点 (Break Event Point BEP):
即上图中三个红点。
综合考虑查准率,查全率的度量
当 查准率=查全率 时的点,谁大谁比较优。

F1 度量:
也是综合考虑查准率,查全率的度量,比 BEP 更常用:

print('F1: %.3f' % f1_score(y_true=y_test, y_pred=y_pred))

F1: 0.964

Fβ:
可以表达对查准率,查全率的不同重视度,
β > 1 则查全率有更大影响,β < 1 则查准率有更大影响,β = 1 则为 F1。


One vs. All (OvA) 分类问题

这时会在 n 个二分类问题上综合考虑查准率,查全率。

宏~ :先在每个混淆矩阵上计算率,再求平均

宏查准率

宏查全率

宏 F1

微~ :先将各个混淆矩阵上对应元素求平均,再计算率

微查准率

微查全率

微 F1


ROC :
反映敏感性和特异性连续变量的综合指标,roc曲线上每个点反映着对同一信号刺激的感受性。

纵轴为 TPR 真正例率,预测为正且实际为正的样本占所有正例样本的比例
横轴为 FPR 假正例率。预测为正但实际为负的样本占所有负例样本的比例

对角线对应的是 “随机猜想”


当一个学习器的 ROC 曲线被另一个学习器的包住,那么后者性能优于前者。
有交叉时,需要用 AUC 进行比较。

AUC:
ROC 曲线下的面积

import numpy as np
from sklearn.metrics import roc_auc_score
y_true = np.array([0, 0, 1, 1])
y_scores = np.array([0.1, 0.4, 0.35, 0.8])
roc_auc_score(y_true, y_scores)

0.75

代价敏感

现实任务中,当不同类型的错误具有不同的影响后果时,它们的代价也是不一样的。

此时,可以设定
代价矩阵 cost matrix:
如果将第 0 类预测为 第 1 类造成的损失更大,则 cost01 > cost10,相反将第 1 类预测为 第 0 类造成的损失更大,则 cost01 < cost10 :

则带有“代价敏感”的错误率为:

其中 0 为正类,1 为反类,D+ 为正例子集合,D- 为反例子集合。

代价曲线 cost curve:
非均等代价下,反应学习器的期望总体代价。
横轴为取值为[0,1]的正例概率代价:

纵轴为取值为[0,1]的归一化代价:


其中 p 为正例的概率,FPR = 1 - TPR。


资料:
机器学习
Python Machine Learning


推荐阅读 历史技术博文链接汇总
http://www.jianshu.com/p/28f02bb59fe5
也许可以找到你想要的:
[入门问题][TensorFlow][深度学习][强化学习][神经网络][机器学习][自然语言处理][聊天机器人]

相关文章

  • 机器学习中常用评估指标汇总

    评估指标 Evaluation metrics 可以说明模型的性能,辨别模型的结果。 我们建立一个模型后,计算指标...

  • 机器学习:常用模型评估指标

    在机器学习建模过程中,针对不同的问题,需采用不同的模型评估指标。 一、分类模型评估指标: 1、混淆矩阵(Confu...

  • 机器学习中的评估指标

    机器学习中需要使用模型,优化,评价,其中评价指标也是用来优化的一环,这里总结一下常用的评估指标,主要分为分类和回归...

  • 机器学习概述与算法介绍(二)

    机器学习概述 机器学习基本概念 机器学习基本流程与工作环节 机器学习中的评估指标 机器学习算法一览 3. 机器学习...

  • 机器学习中的常用评价指标汇总

    机器学习中的评价指标 简要介绍精度、精确率、召回率、P-R曲线、F1 值、TPR、FPR、ROC、AUC等指标,还...

  • 机器学习性能评估指标汇总

    跑完分类模型(Logistic回归、决策树、神经网络等),我们经常面对一大堆模型评估的报表和指标,如ACC、ROC...

  • 常用的机器学习模型评估指标

    对机器学习模型的泛化性能进行评估,通常需要衡量模型的泛化能力,也就是性能度量。常见的性能度量指标包括:准确率,查准...

  • 深度学习知识点汇总-机器学习基础(13)

    2.13 模型评估常用指标有哪些? 一般情况来说,单一评分标准无法完全评估一个机器学习模型。只用good和bad偏...

  • 机器学习——评估指标

    混淆矩阵(confusion matrix) 如下表所示,所有的评测指标都可以根据混淆矩阵进行运算得到。 真实情况...

  • 机器学习常用评价指标

    机器学习常用评价指标 在机器学习任务中,如何对模型的好坏对模型的优化/定量评价/改进具有重大的作用,通过不同的指标...

网友评论

    本文标题:机器学习中常用评估指标汇总

    本文链接:https://www.haomeiwen.com/subject/ifpacxtx.html