机器学习模型评估

前言

承接上篇讲述了机器学习有哪些常见的模型算法,以及适用的场景,本篇将继续讲述如何评估模型。模型评估的目的是选出泛化能力强的模型。泛化能力强表示模型能很好地适用于未知的样本,模型的错误率低、精度高。本文将从评估方法和评估指标两方面进行阐述。

几个概念了解一下:

  • 经验误差:模型在训练集上的误差称之为经验误差;
  • 过拟合:模型在训练集上表现的很好,但是在交叉验证集合测试集上表现一般,也就是说模型对未知样本的预测表现一般,泛化(Generalization)能力较差
  • 偏差:通常指的是模型拟合的偏差程度,是真实模型和模型多次拟合出来的平均模型差异。

1. 模型评估方法

1.1 留出法

会从训练数据中保留出验证样本集,这部分数据不用于训练,而用于模型评估。留出法需要注意:

  • 随机划分不一定有效。 如果测试集正好只取到某一种特殊类型数据,会带来额外的误差。一般会对数据分析,尽量保证测试数据的平衡。
  • 单次划分不一定能得到合适的测试集,一般多次重复「划分 - 训练 - 测试求误差」的步骤,取误差的平均值。
  • 划分的验证集,太大或者太小都不合适,常用比例是1/5到1/3。

1.2 交叉验证法(cross validation)

对数据进行K个分组,第i次模型迭代训练用第i组数据作为测试集,其余作为训练集,最终模型损失函数是K次迭代的均值。通常k取10,可跟随数据量大小做调整。

1.3 自助法(Boostrap)

在本身数据量就很小的时候,采用数据截取作为testing,会导致模型失真。这种情况下,Bootstrap通过有放回抽样生成大量的伪样本,通过对伪样本进行计算,获得统计量的分布,从而估计数据的整体分布。自助法极限抽样值约为1/e=0.368

2. 模型评估指标

根据模型算法的不同,评估指标选取也不一样。比如,逻辑回归输出是连续值,分类问题输出的有限分类,聚类问题则输出的是聚类指标等。

2.1 回归指标

2.1.1 平均绝对误差MAE

MAE的计算公式为

MAE= \frac{1}{m}\sum_{i=1}^{m}|f(x_{i})-y_{i}|

优点是可以直观的反应预测值和真实值之间的差异,缺点是不能反映预测的无偏性(无偏就要求估计值的期望就是真实值)。

2.1.2 平均绝对百分误差MAPE

MAPE=\frac{100}{m}\sum_{m=1}^{m}|\frac{f(x_{i})-y_{i}}{y_{i}}|

是对MAE的一种改进,考虑了预测值与真实值的误差。

2.1.3 均方误差MSE

MSE= \frac{1}{m}\sum_{i=1}^{m}|f(x_{i})-y_{i}|^{2}

MAE是绝对值求解,在不光滑函数情况下,某些点上不能求导,所以演进了MSE。MSE同样不能反映预测的无偏性。

2.1.4 RMSE标准误差

RMSE=\sqrt{MSE}

可以更直观的反应观测值同真值之间的偏差。

2.1.5 决定系数R

R表征的是因变量y的变化中有多少可以用自变量x来解释,是回归方程对观测值拟合程度的一种体现。R平方越接近1,说明回归模型的性能越好,即能够解释大部分的因变量变化。

R^{2} = \frac{SSR}{SST} = \frac{SSR}{SSR+SSE}

SSR=\sum_{i}^{m}(f(x_{i})-\tilde{y})^{2}

SST=\sum_{i}^{m}(y_{i}-\tilde{y})^{2}

SSE=\sum_{i}^{m}(f(x_{i})-y_{i})^{2}

SST: 原始数据和均值之差的平方和,反映的是原始数据相对均值的离散程度.

SSR: 预测数据与原始数据均值之差的平方和,反映的是模型相对原始数据均值的离散程度

SSE:残差平方和,原始数据和预测数据之差的平方和

2.1.6 校正决定系数

决定系数无法反应样本数和特征数量的影响,所以衍生出了校正决定系数。

R^{2}_{adjust} = 1-\frac{(1-R^{2})(m-1)}{m-n-1}

其中,m是样本数量,n是特征数量。

2.2 分类问题评估

2.2.1 混淆矩阵

混淆矩阵构成如下表所示:

  • 每一列代表了预测类别,每一列的总数表示预测为该类别的数据的数目。
  • 每一行代表了数据的真实归属类别,每一行的数据总数表示该类别的数据实例的数目。
total population

predict positive(预测为真)

predict negative(预测为假)
condition positive(实际为真)TPFN
condition negative(实际为假)FPTN

 2.2.2 准确率Accuracy

准确率是指预测的结果和实际的结果匹配的占比。

Accuracy=\frac{TP+TN}{TP+TN+FP+FN}

通常情况下,准确率越高,表示模型预测越准确。

2.2.3  精确率Precision

在数据类别严重不均衡的情况下,准确率评估指标并不合理,比如发病率0.1%医疗场景下,如果只追求 Accuracy,模型可以直接预测所有的人都是病人,Accuracy高达99.9%,因此引申出了精确率。

Presicion=\frac{TP}{FP+TP}

2.2.4 Recall 召回率

在金融场景,系统希望筛选出所有的风险用户或行为,宁愿错杀,不可漏掉.

Recall = \frac{TP}{TP+FN}

2.2.5 F1 Score

通常情况下,精确率和召回率都是越高越好,但这两个指标是矛盾的,因此诞生了F1 score来衡量二正的平衡。

F1=\frac{2*Precision*Recall}{Precision+Recall}

2.2.6 ROC曲线

用FPR作为横轴,TPR作为纵轴的曲线图成为ROC曲线,主要用来判断模型是否有过拟合现象。其中FPR=FP/(FP+TN), TPR=TP/(TP+FN)。通常ROC曲线光滑表明模型没有太大的overlifting。

2.2.7 AUC

ROC曲线不能很直观反映模型的性能,而AUC作为ROC曲线的面积值,AUC越大,可直接表明模型的性能越好,排序能力越强。

2.2.8 PRC

以Recall作为横轴,Precision作为纵轴的曲线成为RPC曲线,也是能直接反映分类问题的排序能力。

Accuracy准确率适用于政府样本相当情况
Precision适用于正负样本相差很大情况,不能用于抽样
Recall适用于正负样本相差很大,抽样不敏感
ROC对不平衡数据集不敏感
AUC排序敏感
PRC负样本数量远大于正样本数量时,PRC比AUC更好

参考文献:ShowMeAI知识社区

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/885749.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

汽车3d动画渲染选择哪个?选择最佳云渲染解决方案

面临汽车3D动画渲染挑战?选择正确的云渲染服务至关重要。探索最佳解决方案,优化渲染效率,快速呈现逼真动画。 汽车3d动画渲染选择哪个? 对于汽车3D动画渲染,选择哪个渲染器取决于你的项目需求、预算和期望的效果。Ble…

计算机毕业设计 基于协同过滤算法的个性化音乐推荐系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

<<机器学习实战>>10-11节笔记:生成器与线性回归手动实现

10生成器与python实现 如果是曲线规律的数据集,则需要把模型变复杂。如果是噪音较大,则需要做特征工程。 随机种子的知识点补充: 根据不同库中的随机过程,需要用对应的随机种子: 比如 llist(range(5)) random.shuf…

Ubuntu下安装向日葵:闪退

下载 https://sunlogin.oray.com/download 初次安装 $ sudo dpkg -i SunloginClient_15.2.0.63064_amd64.deb 正在选中未选择的软件包 sunloginclient。 (正在读取数据库 ... 系统当前共安装有 234281 个文件和目录。) 准备解压 SunloginClient_15.2.0.63064_amd64.deb ..…

助农小程序|助农扶贫系统|基于java的助农扶贫系统小程序设计与实现(源码+数据库+文档)

助农扶贫系统小程序 目录 基于java的助农扶贫系统小程序设计与实现 一、前言 二、系统功能设计 三、系统实现 5.1.1 农户管理 5.1.2 用户管理 5.1.3 订单统计 5.2.1 商品信息管理 5.3.1 商品信息 5.3.2 订单信息 5.3.3 商品评价 5.3.4 商品退货 四、数据库设计 1、…

帝都程序猿十二时辰

前言 2019年度国产剧《长安十二时辰》火了,其口碑榜首、节奏紧凑、贴合原著、电影质感,都是这部剧的亮点。而最令人震撼的还是剧中对大唐盛世的还原,长安街坊的市容市貌、长安百姓的生活日常、长安风情的美轮美奂……而关于十二时辰的话题也接…

ubuntu18.04 Anconda安装及使用

1、安装Anaconda 1)下载: 下载链接:https://www.anaconda.com/download#downloads 点击图中Free Download,登录并下在 下载对应版本 2)安装 sudo bash Anaconda3-2024.06-1-Linux-x86_64.sh输入后,直接回车安装。 出…

大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

【SQL】筛选字符串与正则表达式

目录 语法 需求 示例 分析 代码 语法 SELECT column1, column2, ... FROM table_name WHERE condition; WHERE 子句用于指定过滤条件,以限制从数据库表中检索的数据。当你执行一个查询时,WHERE 子句允许你筛选出满足特定条件的记录。如果记录满…

UE学习篇ContentExample解读------Blueprints Advanced-下

文章目录 总览描述批次阅览2.1 Timeline animation2.2 Actor tracking2.3 Button Trigger using a blueprint interface2.4 Opening door with trigger2.5 Child Blueprints 概念总结致谢: 总览描述 打开关卡后,引入眼帘的就是针对关卡的总体性文字描述&…

五子棋双人对战项目(1)——WebSocket介绍

目录 一、项目介绍 如何实现实时同步对局? 二、WebSocket 1、什么是WebSocket? 2、WebSocket的报文格式 opcode payload len payload data 3、WebSocket握手过程 4、WebSocket代码的简单编写 三、WebSocket 和 HTTP的关系 1、相同点&#xf…

从 Kafka 到 WarpStream: 用 MinIO 简化数据流

虽然 Apache Kafka 长期以来一直是流数据的行业标准,但新的创新替代方案正在重塑生态系统。其中之一是 WarpStream,它最近在 Confluent 的所有权下进入了新的篇章。此次收购进一步增强了 WarpStream 提供高性能、云原生数据流的能力,巩固了其…

Iceberg 基本操作和快速入门

安装 Iceberg 是一种适用于大型分析表的高性能工具,通过spark启动并运行iceberg,文章是通过docker来进行安装并测试的 新建一个docker-compose.yml文件 文件内容 version: "3" services: spark-iceberg: image: tabulario/spark-iceberg co…

GS-SLAM论文阅读笔记--MM3DGS SLAM

前言 多传感器融合GS-SLAM的另一个IROS2024,不过这篇没有用到激光雷达,而是相机和IMU结合而实现的。今天看一下这篇。 文章目录 前言1.背景介绍2.关键内容2.1 跟踪2.2 深度监督2.3 惯性融合2.4建图2.5 总体流程 3.文章贡献4.个人思考 1.背景介绍 虽然SLAM方法使用…

计算神经学笔记01

- **The term neuromorphic is generally used to describe analog, digital, mixed-mode analog/digital VLSI, and software systems that implement several models of neural systems.** - 神经形态一词通常用于描述模拟、数字、混合模式的模拟/数字超大规模集成电路&…

记录|Modbus-TCP产品使用记录【摩通传动】

目录 前言一、摩通传动实验图1.1 配置软件 IO_Studio1.2 测试软件Modbus Poll1.2.1 读写设置测试1.2.2 AI信号的读取 1.3 对应的C#连接Modbus的测试代码如下【自制,仅供参考】1.4 最终实验图 更新时间 前言 参考文章: 自己需要了解和对比某些产品的Modbu…

C++基础---类和对象(上)

1.类的定义 C程序设计允许程序员使用类(class)定义特定程序中的数据类型。这些数据类型的实例被称为对象 ,这些实例可以包含程序员定义的成员变量、常量、成员函数,以及重载的运算符。语法上,类似C中结构体&#xff0…

3D建模软件 | Blender v4.2.2 绿色版

Blender是一款功能强大的免费开源3D创作套件,适用于创建3D可视化效果,如静态图像、3D动画、视觉特效以及视频编辑。Blender以其跨平台兼容性、高效内存管理、统一的工作流程和活跃的社区支持而受到独立艺术家和小型工作室的青睐。 它提供了从建模、渲染…

10.2 Linux_并发_进程相关函数

创建子进程 函数声明如下: pid_t fork(void); 返回值:失败返回-1,成功返回两次,子进程获得0(系统分配),父进程获得子进程的pid 注意:fork创建子进程,实际上就是将父进程复制一遍作为子进程&…

智慧防灾,科技先行:EasyCVR平台助力地质灾害视频监测系统建设

随着科技的飞速发展,视频监控技术已成为地质灾害监测与预警的重要手段之一。在众多视频监控平台中,EasyCVR视频汇聚平台凭借其强大的视频整合、实时传输、视频处理及分发等能力,在地质灾害场景中展现出显著的应用优势。 一、实时监测与远程监…