机器学习性能度量-----查全率和查准率
算法改进过程中,设定某个数值评估你的学习算法,并衡量它的表现,有了算法的评估和误差度量值。对算法的改进是十分重要的。但是有一件重要的事情要注意,就是使用一个合适的误差度量值,这有时会对于你的学习算法造成非常微妙的影响。
性能度量
对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评估标准,这就是性能度量(performance measure).
性能度量反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果:这意味着模型的“好坏”是相对的,什么样的模型是好的,不仅取决于算法和数据,还决定于任务需求。
回归任务最常用的性能度量是“均方误差”(mean squared rror)
分类任务中常用的性能度量.
错误率与精度
错误率和精度,这是分类任务中最常用的两种性能度量,既适用于二分类任务,也适用于多分类任务.
错误率是分类错误的样本数占样本总数的比例,精度则是分类正确的样本数占样本总数的比例、对样例集D、分类错误率定义为:
更一般的,对于数据分布D和概率密度函数P().错误率与精度可分别描述为:
查准率、查全率与F1
错误率与精度虽然常用,但并不能满足所有任务需求,
例如我们希望用算法来预测癌症是否是恶性的,在我们的训练集中,只有 0.5%的实例是恶性肿瘤。假设我们编写一个非学习而来的算法,在所有情况下都预测肿瘤是良性的,那么误差只有 0.5%。然而我们通过训练而得到的神经网络算法却有 1%的误差。这时,误差的大小是不能视为评判算法效果的依据的。
类似的在挑选西瓜的时候,我们更关心的是“挑出的西瓜有多少比例是好瓜”或者“所有好瓜中有多少比例被挑了出来”,此时显然错误率也不能作为性能度量。还有web搜索等,我们更关心的是“检索出来的信息中有多少比例是用户感兴趣的”。
“查准率”(precision)与“查全率”(recall)是更适用于此类需求的性能度量
查准率(Precision)和 查全率(Recall) 我们将算法预测的结果分成四种情况:
- 正确肯定(True Positive,TP):预测为真,实际为真
- 正确否定(True Negative,TN):预测为假,实际为假
- 错误肯定(False Positive,FP):预测为真,实际为假
- 错误否定(False Negative,FN):预测为假,实际为真
则:
查准率 P=TP/(TP+FP)。例,在所有我们预测有恶性肿瘤的病人中,实际上有恶性肿瘤的病人的百分比,越高越好。
查全率 R=TP/(TP+FN)。例,在所有实际上有恶性肿瘤的病人中,成功预测有恶性肿瘤的病人的百分比,越高越好。
这样对于上面的例子中,预测所有肿瘤都是良性的来说,虽然错误率可以达到很低,但是查全率就等于0;
查准率和查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。
在很多应用中,我们希望能够保证查准率和召回率的相对平衡。常用的是F1度量:
在一些应用中,对查全率和查准率的重视程度有所不同。例如在商品推荐系统中,为了少打扰用户,更希望推荐的内容是用户感兴趣的,此时更注重查准率。而在逃犯信息检索系统中,更希望尽可能少漏掉逃犯,此时查全率更重要。的一般形式:
其中度量了查全率对查准率的相对重要性,就是标准的F1,时查全率有更大影响,查准率有更大影响。
参考:
《机器学习》周志华著。
吴恩达 coursera机器学习课程