《构建实时机器学习系统》一2.2 怎样衡量监督式机器学习模型

简介: 本节书摘来自华章出版社《构建实时机器学习系统》一 书中的第2章,第2.2节,作者:彭河森 汪涵,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.2 怎样衡量监督式机器学习模型

本章前面对一个好的实时机器学习模型的衡量只提到了“优秀” “合适”这样的字眼,本节将会详细展开,讨论监督式实时机器学习模型的衡量标准。
在实际应用中,监督式实时机器学习效果的好坏可以分为统计量是否优秀和应用业绩是否优秀两个方面。下面将按照这两部分分别进行介绍。
在讨论技术细节之前,先进行一下符号的定义:
给定 n 组已知的自变量和因变量{(Yi, Xi)}ni=1作为测试数据集,对于任意i,我们通过自变量Xi和模型f(Xi; b)预测自变量的数值,得到对因变量的估计。
本节下面的所有内容都与讨论 Yi 和的近似程度相关。

2.2.1 统计量的优秀

一个监督式机器学习模型若取得了优秀的统计量成绩,则代表着其预测或分类的误差较小,精确度上比较优秀。对于分类和回归预测这两个问题,我们将定义不同的统计量。这类统计量在现有机器学习软件包中往往具有完备的函数支持,例如Scikit-learn的sklearn.metrics 模块中就含有数十种从统计量角度衡量模型优劣的函数。这里我们选取最常用的几种进行介绍。

  1. 衡量回归预测的统计量
    在回归、预测等场景中,因变量 Y 往往为连续变量。例如,我们可能会通过父母的身高预测子女成年后的身高,也可能通过社交舆情数据预测当日股票收盘时期的涨跌幅。这里的身高、涨跌幅都是连续变量,我们对其的预测值需要尽量接近真实观测值。为了达到这样的目的,常用的统计量有以下几种。

(1)均方误差
均方误差 (Mean Square Error,MSE)是统计中最常见的误差衡量单位之一,其定义为:
screenshot

在数学上,均方误差的估计可以追溯到正态分布方差的无偏估计。就算 Yi 实际上不服从正态分布,均方误差仍然具有优良的统计性质。直观上来讲,我们希望通过机器学习模型所得预测的均方误差应尽量小。用 E( )代表对随机变量数学期望的计算,可以将其中一个观测的均方误差分解为两部分:
screenshot

这里的均方误差可以看作是的估计量,等式右边部分可以分为如下两部分来解读。
估计的方差 估计的方差(variance)刻画的是对因变量预测的变化程度。真实世界里,任何观测和度量都具有随机性,这样的随机性决定了我们对自变量的预测也具有客观存在的随机性。这样的随机性随着机器学习模型估计方法的不同可能会有所不同。
估计的系统性偏差 当我们的估计系统性地偏离真实数值的时候,系统性偏差(bias)就会被包含在均方误差中。在理论情况下,如果我们使用了无偏估计,系统性偏差为零,这时均方误差就只与方差有关。当然,在实际应用中,我们的模型或多或少都会有一定的系统性偏差,理想情况就比较难以达到了。
比较上面这两点的异同是所有数据科学家面试题目中的必考部分。为了便于大家理解, 这里以图2-1作为例子进行对比。图2-1对比了具有完全相同均方误差的两组数据的估计值和真实值。图2-1a为无偏估计,但是估计方差较大;图2-1b的估计方差较小,但是估计有偏。当然,其实也是可以分别用方差和偏离程度来考量估计的优劣的。但是当我们具有多个统计量的时候,就往往需要通过实际情况进行取舍了。有的时候我们宁愿牺牲无偏估计,以换取估计的稳定性;有的时候我们又需要不顾一切地保证估计的无偏性。
(2)绝对误差中位数
在实际应用中我们往往会遇到极端值 (outlier)。例如通过父母身高预测小孩身高的时候混入了姚明的身高,通过浏览行为预测网购金额的时候混入了王思聪的购买信息。这个时候由于极端数值的存在,均方误差的计算会大受影响,从而致使我们得到的模型评价的结论也并不贴近实际。

screenshot

为了解决这一问题,统计学家们引入了稳健统计量,提出了绝对误差中位数(MAE)的概念。绝对误差中位数的定义为:
screenshot

这里不再采用所有误差的均值,而是使用误差绝对值的中位数作为统计量,大大减少了极端观测对最终判断的影响。
图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。
根据实际应用的经验,极端数值往往是客观存在的,因此,建议读者在进行评价的时候应尽量采用稳健统计量绝对误差中位数。

  1. 衡量分类的统计量
    在分类等任务中,因变量 Y 往往是离散变量。例如我们可能会通过用户的浏览行为预测点击具体页面的概率,这里最后得到的标签实际上是点击或不点击,是一个离散变量。也可能通过文字对话判断参与用户的性别,这里用户的性别往往也是离散变量。对于这样的分类问题,特别是分为两类的问题,我们往往会对实际标签和预测值进行分类,让其定义为阳性 (例如点击、男性)和阴性 (例如不点击、女性),于是我们可以得到表2-1所示的内容。

screenshot

screenshot

统计学家根据表2-1定义了数十个统计量,本节将介绍最常见的两个统计量,即准确率和召回率。
(1)准确率 (precision)
准确率是指在被机器学习判断为阳性的观测中,真阳性观测所占的比例:
screenshot

准确率刻画的是喊“狼来了”的孩子有多少次喊狼来了的时候是正确的。例如,在实时股票走势预测的场景中,我们假设股价上涨是阳性观测,股价下跌是阴性观测。在通过机器学习模型对其进行分类预测时,准确率的定义就是被预测的走势中,被预测为会上涨的这些观测点中,实际上真正上涨的观测点所占的比例。
(2)召回率 (recall)
召回率是指在真实的阳性观测中,被判断为阳性的观测所占的比例:
screenshot

召回率刻画的是在所有狼来了的历史里面,有多少次牧羊小孩成功地发现了狼。例如,在实时股票走势预测的场景中,我们假设股价上涨是阳性观测,股价下跌是阴性观测。在通过机器学习模型对其进行分类预测时,召回率的定义就是,对于所有实际上涨的这些观测点中,被预测为可能会上涨的观测点所占的比例。

2.2.2 应用业绩的优秀

在回归预测的任务中,误差对业务产生的影响往往是不一样的。例如,想要通过建模预测航班售票的情况,若我们预测的乘客数量比实际超出太多,则可能会造成机场安排过多运力,造成浪费;但是当我们预测的乘客数量过少,又会造成超额售票,机场运力不足,这就会对乘客的体验造成影响。这个时候对机器学习模型优劣的判断就需要将不对称的收益考虑进去。
同样,在分类任务中,准确率和召回率是相互竞争的两个统计量。例如,我们如果奉行宁可错杀一百,不可放过一个的思想,将所有股价走势情况都预测为上涨,那么这样我们可以达到 100% 的召回率,但是准确率会变得很低。与此相对,若将所有观测都预测为下跌,这样我们可以达到 100% 的准确率,但是召回率又将变得非常低。所以,真正应用在实际之中时,我们往往需要对相互竞争的统计量进行权衡,选一个合适的中间点作为最终判断的准绳。
例如,在股价走势预测建模数据中,我们最后的评判标准可能是:
S=(假阳性C1+假阴性C2)/N
其中,N为样本总量,C1为每起假阳性事件 (将下跌预测为上涨)带来的损失,C2为每起假阴性事件(将上涨预测为下跌)带来的损失。而最后我们决策的准绳,可能是通过机器学习建模,使得上面的损失函数S尽量小。

相关文章
|
4天前
|
机器学习/深度学习 数据采集
机器学习入门——使用Scikit-Learn构建分类器
机器学习入门——使用Scikit-Learn构建分类器
|
6天前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的线性回归模型
本文深入探讨了机器学习中广泛使用的线性回归模型,从其基本概念和数学原理出发,逐步引导读者理解模型的构建、训练及评估过程。通过实例分析与代码演示,本文旨在为初学者提供一个清晰的学习路径,帮助他们在实践中更好地应用线性回归模型解决实际问题。
|
15天前
|
机器学习/深度学习 自然语言处理 Linux
Linux 中的机器学习:Whisper——自动语音识别系统
本文介绍了先进的自动语音识别系统 Whisper 在 Linux 环境中的应用。Whisper 基于深度学习和神经网络技术,支持多语言识别,具有高准确性和实时处理能力。文章详细讲解了在 Linux 中安装、配置和使用 Whisper 的步骤,以及其在语音助手、语音识别软件等领域的应用场景。
47 5
|
15天前
|
机器学习/深度学习 数据采集 监控
如何使用机器学习模型来自动化评估数据质量?
如何使用机器学习模型来自动化评估数据质量?
|
12天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
42 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
16天前
|
机器学习/深度学习 数据采集 搜索推荐
利用Python和机器学习构建电影推荐系统
利用Python和机器学习构建电影推荐系统
32 1
|
16天前
|
机器学习/深度学习 算法 PyTorch
用Python实现简单机器学习模型:以鸢尾花数据集为例
用Python实现简单机器学习模型:以鸢尾花数据集为例
40 1
|
1月前
|
数据采集 移动开发 数据可视化
模型预测笔记(一):数据清洗分析及可视化、模型搭建、模型训练和预测代码一体化和对应结果展示(可作为baseline)
这篇文章介绍了数据清洗、分析、可视化、模型搭建、训练和预测的全过程,包括缺失值处理、异常值处理、特征选择、数据归一化等关键步骤,并展示了模型融合技术。
66 1
模型预测笔记(一):数据清洗分析及可视化、模型搭建、模型训练和预测代码一体化和对应结果展示(可作为baseline)
|
25天前
|
机器学习/深度学习 数据采集 Python
从零到一:手把手教你完成机器学习项目,从数据预处理到模型部署全攻略
【10月更文挑战第25天】本文通过一个预测房价的案例,详细介绍了从数据预处理到模型部署的完整机器学习项目流程。涵盖数据清洗、特征选择与工程、模型训练与调优、以及使用Flask进行模型部署的步骤,帮助读者掌握机器学习的最佳实践。
68 1
|
28天前
|
机器学习/深度学习 数据采集 监控
如何使用机器学习模型来自动化评估数据质量?
如何使用机器学习模型来自动化评估数据质量?

热门文章

最新文章

下一篇
无影云桌面