人工智能(三)评定算法——稍微复杂一点的方法
Original Owen Li QuizMaster Today
这一次的内容(真的)会有一点抽象,所以我们还是先让我们的调查组休息一下吧:谁想每天在食堂附近转来转去啊?
01
回顾与P-R曲线
我们令一个模型为 f,测试数据为x,第 i 个样本为 x 下标 i【注1】,而第 i 个样本对应的标签为 y 下标 i。

查看原图
我们现在只考虑二分类问题,也就是说标签只可能是“是”或“否”【注2】。如果一个样本的标签是“是”,我们将这个样本称为一个正例,否则我们将其称为一个反例。
对于一个正例,如果我们的模型预测正确,那么我们称这一个样本为一个真正例——因为我们的模型预测它是一个正例,而它的确是一个正例。如果我们的模型预测错误(也就是如果我们的模型预测它是一个反例),我们就将它称为假反例,因为模型预测它是一个反例,但实际上它不是。
对于一个反例,如果我们的模型预测正确,那我们称这一个样本为一个真反例。同样的,如果我们的模型预测错误,我们将它称为假正例。
参考我们的混淆矩阵会更直观一些。
真实情况\预测结果 | 正例 | 反例 |
正例 | TP(真正例) | FN(假反例) |
反例 | FP(假正例) | TN(真反例) |
令查准率(P)为真正例在所有我们模型预测的正例中的占比,而令查全率(R)为真正例在所有正例中的占比。
查准率和查全率之间是有一个冲突的。一个完美的模型查全率和查准率都会是1,但是对于一个不完美的模型来说,查准率越高,查全率越低。考虑两个极端情况:如果想保证查准率高的话,可以只选最有把握的。这样的话,查准率可以很高,但是这样的话,就可能会漏掉很多,查全率就会下来。同样的,如果想让查全率高的话,可以降低筛选的标准,从而让更多的样本判断成正例,但是这样会让查准率降低。

这样的标准是什么呢?在二分类问题中,模型一般会输出一个实值,代表着一个样本是正例的概率。我们之前提到的标准也叫“截断点”。当概率大于这个截断点的时候,模型判断为正例。否则,模型判断为反例。
知道了这些,我们就可以看到,如果我们调整这个标准,我们就可以获得一组查准率和查全率。比如如果我们将标准设在 > 30% 可能性就判断成正例,我们可能得到查准率为 .2,查全率为 .9,而当我们在标准设在 > 70% 可能性就判断成正例,我们可以得到查准率为 .8,查全率为 .3。
我们一般不画“标准”这个坐标轴,而是直接把这个三维图标压缩到二维。这个图称为“P-R图”或是“P-R曲线”。
理想的情况下,我们可以计算P-R曲线下的面积。但是因为这个曲线是实际测出来,我们不知道它的公式,所以很难估算。实际上,我们算一个平衡点,算一个 BEP,是“查准率=查全率”时的取值。
02
F1 和 F beta
然而, BEP 还是过于简化了一些。F1 度量是一个更常用的度量

查看原图
F1 可以一般化,变为 F beta 度量。F beta 度量可以表达查准率和查全率的不同重要性,它定义为

查看原图
其中的 beta 必须大于 0。当 beta = 1 的时候 F beta 就变成了正常的 F1。beta > 1 的时候查全率更重要,beta < 1 的时候查准率更重要。
03
多次测试结果的评价
我们知道在 k 折交叉验证的过程中,我们会做 k 次测试,得到 k 次结果。一种直接的做法是先分别计算出查准率和查全率,再取平均值。这个叫做“宏查准率”、“宏查全率”、“宏 F1”。
还可以先计算每一个测试的 TP、FP、TN、FN,然后再取这些值的平均值。这个叫做“微查准率”、“微查全率”、“微 F1”。

04
统计
现在做一下统计
虽然最近都没什么跟数学有关的内容,相信我,之后会有的 😃。
05
复习
Click here
06
(很短的)注释
【注1】因为每一个样本含有多个特征,所以是一个向量。
【注2】“真”或“假”是一样的。