Day 11 - Confusion Matrix 混淆矩阵-模型的好坏 (1)

如何验证正确率, 或如何辨别机器学习模型的好坏? 我们常使用Confusion Matrix[混淆矩阵]。

在机器学习领域和统计分类问题中,混淆矩阵(英语:confusion matrix)是可视化工具,特别用於监督学习,在无监督学习中一般叫做匹配矩阵。矩阵的每一列代表一个类别的实例预测,而每一行表示一个实际类别的实例。之所以如此命名,是因为通过这个矩阵可以方便地看出机器是否将两个不同的类混淆了(比如说把一个类错当成了另一个)。

混淆矩阵(也称误差矩阵)是一种特殊的, 具有两个维度的(实际和预测)列联表(英语:contingency table),并且两维度中都有着一样的类别的集合。(wiki)

https://ithelp.ithome.com.tw/upload/images/20201211/20130601JOK5kbf2UW.png

  • TP (True Positive) — 真阳:即实际为True,预测为Positive。预测的结果与实际情况相同。
  • TN (True Negative) — 真阴:即实际为True,预测为Negative。预测的结果与实际情况相同。
  • FP (False Positive) — 伪阳:即实际为False,预测为Positive。预测的结果与实际情况不同。
  • FN (False Negative) — 伪阴:即实际为False,预测为Negative。预测的结果与实际情况不同。

Error

从上面的描述,我们当然希望我们的模型True Positive和True Negative都可以多多出现,而False Positive和False Negative可以尽量不要出现,因此这两种状况就称之为Error,又各自又命名为Type I Error和Type II Error,

这两种错误,错的很不一样,如果放在你家大门锁上,那你最不希望发生哪类错误?当然是Type I Error,也就是False Positive,此时机器会把陌生人当成主人的开门,这是我们不想看到的,我们宁可被关在门外(Type II Error)!但如果今天这个辨别系统是用在Google广告,Google Ad会预测一个产品的潜在客户,并做广告投放,这个时候反而是较不希望Type II Error发生,也就是False Negative,这叫做宁可错杀一百个也不要放过一个潜在客户。
所以下次在训练你的模型时想清楚你不想要Type I Error还是Type II Error,并且用一些方法来放掉另一种错误,来降低这个我们不希望发生的错误。
Reference:如何辨别机器学习模型的好坏?秒懂Confusion Matrix

指标

Reference:机器学习模型评估指标-confusion matrix, precision, recall, and ,F1-score
在机器学习的分类领域中,常使用混淆矩阵(confusion matrix)的元素加以计算精确率(precision)、召回率(recall)及F1-source,以判断该模型的表现。

准确率(accuracy) = (TP +TN) /全部资料总数:模型预测正确的比例。

https://ithelp.ithome.com.tw/upload/images/20201211/20130601TOZKCDe80Y.png
https://ithelp.ithome.com.tw/upload/images/20201211/201306012PVIkURh1O.png

这也是最常用的指标,但是在某些情形下这个指标会失效,如果今天实际正向的例子很少,譬如有一个信用卡盗刷侦测机器人,看了一个月的信用卡纪录,其中真正是盗刷的资料笔数是相当少的,那我只要简单一步来设计我的模型就可以使它Accuracy达到99%以上,你猜到了吗?那就是通通预测没有盗刷的情况发生,所以显然我们需要别种指标来应对这种情况。

注:本文是搜寻数个网站及各种不同来源之结果,着重在学习,有些内容已难办别出处,我会尽可能列入出处,若有疏忽或出处不可考,请联络我, 我会列入, 尚请见谅。

<<:  安装测试 WinSyslog for windows 7/10

>>:  Day45. 解译器模式

[Day 9] 前端环境建置 WebStorm、Vue

好滴 最麻烦的部分终於结束啦 准备开始写程序啦~ 今天先把前端的环境装起来 我主要会用 Vue 搭配...

灵异现象 - 怎麽大家都能改阿

灵异现象 - 怎麽大家都能改阿 灵异现象 故事主角:小新 小新的 IT 同事小王最近转部门跑去做 R...

[CSS] Flex/Grid Layout Modules, part 6

你如果会用 Excel,那 Grid 就应该不陌生。 不过老实讲,我也不太会用 Excel。 Gr...

[Angular] Forms - Control Value Accessor [上]

前言 在前两篇的介绍中我们了解到了什麽是Angular中的form,并且对Reactive form...

Chapter2 - 用物件看真实世界(I)写程序为什麽需要物件?如何简化画落叶的流程?

物件是什麽?为什麽需要它呢? 让我们接续上回 完成昨天的演示後,也许有人会觉得,处理落叶动画的流程很...