《构建实时机器学习系统》一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尽量小。

相关文章
|
1天前
|
机器学习/深度学习 算法 异构计算
构建高效机器学习模型的策略与实践
【5月更文挑战第8天】 随着数据科学领域的不断进步,机器学习(ML)已成为解决复杂问题的重要工具。然而,构建一个既高效又准确的ML模型并非易事。本文将详细探讨在设计和训练机器学习模型时可以采用的一系列策略,以优化其性能和效率。我们将讨论特征工程的重要性、选择合适的算法、调整参数以及评估模型的有效性。通过这些策略,读者将能够更好地理解如何提升模型的预测能力并避免常见的陷阱。
|
2天前
|
机器学习/深度学习 算法 数据挖掘
【机器学习】各大模型原理简介
【机器学习】各大模型原理简介
|
4天前
|
机器学习/深度学习 数据采集 人工智能
构建高效机器学习模型:从数据预处理到性能优化
【5月更文挑战第6天】 在机器学习领域,构建一个高效的模型并非一蹴而就的过程。它要求开发者具备从数据预处理、特征工程到算法选择和性能调优的全面技能。本文将深入探讨如何通过精确的数据处理流程、细致的特征提取以及先进的模型调优技巧来提升机器学习模型的准确性和效率。我们将分享实用的技术策略,并通过案例分析展示如何应对过拟合、欠拟合以及其他常见的性能瓶颈。
21 6
|
6天前
|
机器学习/深度学习 算法 数据可视化
如何选择正确的机器学习模型?
【5月更文挑战第4天】如何选择正确的机器学习模型?
22 4
|
6天前
|
机器学习/深度学习 算法
构建高效机器学习模型的五大关键技术
【5月更文挑战第3天】 在数据驱动的时代,机器学习已经成为挖掘信息、预测未来和优化决策的关键工具。本文将深入探讨构建高效机器学习模型的五大关键技术:特征工程、模型选择、超参数调优、集成学习和模型评估。这些技术不仅能够提高模型的性能,还能确保模型的泛化能力和可解释性。
|
7天前
|
机器学习/深度学习 数据采集 搜索推荐
机器学习中的特征工程:提升模型性能的关键步骤
【5月更文挑战第3天】特征工程是提升机器学习模型性能的关键,涉及从原始数据中提取、选择和创造特征。它能提高模型预测准确率,简化模型复杂度,增强泛化能力。常用技术包括特征选择(Filter、Wrapper、Embedded方法)、特征构造(组合、多项式、文本特征提取)和特征变换(标准化、归一化、离散化)。通过优化特征工程,可找到最佳特征组合,提升模型性能。
|
8天前
|
机器学习/深度学习 数据采集 算法
构建高效机器学习模型的最佳实践
【5月更文挑战第2天】 在数据驱动的时代,机器学习已成为智能系统不可或缺的组成部分。本文将深入探讨构建高效机器学习模型的策略,包括数据预处理、特征工程、模型选择、调参技巧以及模型评估方法。我们将通过实际案例分析,揭示如何避免常见陷阱,并利用最佳实践提高模型的性能和泛化能力。文章旨在为从业者提供一套实用的技术指南,帮助他们在面对复杂数据时能够做出明智的决策,并最终实现机器学习项目的高效落地。
|
9天前
|
机器学习/深度学习 运维 持续交付
构建高效自动化运维体系:Ansible与Docker的完美结合构建高效机器学习模型的五大技巧
【4月更文挑战第30天】 在当今快速发展的云计算和微服务架构时代,自动化运维已成为维持系统稳定性和提高效率的关键。本文将探讨如何通过结合Ansible和Docker技术构建一个高效的自动化运维体系。文章不仅介绍了Ansible与Docker的基本原理和优势,还详细阐述了如何整合这两种技术以简化部署流程、加强版本控制,并提高整体运维效率。通过案例分析,我们将展示这一组合在实际环境中的应用效果,以及它如何帮助企业实现持续集成和持续部署(CI/CD)的目标。 【4月更文挑战第30天】 在数据驱动的时代,构建一个高效的机器学习模型是获取洞察力和预测未来趋势的关键步骤。本文将分享五种实用的技巧,帮助数
|
9天前
|
机器学习/深度学习 算法 数据挖掘
构建高效机器学习模型的五大技巧
【4月更文挑战第30天】 在数据科学领域,构建一个高效的机器学习模型是实现精准预测与分析的核心。本文将深入探讨提升模型效能的五个关键技巧:特征工程、模型选择、超参数调优、正则化技术以及交叉验证。通过这些方法的综合应用,读者可以显著提高其机器学习项目的准确率和泛化能力。
|
9天前
|
机器学习/深度学习 数据采集 前端开发
【Python机器学习专栏】模型泛化能力与交叉验证
【4月更文挑战第30天】本文探讨了机器学习中模型泛化能力的重要性,它是衡量模型对未知数据预测能力的关键。过拟合和欠拟合影响泛化能力,而交叉验证是评估和提升泛化能力的有效工具。通过K折交叉验证等方法,可以发现并优化模型,如调整参数、选择合适模型、数据预处理、特征选择和集成学习。Python中可利用scikit-learn的cross_val_score函数进行交叉验证。

热门文章

最新文章