第十章评价分类结果

10.1 分类准确度的问题

  • 对于极度偏斜的数据,只用分类准确度是远远不够的。(比如癌症预测,只有0.01%的癌症患者,会有极高的准确度)

混淆矩阵 Confusion Matrix

在这里插入图片描述

  • 例子:预测10000个人是否患癌症

在这里插入图片描述

10.2 精准率和召回率

精准率

直观解释:预测出来的所关注的类(1:患病)中正确的比例
在这里插入图片描述

召回率

直观解释:有多少真实的所关注的类(1:患病)被预测出来
在这里插入图片描述
一个很好的解释图:
在这里插入图片描述

10.4 F1-Score

在这里插入图片描述

  • F1 是 precision和recall的调和平均值

10.5 precision-recall的平衡

在这里插入图片描述

  • 通过调整阈值threshold,可以改变精确率和召回率。两者是矛盾的,一方增大,另一方就会减小。

例子:在这里插入图片描述

10.6 Precision-Recall曲线

曲线1

横轴:threshold(阈值)
数轴:precision和recall的值
在这里插入图片描述

曲线2

横轴:精确率
纵轴:召回率
在这里插入图片描述
例子:两个算法绘制Precision-Recall曲线
在这里插入图片描述
显然外边的曲线所对应的算法优于内部曲线。(与x和y轴包围成的面积较大)
可用来评估算法、模型。

10.7 ROC曲线

描述TPR和FPR之间的关系。其中TPR=Recall,即召回率。FPR公式见下方
在这里插入图片描述

TPR和FPR的关系

同增同减
在这里插入图片描述

10.7 ROC曲线

常用于比较模型、算法之间的优劣。
对于有偏数据,该曲线不能很好反应算法的好坏,应该要看精确率和召回率。

在这里插入图片描述

  • 面积大的为更好的算法模型。

10.8 多分类问题中的混淆矩阵

可以利用混淆矩阵,绘制error matrix,来看错误发生在哪一类别中,从而可以再观察数据或改进算法。

from sklearn.metrics import confusion_matrix

confusion_matrix(y_test, y_predict)

#绘制混淆矩阵
cfm = confusion_matrix(y_test, y_predict)
plt.matshow(cfm, cmap=plt.cm.gray)
plt.show()

#绘制error matrix
row_sums = np.sum(cfm, axis=1)
err_matrix = cfm / row_sums
np.fill_diagonal(err_matrix, 0)

plt.matshow(err_matrix, cmap=plt.cm.gray)
plt.show()
  • 混淆矩阵
    在这里插入图片描述
  • error matrix
    在这里插入图片描述

多分类指标参考笔记:https://blog.csdn.net/wf592523813/article/details/95202448
https://www.jianshu.com/p/100f3dee345d

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值