人工智能中两个较为常见的评估模型性能指标(EVS、MAE)

news/2024/9/23 14:24:52/

1、解释方差(EVS)

官方社区链接:sklearn.metrics.explained_variance_score-scikit-learn中文社区

explained_variance_score是一个用于评估回归模型性能的指标,它衡量的是模型预测值与实际值之间关系的密切程度。具体来说,解释方差分数表示模型预测值中有多少方差可以通过实际数据的方差来解释。

解释方差(Explained Variance)的计算公式如下:

其中:

  •  y 是观测值的真实目标变量(即测试集中的标签)。
  •  \hat{y} 是模型预测的目标变量。

该指标的取值范围从 0 到 1。

值越接近 1,表示模型的预测值与实际值之间的差异越小,模型的解释能力越强,即模型能够更好地捕捉数据中的变异性。

在 scikit-learn 中,explained_variance_score 函数的使用方法如下:

from sklearn.metrics import explained_variance_score# 真实目标值数组
y_true = [1,2,31,34,2]
# 模型预测的目标值数组
y_pred = [1,2,30,34,4]# 计算解释方差分数
explained_variance = explained_variance_score(y_true, y_pred)
print(explained_variance)

这个函数会返回一个介于 0 和 1 之间的浮点数,表示模型的解释方差分数。

总结一下,越接近于1预测的越牛逼,越接近于0越完蛋。

2、平均绝对误差(MAE)

mean_absolute_error 是一个用于评估回归模型性能的指标,它衡量的是模型预测值与实际值之间差异的平均大小。平均绝对误差(Mean Absolute Error, MAE)是所有数据点的绝对误差之和除以数据点的总数。

平均绝对误差的计算公式如下:

其中:

  • n 是数据点的总数。
  • yi 是第  i  个观测值的真实目标变量。
  • \hat{yi}是第  i  个观测值的模型预测目标变量。

MAE 指标的值越小越好,它能够量化模型预测的准确度。由于它是绝对误差的平均,所以对异常值(outliers)的影响比均方误差(MSE)小。

在 scikit-learn 中,mean_absolute_error 函数的使用方法如下:

from sklearn.metrics import mean_absolute_error# 真实目标值数组
y_true = [1,2,31,34,2]
# 模型预测的目标值数组
y_pred = [1,2,30,34,4]# 计算平均绝对误差
mae = mean_absolute_error(y_true, y_pred)
print(mae)

这个函数会返回一个浮点数,表示模型的平均绝对误差;

当预测值,和初始值相同时,结果为 0 ,也就是最小值为 0 ;

但是两者之间的差距可以无限大,所以最大值无上限。


http://www.ppmy.cn/news/1434695.html

相关文章

【2023】springboot通过阿里云oss进行文件单个批量文件上传下载

SpringBoot整合阿里OSS实现上传下载 目录💻 前言一、介绍二、阿里云添加oss1、进入oss目录2、创建bucket3、测试上传下载4、创建AccessKey管理账号 三、依赖以及配置1、依赖2、yml3、Config类4、OSSUtil 工具类 四、controller五、测试1、测试上传2、测试删除 前言 …

【SpringCloud】一文详谈Nacos

🏡浩泽学编程:个人主页 🔥 推荐专栏:《深入浅出SpringBoot》《java对AI的调用开发》 《RabbitMQ》《Spring》《SpringMVC》《项目实战》 🛸学无止境,不骄不躁,知行合一 文章目录 …

揭开ChatGPT面纱(2):OpenAI主类源码概览

文章目录 〇、使用OpenAI的两个步骤一、初始化方法__init__()1.源码2.参数解析 二、提供的接口1.源码2.接口说明主要接口说明 OpenAI版本1.6.1 〇、使用OpenAI的两个步骤 在上一篇博客中,我实现并运行了一个OpenAI的demo,我们可以发现,想要使…

批量添加集合元素

方法一: Collections.addAll() 方法内部会迭代传递给它的元素列表&#xff0c;并将每个元素添加到目标集合中。 List<Integer> list new ArrayList<>();Collections.addAll(list,1,2,3,4,5); 方式二: ArrayList 类有一个构造函数&#xff0c;它接受一个 Colle…

NodeRed节点编辑用于边缘计算和规则引擎,能做带UI界面和业务逻辑的上位机或前端应用吗?

网站&#xff1a;hhtp://www.uiotos.net 先说结论&#xff0c;可以&#xff0c;但是需要有页面嵌套继承类似的技术&#xff0c;实现页面模块化封装&#xff0c;否则难以实现复杂应用。 相信目光敏锐的人都在关注节点编辑在自身行业的应用&#xff01; NodeRed在边缘计算做数据…

鸿蒙开发中:首选项(Preferences)和长连接(PersistentStorage)的区别

Preferences&#xff1a;可看做是配置项&#xff0c;为应用提供Key-Value键值型的数据处理能力&#xff0c;支持应用持久化轻量级数据&#xff0c;并对其修改和查询。Preferences中的数据会被缓存在内存中&#xff0c;因此它可以获得更快的存取速度。 PersistentStorage&#…

【简单介绍下PostCSS】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

CTFHub(web sql注入)(二)

布尔盲注 盲注原理&#xff1a; 将自己的注入语句使用and与?id1并列&#xff0c;完成注入 手工注入&#xff1a; 爆库名长度 首先通过折半查找的方法&#xff0c;通过界面的回显结果找出数据库名字的长度&#xff0c;并通过相同的方法依次找到数据库名字的每个字符、列名…