1. 写在前面
为什么时隔多年又再做一次混淆矩阵的整理,TMD就是每次用的时候要自己回过头查一遍,老是记不住,为了打好基础,再次进行梳理。
2. 为什么会有混淆矩阵
我们简单的分类衡量模型的好坏,其实正常使用均方误差就行了,如下:
E ( f ; D ) = 1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 E(f;D)=\frac{1}{m}\sum_{i=1}^{m}(f(x_i)-y_i)^2 E(f;D)=m1∑i=1m(f(xi)−yi)2
其次就是错误率:
E ( f ; D ) = 1 m ∑ i = 1 m ∏ ( f ( x i ) − y i ) 2 E(f;D)=\frac{1}{m}\sum_{i=1}^{m}\prod(f(x_i)-y_i)^2 E(f;D)=m1∑i=1m∏(f(xi)−yi)2
那么精度就是1-错误率喽:
a c c ( f ; D ) = 1 − E ( f ; D ) acc(f;D)=1-E(f;D) acc(f;D)=1−E(f;D)
但是,还有更麻烦的需求,什么需求?我们后面再说!先看混淆矩阵。
- TP:预测结果是正例(Positive),而且真实情况是正例,那么模型预测正确,即预测为True,故用True Positive = TP表示。
- FN:预测结果是反例(Negative),而且真实情况是正例,那么模型预测错误,即预测为False,故用False Negative = FN表示。
- FP:预测结果是正例(Positive),而且真实情况是反例,那么模型预测错误,即预测为False,故用False Positive = FN表示。
- TN:预测结果是反例(Negative),而且真实情况是反例,那么模型预测正确,即预测为True,故用True Negative = TN表示。
综上:混淆矩阵的含义终于搞清楚了。
3. 那么衍生出来什么需求?
借用周志华老师的西瓜书:
模型预测了10个好瓜,但是其中真正的好瓜有多少?
在此用到了查准率:
P = T P T P + F P P=\frac{TP}{TP +FP} P=TP+FPTP
有20个好瓜,但是模型只查出了10个好瓜?
在此则用到的被称为查全率:
R = T P T P + F N R=\frac{TP}{TP +FN} R=TP+FNTP
4. 再次衍生出F1
什么是F1,就是P和R的调和平均,即
如果对P和R侧重不同,则更可以通过调权进行处理。