机器学习之回归模型预测性能评估指标(RMSE、MSE、MAE、MAPE、SMAPE、R^2 Score、R^2 )

博主推荐访问chatGPT、急速访问Github必备魔法SockBoom 

或者网址:https://sockboom.shop/auth/register?affid=212828

一、机器学习简介

机器学习就是通过大量的数据进行训练,然后得出输入数据的模型特征;再次输入相关的数据时,能得到一个预测的结果。这在现实生活中解决了大量的问题,如:股票预测、物体分类、房价预测等等,这些都依赖机器学习带给我们的便利。

机器学习中又分为两大类:监督学习非监督学习。

而监督学习中又分为回归问题分类问题

本文章中主要讲回归问题

二、回归模型的评估指标

假设:

预测值:

 

真实值:

2.1 平均绝对误差 Mean Absolute Error  ( MAE )

平均绝对误差 MAE,也叫平均绝对离差;在计算的时候,先对真实值与预测值求和,然后再取平均值。

公式:

范围 [0, +∞),当预测值与真实值完全吻合时等于0,即完美模型;误差越大,该值越大。

2.2 平均绝对百分误差 Mean Absolute Percentage Error ( MAPE )

平均绝对百分误差是对 MAE 改进后,通过计算真实值与预测的误差百分比避免了数据范围大小的影响

公式:

范围[0,+∞),MAPE 为0%表示完美模型,MAPE 大于 100 %则表示劣质模型。

可以看到,MAPE跟MAE很像,就是多了个分母。

注意点:当真实值有数据等于0时,存在分母0除问题,该公式不可用!

 2.3 均方误差 Mean Square Error( MSE )

均方误差就是对平均绝对误差求平方根,这个指标在计算时,先对真实值与预测值的距离平方后求和,再取平均值。

公式:

 范围[0,+∞),当预测值与真实值完全吻合时等于0,即完美模型;误差越大,该值越大。

一方面,该指标避免了MAE的绝对值导致函数不能求导的问题,因此均方误差常用于线性回归的损失函数;另一方面,均方误差可以通过平方来放大预测偏差较大的值,提高了检测的灵敏度

 2.4 均方根误差 Root Mean Square Error ( RMSE )

均方根误差(Root Mean Square Error),其实就是MSE加了个根号,这样数量级上比较直观,比如RMSE=10,可以认为回归效果相比真实值平均相差10。

公式:

 范围[0,+∞),当预测值与真实值完全吻合时等于0,即完美模型;误差越大,该值越大。

2.5 对称平均绝对百分比误差Symmetric Mean Absolute Percentage Error (SMAPE )

公式:

注意点:当真实值有数据等于0,而预测值也等于0时,存在分母0除问题,该公式不可用!

2.6 决定系数 R^2 Score

该指标需要了解另外三个指标:

Sum of Squares of the Regression,SSR

计算预测数据与真实数据均值之差的平方和,反映的是模型数据相对真实数据均值的离散程度

Total Sum of Squares,SST

计算真实数据和其均值之差的平方和,反映的是真实数据相对均值的离散程度

 Sum of Squares for Error,SSE

真实数据和预测数据之差的平方和

 细心的小伙伴可能注意到,SST = SSR + SSE

2.7 决定系数 R^2

决定系数 R^2,通过计算SSR 与 SST的比值,反应因变量 y 的全部变异能通过回归模型被自变量 x 解释的比例。比如,R^2 为0.9,则表示回归关系可以解释因变量 90% 的变异。

  • 决定系数R2越高,越接近于1,模型的拟合效果就越好
  • 决定系数R2越接近于0,回归直线拟合效果越差。

R^2  虽然可以评价回归模型效果,但会随着自变量数量的不断增加而改变。

三、python代码

# coding=utf-8
import numpy as np
from sklearn import metrics# MAPE和SMAPE需要自己实现
def mape(y_true, y_pred):return np.mean(np.abs((y_pred - y_true) / y_true)) * 100def smape(y_true, y_pred):return 2.0 * np.mean(np.abs(y_pred - y_true) / (np.abs(y_pred) + np.abs(y_true))) * 100y_true = np.array([1.0, 5.0, 4.0, 3.0, 2.0, 5.0, -3.0])
y_pred = np.array([1.0, 4.5, 3.5, 5.0, 8.0, 4.5, 1.0])# MSE
print(metrics.mean_squared_error(y_true, y_pred)) # 8.107142857142858
# RMSE
print(np.sqrt(metrics.mean_squared_error(y_true, y_pred))) # 2.847304489713536
# MAE
print(metrics.mean_absolute_error(y_true, y_pred)) # 1.9285714285714286
# MAPE
print(mape(y_true, y_pred)) # 76.07142857142858,即76%
# SMAPE
print(smape(y_true, y_pred)) # 57.76942355889724,即58%

后面我也会继续创作连载

创作不易,欢迎点赞收藏,支持作者创作

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

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

相关文章

PyTorch常用的损失函数(ChatGPT)

L1Loss nn.L1Loss 也称为平均绝对误差(Mean Absolute Error,MAE)。它计算预测值与真实值之间的差异(即误差),然后取绝对值并求和,最后除以样本数量得到平均误差。具体来说,对于一批…

ChatGPT vs Google:谁是答案之王?微软揭示未来搜索的样子

已经习惯了网购的你,有没有想过一旦电子商务行业遭受重创,会对我们的日常生活造成什么影响呢? 我们已经习惯了在生活中碰到什么不懂的事情就 Google 一下或者百度一下,甚至许多人的职业都跟 Google 密切相关,比如自媒…

替代MySQL半同步复制,Meta技术团队推出MySQL Raft共识引擎

作者:Anirban Rahut、Abhinav Sharma、Yichen Shen、Ahsanul Haque 原文链接:https://engineering.fb.com/2023/05/16/data-infrastructure/mysql-raft-meta/ 译者:ChatGPT 责编:张红月 MySQL Raft是MySQL数据库中一种基于Raft协议…

AI for Science 的上半场:人工智能如何重新定义科学研究新范式?

AI发展七十余年,每一技术性突破都将给人类未来开辟新一种可能性。而它与科学研究的深度融合,则会裂变出无数或无穷种可能性。 万众瞩目下,今年10月,有着诺贝尔奖“嫡传”之称的诺贝尔化学奖终于揭晓,授予了对“链接化学…

AI for Science的上半场来了!

AI发展七十余年,每一技术性突破都将给人类未来开辟新一种可能性。而它与科学研究的深度融合,则会裂变出无数或无穷种可能性。 万众瞩目下,今年10月,有着诺贝尔奖“嫡传”之称的诺贝尔化学奖终于揭晓,授予了对“链接化学…

ChatGPT: 智能对话时代的未来展望与应用实践

ChatGPT: 智能对话时代的未来展望与应用实践 简介 ChatGPT 是一种基于深度学习和自然语言处理技术的人工智能对话模型。它可以通过生成自然语言文本的方式,与用户进行交互式的对话。作为一种先进的对话生成模型,ChatGPT 在近年来快速发展的人工智能领域中…

德州扑克AI实现 TexasHoldem Poker

参考了一下这篇文献,http://cowboyprogramming.com/2007/01/04/programming-poker-ai/ 自己用go实现了一个德州扑克AI,效果还可以。 正常和它玩耍的时候,互动性还不错。但是也有一点点问题,比如玩家乱来,把把都ALL IN(…

PokerNet-poker recognition: 扑克识别 (6)

文章目录 准备最终结果未来改进 准备 机器: Titan XP 12GB, 64GB RAM, 机器非常强,可靠。 下次有机会购买RTX 2080 Ti 试试 最终结果 错误率可以达到万分之一,非常可考 未来改进 精简模型多模型融合,提升准确度

计算6+德州扑克各个牌型的概率

为了回答该知乎问题(https://www.zhihu.com/question/57408133/answer/152920354)而写就的程序。 6+德州扑克的规则,就是在传统52张牌德州扑克的基础上,去掉了2到5,只留下6到A共计36张牌;另外最小的顺子就成了A6789。此外,牌型大小变成了:同花>葫芦>三条>顺子…

德州扑克术语大全(上篇)

作为一个小白或者新手你还在苦恼别人说的术语完全不明白是什么意思,别人谈论牌谱,你完全在状况外?比人问你一手牌,你总是一脸茫然……这些情况真的好尴尬呀,没有关系,读过本文,让你轻松驾驭牌谱…

德州扑克实践之三-----比较大小

经过前面的两篇文章,整体工作已经完成了2/3了,剩下的1/3,将会在本片文章提及 整体流程: 比较之前须得获取,牌型,牌值,这两部分在上一篇文章已经讲解了,不懂得小伙伴可私信我&#x…

德州扑克多个玩家对局时赢牌牌型概率分布表、各种牌型的出现概率

就题目而言,对局赢牌牌型概率分布,各种牌型的出现概率,以及同样一手牌在不同牌局中的牌力大小,是不同的概念。本文不纠结这些概念,而是直接实验,从结果来统计概率。(本文实验在linux下用C语言通…

3211:花神游历各国

Description Input Output 每次x1时,每行一个整数,表示这次旅行的开心度 Sample Input 4 1 100 5 5 5 1 1 2 2 1 2 1 1 2 2 2 3 1 1 4 Sample Output 101 11 11 HINT 对于100%的数据, n ≤ 100000,m≤200000 ,data[i]非负且小于10…

Bzoj3211花神游历各国

提供一种数据结构,支持区间求和,以及区间开根号。 这种题一般暴力谁都能打,主要是练线段树。 下面给出两种解法: 第一种,额外维护区间最大值。 由于1、0开根是其本身,开根没有意义,我们维护区间…

bzoj3211 花神游历各国

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id3211 【题解】 区间开根号,由于每个数被开根号不会很多次就变成1,每次我们暴力开根下去,同时记录s[x]表示x这个区间内是不是全是1,如果是就不用开下去了 这样…

ybt.1550 花神游历各国 题解

【题目描述】 花神喜欢步行游历各国,顺便虐爆各地竞赛。花神有一条游览路线,它是线型的,也就是说,所有游历国家呈一条线的形状排列,花神对每个国家都有一个喜欢程度(当然花神并不一定喜欢所有国家&#xff…

花神倒果汁

花神倒果汁(juice.pas/c/cpp)【题目描述】为了庆祝花神开花,花神决定举办一个宴会。其中有一个游戏叫倒果汁。果汁容器的底座是一个独立的NM的矩阵,矩阵的每个格点有一个高度,表示这个格子正上方有多少个111的方块。相邻两个方块被粘得严实&a…

Centos7.9部署sd-webui,容易上手易学就会

一、什么是sd-webui 最近两年AI技术非常火爆,特别是今年随着ChatGPT被吹爆,更多的AI技术映入大家眼帘。相较于其他AI,感觉AI绘画更接地气,sd webui全名:Stable Diffusion web ui是AI绘画中的一种算法,是一…

已损坏,无法打开。 您应该将它移到废纸篓。解决方案

1.首先确认下隐私与安全性是否选择了任何来源 如果没有任何来源选项可参考 https://wangjian.blog.csdn.net/article/details/130246875?spm1001.2014.3001.5502 2.如果还是不行,就用终极大招,给文件安全性权限.打开终端,先输入如下指令 sudo xattr -r -d com.apple.quaran…

Pycharm使用(配置)技巧

下载Pycharm后,需要将界面配置的人性化一点,下面介绍一下本人觉得方便的配置方法和使用技巧。 配置方法: 版本汉化: Chinese   打开File,找到Settings   打开Settings中的Pulgins,选择Marketplace,搜索chinese&a…