机器学习中,常使用混淆矩阵来对分类模型的效果进行衡量,本文主要讲述一下标准的二分类混淆矩阵与多分类混淆矩阵、准确率与精确率的区别。
混淆矩阵
| real-P | real-N | |
|---|---|---|
| predict-P | TP | FP |
| predict-N | FN | TN |
模型整体准确率 = (TP + TN)/ (TP + FN + FP + TN) (1)
但需注意,准确率并不足以反映分类模型的实际效果,比如:预测一个人是否患病,假设实际中98%的人是健康人,2%的人是病人。若正例为病人,预测混淆矩阵如下:
| real-P | real-N | |
|---|---|---|
| predict-P | 0 | 0 |
| predict-N | 2 | 98 |
则按照公式(1),整体准确率 = 98%。
但是显而易见,该模型对一个人是否患病,并没有任何预测能力。
为了解决此问题,需对单个类别进行评估,指标如下:
精确率 = TP / (TP + FP)
召回率 = TP / (TP + FN)
还是上表,对病人的预测,精确率 和 召回率 均为0,因此,使用单个类别的 精确率 和 召回率 可以反映一个类别的真实效果。
多类别混淆矩阵
| real-1 | real-2 | ...... | real-n | |
|---|---|---|---|---|
| predict-1 | 20 | 0 | ...... | 1 |
| predict-2 | 2 | 90 | ...... | 0 |
| ...... | ...... | ...... | ...... | ...... |
| predict-n | 0 | 0 | ...... | 80 |
注意:区分 准确率 和 精确率