本文共 3053 字,大约阅读时间需要 10 分钟。
本章前面对一个好的实时机器学习模型的衡量只提到了“优秀” “合适”这样的字眼,本节将会详细展开,讨论监督式实时机器学习模型的衡量标准。
在实际应用中,监督式实时机器学习效果的好坏可以分为统计量是否优秀和应用业绩是否优秀两个方面。下面将按照这两部分分别进行介绍。在讨论技术细节之前,先进行一下符号的定义:给定 n 组已知的自变量和因变量{(Yi, Xi)}ni=1作为测试数据集,对于任意i,我们通过自变量Xi和模型f(Xi; b)预测自变量的数值,得到对因变量的估计。本节下面的所有内容都与讨论 Yi 和的近似程度相关。一个监督式机器学习模型若取得了优秀的统计量成绩,则代表着其预测或分类的误差较小,精确度上比较优秀。对于分类和回归预测这两个问题,我们将定义不同的统计量。这类统计量在现有机器学习软件包中往往具有完备的函数支持,例如Scikit-learn的sklearn.metrics 模块中就含有数十种从统计量角度衡量模型优劣的函数。这里我们选取最常用的几种进行介绍。
(1)均方误差
均方误差 (Mean Square Error,MSE)是统计中最常见的误差衡量单位之一,其定义为:在数学上,均方误差的估计可以追溯到正态分布方差的无偏估计。就算 Yi 实际上不服从正态分布,均方误差仍然具有优良的统计性质。直观上来讲,我们希望通过机器学习模型所得预测的均方误差应尽量小。用 E( )代表对随机变量数学期望的计算,可以将其中一个观测的均方误差分解为两部分:
这里的均方误差可以看作是的估计量,等式右边部分可以分为如下两部分来解读。
估计的方差 估计的方差(variance)刻画的是对因变量预测的变化程度。真实世界里,任何观测和度量都具有随机性,这样的随机性决定了我们对自变量的预测也具有客观存在的随机性。这样的随机性随着机器学习模型估计方法的不同可能会有所不同。估计的系统性偏差 当我们的估计系统性地偏离真实数值的时候,系统性偏差(bias)就会被包含在均方误差中。在理论情况下,如果我们使用了无偏估计,系统性偏差为零,这时均方误差就只与方差有关。当然,在实际应用中,我们的模型或多或少都会有一定的系统性偏差,理想情况就比较难以达到了。比较上面这两点的异同是所有数据科学家面试题目中的必考部分。为了便于大家理解, 这里以图2-1作为例子进行对比。图2-1对比了具有完全相同均方误差的两组数据的估计值和真实值。图2-1a为无偏估计,但是估计方差较大;图2-1b的估计方差较小,但是估计有偏。当然,其实也是可以分别用方差和偏离程度来考量估计的优劣的。但是当我们具有多个统计量的时候,就往往需要通过实际情况进行取舍了。有的时候我们宁愿牺牲无偏估计,以换取估计的稳定性;有的时候我们又需要不顾一切地保证估计的无偏性。(2)绝对误差中位数在实际应用中我们往往会遇到极端值 (outlier)。例如通过父母身高预测小孩身高的时候混入了姚明的身高,通过浏览行为预测网购金额的时候混入了王思聪的购买信息。这个时候由于极端数值的存在,均方误差的计算会大受影响,从而致使我们得到的模型评价的结论也并不贴近实际。为了解决这一问题,统计学家们引入了稳健统计量,提出了绝对误差中位数(MAE)的概念。绝对误差中位数的定义为:
这里不再采用所有误差的均值,而是使用误差绝对值的中位数作为统计量,大大减少了极端观测对最终判断的影响。
图2-2中对比了存在极端值(见图2-1a)和不存在极端值(见图2-1b)的分布。图2-1a和图2-1b都有 300 个观测点,其中图2-1a具有 20 个随机选取的异常点。在不考虑极端观测的情况下,图2-1a和图2-1b的分布是完全相同的。如果使用均方误差进行效果衡量,那么图2-1a为0.298,图2-1b为 0.043,图2-1b明显优于图2-1a;如果用绝对误差中位数进行衡量,那么图2-1a为0.159,图2-1b为 0.136,只是略微优于图2-1a。根据实际应用的经验,极端数值往往是客观存在的,因此,建议读者在进行评价的时候应尽量采用稳健统计量绝对误差中位数。统计学家根据表2-1定义了数十个统计量,本节将介绍最常见的两个统计量,即准确率和召回率。
(1)准确率 (precision) 准确率是指在被机器学习判断为阳性的观测中,真阳性观测所占的比例:准确率刻画的是喊“狼来了”的孩子有多少次喊狼来了的时候是正确的。例如,在实时股票走势预测的场景中,我们假设股价上涨是阳性观测,股价下跌是阴性观测。在通过机器学习模型对其进行分类预测时,准确率的定义就是被预测的走势中,被预测为会上涨的这些观测点中,实际上真正上涨的观测点所占的比例。
(2)召回率 (recall) 召回率是指在真实的阳性观测中,被判断为阳性的观测所占的比例:召回率刻画的是在所有狼来了的历史里面,有多少次牧羊小孩成功地发现了狼。例如,在实时股票走势预测的场景中,我们假设股价上涨是阳性观测,股价下跌是阴性观测。在通过机器学习模型对其进行分类预测时,召回率的定义就是,对于所有实际上涨的这些观测点中,被预测为可能会上涨的观测点所占的比例。
在回归预测的任务中,误差对业务产生的影响往往是不一样的。例如,想要通过建模预测航班售票的情况,若我们预测的乘客数量比实际超出太多,则可能会造成机场安排过多运力,造成浪费;但是当我们预测的乘客数量过少,又会造成超额售票,机场运力不足,这就会对乘客的体验造成影响。这个时候对机器学习模型优劣的判断就需要将不对称的收益考虑进去。
同样,在分类任务中,准确率和召回率是相互竞争的两个统计量。例如,我们如果奉行宁可错杀一百,不可放过一个的思想,将所有股价走势情况都预测为上涨,那么这样我们可以达到 100% 的召回率,但是准确率会变得很低。与此相对,若将所有观测都预测为下跌,这样我们可以达到 100% 的准确率,但是召回率又将变得非常低。所以,真正应用在实际之中时,我们往往需要对相互竞争的统计量进行权衡,选一个合适的中间点作为最终判断的准绳。例如,在股价走势预测建模数据中,我们最后的评判标准可能是:S=(假阳性C1+假阴性C2)/N其中,N为样本总量,C1为每起假阳性事件 (将下跌预测为上涨)带来的损失,C2为每起假阴性事件(将上涨预测为下跌)带来的损失。而最后我们决策的准绳,可能是通过机器学习建模,使得上面的损失函数S尽量小。转载地址:http://jzjix.baihongyu.com/