风控模型别只会KS、AUC了,来看看其他衡量模型好坏的一些重要指标吧|含实操

news/2024/3/29 13:16:10/文章来源:https://blog.csdn.net/weixin_45545159/article/details/127252085

当我们训练好一个机器学习模型之后,必然会对模型的综合性能进行评估,针对分类、回归、聚类等不同类型的算法模型,可以采用相关的评价指标,例如分类模型的Accuracy、KS等;回归模型的MAE、MSE等;聚类模型的SSE、HE等。对于以上不同维度的模型评估指标,虽然与模型的具体类型直接相关,而且从概念理解与数据分析上有较大区别,但模型综合性能的好坏程度与优劣对比,本质上还是模型的误差表现。因此,模型误差的指标是我们最需要明确的重点,这也是为什么在模型训练阶段需要重点关注模型训练误差的核心思想,毕竟误差是模型学习能力与泛化能力的直接体现。
模型误差指标是目标变量真实值与预测值的客观结果,对于回归模型是最能体现误差性能的算法模型。针对机器学习算法的回归场景,最熟悉的莫过于线性回归模型,而评价其综合效果的指标常见的有R2、MAE、MSE、MAPE等。其实,若需更全面量化并评估模型的误差程度,可以扩展到更多细化维度。本文围绕以上实际场景,给各位小伙伴全面梳理介绍下模型误差指标的多元化实现过程,共包含20个维度的误差指标,除了相对较为熟悉的MAE(平均绝对误差)、MSE(均方误差)等之外,还包括MADE(中位数绝对误差)、NAE(标准化绝对误差)、RAE(相对绝对值误差)、SMAPE(对称平均绝对百分比误差)等。
为了便于大家对模型多维误差指标的深入理解与全面掌握,我们将结合具体的实例样本数据,来拟合训练一个线性回归模型,然后通过Python代码来依次实现各个误差指标的加工过程,最后汇总各模型指标的分析结果,来综合评价模型的拟合训练效果与综合学习能力。

1、样本数据介绍
本文选取的测试数据包含5000条样本和8个字段,具体样例如图1所示。其中。ID为样本主键;X1~X6为特征变量,取值类型均为数值型;Y为目标变量,分布类型为连续型,满足回归模型的标签条件,我们将采用传统机器学习算法线性回归LinR来建立回归模型。
在这里插入图片描述

                                                             图1 样本数据样例

建模样本数据的简单描述性统计分析如图2所示,详细展示了特征变量的count(非缺失值数量)、mean(平均值)、max(最大值)、min(最小值)、std(标准差)、50%(中位数)等常见统计指标。通过指标count结果可知,特征X1~X6均存在不同程度的缺失情况,例如字段X1的缺失率为(5000-4449)/5000=11.02%,X2的缺失率为(5000-4990)/5000=0.2%。
在这里插入图片描述
图2 特征分布描述

由于线性回归算法在模型训练过程中不能直接处理缺失值,因此在数据预处理环节需要对特征变量的缺失值进行处理,由于各字段的类分布型均为连续型,可以采用常规的平均值方法来进行填充,具体实现过程如图3所示。为了验证特征的缺失值得到有效处理,可以通过isnull().sum()函数来查看各字段的缺失情况。
在这里插入图片描述
图3 特征缺失值处理

2、回归模型建立
当建模样本完成数据预处理后,我们首先来训练一个完整的线性回归模型,算法参数均采用默认值,然后采用模型predict()来输出样本的预测结果pred_Y,最后通过样本的真实标签data_Y与预测标签pred_Y,导出我们日常建立回归模型时接触最多的几个评价指标,例如MAE、MAPE、MSE、RMSE等。以上模型训练、模型评估的具体实现过程分别如图4、图5所示,
在这里插入图片描述
图4 模型拟合训练


在这里插入图片描述
图5 模型预测评估

通过上图模型评估输出的模型性能指标结果可知,MAE=0.1150、MAPE=0.2684、MSE=0.0256、RMSE=0.1599,当前模型的整体效果表现尚可。

3、模型误差指标
上文的数据预处理、模型训练、模型预测等流程,主要目的是为了接下来全面分析模型误差指标做准备的。我们先将模型的20大误差评价指标进行一个全貌展示,具体如图6所示。
在这里插入图片描述
图6 模型误差指标概览

对于以上模型的各误差指标,取值越接近于0说明模型的准确效果越好。虽然针对图6的少数几个指标(MAE、MSE等)是我们日常建模习惯采用的,但对于模型性能的综合评估,本质上是可以扩展更多评价思路与实现方法,显然这对模型开发及其应用是非常有意义的,接下来我们围绕图6的指标列表,通过Python代码来依次实现。由于指标较多代码零碎,我们将各指标的实现过程统一展现,具体如图7~图11。
在这里插入图片描述
图7 模型误差指标实现1

在这里插入图片描述
图8 模型误差指标实现2

在这里插入图片描述
图9 模型误差指标实现3

在这里插入图片描述
图10 模型误差指标实现4

在这里插入图片描述
图11 模型误差指标实现5

在以上20大误差指标体系中,其中SE(Simple Error,样本误差)、SPE(Simple Percentage Error,样本误差百分比)这2个维度为样本个体指标,也就是当前测试数据有多少样本,对应输出相同数量的误差数值,体现的是单个样本数据的误差情况。对于其他18个维度的误差指标,均为模型总体评价指标,输出结果是单一数值,直接体现模型的整体性能。针对以上18个综合型误差指标,我们可以采用excel小工具,通过可视化形式对模型各误差指标进行展现,这里选取部分指标(MAE、MAPE、MSE、RMSE、NRMSE、MDAE、MDAPE、SMAPE、SMDAPE、MAAPE)作为样例,其分布结果如图12所示。
在这里插入图片描述
图12 模型误差指标可视化

对于模型的综合性能评估,在实践中很难保证所有误差指标均表现很好,毕竟每个指标量化的信息维度相互有所区别,当然理想结果是各个误差指标的结果取值较低,但实际情况往往是当多数误差指标表现较低,便可说明模型的整体效果表现尚可,尤其是MAE、MAPE、MSE、RMSE等几个常用指标。当然,降低模型的训练误差,是我们希望得到的最终结果,但这个过程属于模型调优的相关内容,具体可以通过参数优化、特征工程等重要环节来完成。
综合以上内容,我们围绕线性回归模型,通过具体数据实例完成了模型的构建过程,并重点介绍了模型20大误差指标的实现过程与分布效果,这对于全面评价模型的综合性能是非常有意义的。为了便于大家对模型多维度误差指标的进一步理解与熟悉,本文额外附带了与以上内容同步的Python代码与样本数据,供大家参考学习,详情请移至知识星球查看相关内容。
在这里插入图片描述

~原创文章

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

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

相关文章

Linux下编写C使用的GDB调试器

目录 1.GDB调试器 2.GDB使用 3.实例程序调试 (1)编写一段C程序 (2)对C程序进行编译 (3)调试阶段 ①启动调试 ②查看文件 ③设置断点 ④查看断点情况 ⑤运行代码 ⑥单步运行 ⑦恢复程序 ⑧查看…

数字孪生建筑工程系统开发案例方案,如何选择数孪平台?

据统计,全国建筑业增长值在 GDP 增长中所占比重连续十年保持在 6. 85%以上,其支柱产业的地位依然保持。但是我国建筑业产值利润率已连续五年下滑,部分原因是其生产方式粗放、信息化水平不高、科技创新能力不足等。因此,在发展数字…

java类加载机制解析

一:类加载流程 public class Math {public static final int initData 666;public static User user new User();public int compute(){int a 1;int b 2;return ab;};public static void main(String[] args){Math math new Math();math.compute();} } 当我们…

Mybatis批量插入数据

前言 在很多业务场景中,我们需要批量录入数据。那么意味着我们需要以最高效的方式去实现功能,同时也需要保证软件的便捷性与可维护性,开源字节使用MyBatis foreach标签方式优雅的实现了材料的出入库。源码开放,可前往码云仓库免费…

NR 物理层编码 - slide7 卷积码

前言: 卷积码(n,k,N) 是一种非分组码.与线性分组码的区别: 是一种有记忆的编码方案,n个输出不仅与当前k个输入有关系,也与移位寄存器前N个输入有关系. 发展历史: 1955年 麻省理工的P.Elias 发明 1957年 序列译码法 1963年 门限译码法 1967年 Vi…

MongoDB分片机制

为什么需要分片 应用层实现的手动分片: MongoDB分片组件 mongos路由器负责将应用程序的请求指引到合适的分片上。注意到mongos路由器是在应用程序端实现的,因此分片的配置信息需要保存在另外的服务器上,即配置服务器。mongos通过两阶段提交同…

使用PreparedStatement对数据库的增删改查

目录 介绍 JDBCUtils自定义工具类 增 删 改 查 介绍 可以通过调用 Connection 对象的 preparedStatement() 方法获取PreparedStatement 对象PreparedStatement 接口是 Statement 的子接口,它表示一条预编译过的 SQL 语句PreparedStatement 对象所代表的 SQL 语…

拼搏半个月,刷了 571道Java高频面试题喜提阿里 offer,定级 P7

今年较往年相比面试要难的多,大环境也是对于程序员的要求越来越高,环境是我们无法改变的,我们能改变的只有自己,月初我一好友,努力拼搏一周,刷完了这份阿里 P8 大牛整理的这 571 道 Java 高频面试题笔记&am…

彩色的木棒

一 问题描述 给你一堆木棒。每根棒的每个端点都用一些颜色着色。是否可以将棒对齐成直线,使得接触的端点的颜色具有相同的颜色? 二 输入和输出 1 输入 输入是一系列行,每行包含两个单词,由空格分隔,给出一个木棒的…

SkeyeVSS智慧国土高点视频监控解决方案

随着经济的快速发展、城镇化的快速推进,耕地及矿产资源等不断减少,未批先建、批少用多、私自改变土地用途等各种违法违规用地行为时有发生,在这种情况下,传统的人力巡查工作效率低、执法成本高的弊端进一步凸显。 SkeyeVSS智慧国土…

科技云报道:私有云市场加速洗牌,超云为何异军突起?

科技云报道原创。 近年来在国家相关政策的大力推动下,中国私有云市场发展渐入佳境,一股新的建设高潮汹涌而至。 根据IDC对于2022-2026中国SDS及HCI的市场预测,中国私有云基础架构市场正在从成长阶段迈向成熟阶段,未来3-5年将保持…

自己动手写ls命令——Java版

自己动手写ls命令——Java版 介绍 在前面的文章Linux命令系列之ls——原来最简单的ls这么复杂当中,我们仔细的介绍了关于ls命令的使用和输出结果,在本篇文章当中我们用Java代码自己实现ls命令,更加深入的了解ls命令。 代码实现 文件操作的…

3000字神经网络论文

你遇到了哪些困难和挫折是怎样克服的写下来的作文 我学会了骑自行车人生的道路上,谁都会遇到困难或挫折,就看你敢不敢去挑战它。那一次学自行车,一直让我记忆犹新。一天傍晚,我和爸爸妈妈一起推着车来到体育馆,这次我…

Android同文输入法的使用(开源输入法Trime)

Trime输入法背景源码APP试用下载安装配置部署成功后再一步:学习如何 DIY总结背景 想找一款开源的Android中文输入法,然后发现了这款备受推崇的输入法框架rime。 RIME/中州韵输入法引擎,是一个跨平台的输入法算法框架。 基于这一…

【MySQL】检索数据

每日鸡汤 : —— 若你困于无风之地,我将奏响高空之歌 要和我一起花 10 min 学一会 SQL 嘛? - 当然愿意,我美丽的小姐 (封寝期间练就的自言自语能力越来越炉火纯青了~~~) 前言: 本实验中所用数据…

Kotlin第二章:kotlin基础

1. 基础数据类型 1. 整数类型 序号类型位宽最小值最大值1Byte8-1281272Short16-32768327673Int32-2,147,483,648 (-2^31)2,147,483,647 (2^31 - 1)4Long64-9,223,372,036,854,775,808 (-2^63)9,223,372,036,854,775,807 (2^63 - 1) val number 100 //默认Int类型 类比java的…

0050 Enum枚举类

/* 枚举是一种特殊的类,里面只包含一组有限的特定对象枚举的两种实现方式1.自定义类实现枚举2.使用enum关键字实现枚举自定义类实现枚举1.构造器私有化2.本类的内部创建一组对象[]3.对外暴露对象(为对象添加public final static修饰)4.提供g…

第三章 Flink基础理论之内存优化及常见内存报错解决方案

第三章 Flink基础理论之内存优化及常见内存报错解决方案 哇. 1、总体内存模型 1.1、内存模型概述 ​ Flink内存配置分为JobManager内存配置和TaskManager内存配置。 配置项TaskManager配置参数JobManager配置参数Total Flink Memorytaskmanager.memory.flink.sizejobmana…

土方量计算的准确作法

​现在说到土方量结算,绝大多数土木行业的人都说某某软件很方便,但是我要问到手算会吗,大多数人都会支支吾吾,虽然手算确实不现实,但是我们做为专业人员,总不能沦为软件使用者吧?其中的原理大家…

公众号网课题库系统-注册即可使用

公众号网课题库系统-注册即可使用 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 题库:题库后台(点击跳转…