机器学习学习笔记(1) | 您所在的位置:网站首页 › 混淆矩阵总体精度计算公式怎么算 › 机器学习学习笔记(1) |
本文是我在阅读西瓜书的时候的一些学习笔记和少许理解,更多的我个人觉得算是抛砖引玉吧,如果有误,请麻烦纠正。 顺带说一句,自从看了《西瓜书》,再也不愁出去买到烂瓜了。 本文内容是机器学习算法的性能度量,西瓜书上对性能度量的定义是:衡量模型泛化能力的评价标准。简单来说就是我们要怎样评价这个算法的优劣。 目录 一、混淆矩阵二、错误率与精度1. 错误率2. 精度 三、准确率、召回率与F1度量1. 准确率2. 召回率3. F1度量 四、参考 一、混淆矩阵混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示[摘自百度百科]。 我们就借鉴书上的二分类混淆矩阵(如果是n分类,那么就是n×n的矩阵),如图所示: 从上面我们看得出来TP、FP、FN、TN是相互独立的,因为不可能有个瓜预测出来既是好瓜又是烂瓜对吧,所以样本总数 = TP + FP + FN + TN。 1. 错误率西瓜书上对错误率的定义是:分类错误的样本数占样本总数的比例。 对离散的样例集D,分类错误率为: 而对于连续的数据分布D和概率密度p(·),错误率为: 西瓜书上对精度的定义是:分类正确的样本数占样本总数的比例。 对离散的样例集D,分类精度为: 而对于连续的数据分布D和概率密度p(·),精度为: 如果我们使用混淆矩阵来描述精度,那么如下: 书上更多的是写的“查准率”(precision)和“查全率”(recall),但是我查了些资料,更多的都是写的准确率与召回率,所以我下面都是些准确率和召回率。 由于书上并没有直接给出准确率和召回率的定义,所以我们不妨先看看他们的公式,再来进行理解。 1. 准确率准确率的公式如下:
召回率的公式如下: 书上写了这么一句话:查准率(准确率)和查全率(召回率)是一对矛盾的度量。一般来说,查准率(准确率)高时,查全率(召回率)往往偏低;而查全率(召回率)高时,查准率(准确率)往往偏低。 这句话我们结合上样本总数 = TP + FP + FN + TN这个公式来思考,因为在TP相同的情况下,FP高了,那么FN和TN肯定会变小,FN高了,那么FP和TN肯定会变小。 但是我们对一个算法的评估,不可能单单只考虑某一个方面的性能,所以我们需要综合考虑准确率和召回率的性能度量,于是就有了平衡点和F1度量。 平衡点很简单,就是准确率 = 召回率的点,比较这几个点与原点之间的欧氏距离得到的大小,越大的越优。 但是这样又会引出一个问题,比如有的算法更倾向于准确率,有的算法更倾向于召回率(详见书32页例子),那么这么一个简单的考虑方法显然就不适用了,于是就引出了F1度量。 F1度量是基于准确率和召回率的调和平均数的倒数由来的,其原本的公式如下: 假设你发现脱发严重,你在家门口扫了架自行车飞到了超市买了瓶霸王,然后心满意足慢慢的走回家,求这个过程你的速度的平均数。 首先我们肯定不可能使用算数平均数,因为来回的速度是完全不同的,连近似都不算,几何平均数也不可能,因为我们不是考虑连续乘积的问题,这时就要使用调和平均数。 因为调和平均数有惩罚机制,会更靠近较小值(重视较小值),从上面例子来看,长度一样,前者时间短,速度快,后者时间长,速度慢,那么对于速度的平均数肯定更靠近于小的这个速度,那么取个倒数,大的值就变小,小的值就变大,所以这个就更趋近于我们想要的结果。 而对于我们这个性能度量问题来说,我们肯定是综合考虑准确率和召回率,那么我们引入这样的惩罚机制就不会使得过小的值发不出声音,从而使评估变得更准确。 当然,书上还有Fβ这个加权调和平均,主要是能够更好地衡量召回率与准确率的平均值。(我个人认为在实际运用中这个β其实也可以在算法中训练,看算法更倾向于召回率还是准确率) 附:关于F1度量书上公式的推导过程如下: [1]周志华.机器学习[M].清华大学出版社:北京,2016:28. [2]论智.调和平均数的含义[EB/OL].https://www.zhihu.com/question/23096098/answer/513277869,2018-10-18. |
CopyRight 2018-2019 实验室设备网 版权所有 |