【科技小数据】这些让人头大的概念一文全讲清楚,召回、精确、准确

今天是机器学习真题的第17篇文章 , 我们来讲讲机器学习模型的评估 。
在之前的文章当中我们已经介绍了好几个模型了 , 有朴素贝叶斯、KNN、KMeans、EM还有线性回归和逻辑回归 。 今天我们来和大家聊聊该怎么评估这些模型 。
均方差
这个概念很简单 , 它和回归模型当中的损失函数是一样的 。 可以理解成我们预测值和真实值之间的偏差 , 我们用y表示样本的真实值 , y_表示模型的预测值 , 那么均方差可以写成:
这里的m是样本的数量 , 是一个常数 , 我们也可以忽略 , 如果忽略的话就是平方差和 , 好像并没有一个专门的术语 。 而且如果不算均值的话 , 可能这个和会很大 , 所以通常我们会计算均值 。
这里的MSE是meansquareerror的缩写 , 也就是平均方差的意思 。 我们都知道方差在统计学当中表示样本距离均值的震荡程度 , 方差越大 , 表示一个指标越不稳定 , 波动幅度越大 。 在回归模型的场景当中 , 我们衡量的不是距离均值的离散程度 , 而是距离实际值的离散程度 。 这两者的含义非常近似 , 应该不难理解 。
均方差越小说明模型距离真实值越接近 , 所以它既可以作为模型训练时候的损失函数 , 又可以作为我们人工审查模型效果的参考 。
回归模型一般使用的指标就是均方差 , 而分类模型则要复杂得多 , 会涉及好几个指标 , 我们一个一个来看 。
TP,TN,FP和FN
这四个值看起来傻傻分不清楚 , 但是一旦我们理解了它们的英文 , 其实很好懂 。 T表示true , 也就是真 , 那么F自然表示false , 也就是假 。 P表示positive , 可以理解成阳性 , N就是negative , 就是阴性 。 这里的阴阳没有逻辑上的含义 , 表示的只是类别 , 我们也可以理解成01或者是甲乙 , 因为没有逻辑因素 , 所以叫什么都一样 。
所以这四个就是真假和阴阳的排列组合 , 有T的都表示真 , 可以理解成预测正确 。 比如TP就是真阳 , 也就是说检测是阳性 , 实际上也是阳性 。 同理 , TN就是真阴 , 检测是阴性 , 实际上也是阴性 。 有F则表示预测错误 , FP是假阳 , 也就是检测是阳性 , 但是实际上是阴性 , 表示检测错了 。 同理 , FN是假阴 , 检测是阴性 , 但是实际上是阳性 。
我们用医院检测代入这几个值当中一下就理解了 , TP和TN表示检测试剂给力 , 检测准确 , 检测是阴就是阴 , 是阳就是阳 。 而FP和FN说明检测试剂不行 , 检测错了 , 要么就把没病的检测出了有病 , 要么就是明明有病没检测出来 。 显然在医疗检测的场景当中 , 假阳是可以接受的 , 假阴不行 。 因为假阳我们还可以再检测 , 来确定究竟是阴还是阳 , 如果假阴放过了病例会对病人产生不好的影响 , 所以一般来说医疗检测试剂都会比标准更加敏感 , 这样才能尽量不放过漏网之鱼 。
召回率
召回率的英文是recall , 我觉得这个词翻译得很好 , 中文的意思和英文基本一致 , 也有的教材当中翻译成查全率 , 我感觉差了点意思 , 还是叫召回率更加信雅达一些 。
我们假设一个场景 , 比如说甲是一个排长 , 手下有10个小兵 , 有一个任务需要甲召集所有成员去执行 。 甲一声令下 , 召来了8个 。 那么召回率就是80% 。 我们放入机器学习的场景当中去也是一样的 , 在二分类场景当中 , 一般情况下模型考虑的主要都是正例 。 可以理解成沙里淘金 , 负例就是沙 , 一般价值不大 , 而金子就是正例 , 就是我们需要的 。 所以召回率就是我们预测准确的正例占所有正例的比例 。
我们把上面的TP、TN、FP和FN代入计算 , 我们可以得到:
TP就是我们预测准确的正例 , 也就是被我们召回的部分 , 那么所有的正例有多少呢?答案是召回的正例加上没有召回的正例 , 没有召回的正例说明预测错了 , 预测成负例了 。 但是它们并不是负例 , 所以就是假阴性的样本 , 自然也就是FN 。 这里有一点点绕 , 关键点是召回是针对正例的 , 不操心负例的情况 。 就好比你去淘金 , 你显然不会关心沙子的情况 , 只会关心金子有没有捞到 , 一个意思 。