原文地址 ?传送门
对于回归预测结果,通常会有平均绝对误差、平均绝对百分比误差、均方误差等多个指标进行评价。这里,我们先介绍最常用的3个:

平均绝对误差(MAE)
就是绝对误差的平均值,它的计算公式如下:

M

A

E

(

y

,

y

^

)

=

1

n

(

i

=

1

n

y

y

^

)

MAE(y,\hat{y}) = \frac{1}{n}(\sum_{i = 1}^{n}\left | y - \hat{y} \right |)

MAE(y,y^​)=n1​(i=1∑n​∣y−y^​∣)
其中,

y

i

y_{i}

yi​ 表示真实值,

y

^

i

\hat y_{i}

y^​i​ 表示预测值,

n

n

n 则表示值的个数。MAE 的值越小,说明预测模型拥有更好的精确度。我们可以尝试使用 Python 实现 MAE 计算函数:

import numpy as np

def mae_value(y_true, y_pred):
"""
参数:
y_true -- 测试集目标真实值
y_pred -- 测试集目标预测值 返回:
mae -- MAE 评价指标
""" n = len(y_true)
mae = sum(np.abs(y_true - y_pred))/n
return mae

均方误差(MSE)
它表示误差的平方的期望值,它的计算公式如下:

M

S

E

(

y

,

y

^

)

=

1

n

i

=

1

n

(

y

i

y

^

)

2

{MSE}(y, \hat{y} ) = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y})^{2}

MSE(y,y^​)=n1​i=1∑n​(yi​−y^​)2

其中,

y

i

y_{i}

yi​ 表示真实值,

y

^

i

\hat y_{i}

y^​i​ 表示预测值,

n

n

n 则表示值的个数。MSE 的值越小,说明预测模型拥有更好的精确度。同样,我们可以尝试使用 Python 实现 MSE 计算函数:

import numpy as np

def mse_value(y_true, y_pred):
"""
参数:
y_true -- 测试集目标真实值
y_pred -- 测试集目标预测值 返回:
mse -- MSE 评价指标
""" n = len(y_true)
mse = sum(np.square(y_true - y_pred))/n
return mse

平均绝对百分比误差

M

A

P

E

MAPE

MAPE

M

A

P

E

MAPE

MAPE 是

M

A

D

MAD

MAD 的变形,它是一个百分比值,因此比其他统计量更容易理解。例如,如果

M

A

P

E

MAPE

MAPE 为

5

5

5,则表示预测结果较真实结果平均偏离

5

5%

5。

M

A

P

E

MAPE

MAPE 的计算公式如下:

M

A

P

E

(

y

,

y

^

)

=

i

=

1

n

y

i

y

^

i

y

i

n

×

100

%

{MAPE}(y, \hat{y} ) = \frac{\sum_{i=1}^{n}{|\frac{y_{i}-\hat y_{i}}{y_{i}}|}}{n} \times 100{\%}

MAPE(y,y^​)=n∑i=1n​∣yi​yi​−y^​i​​∣​×100%

其中,

y

i

y_{i}

yi​ 表示真实值,

y

^

i

\hat y_{i}

y^​i​ 表示预测值,

n

n

n 则表示值的个数。

M

A

P

E

MAPE

MAPE 的值越小,说明预测模型拥有更好的精确度。使用 Python 实现 MSE 计算函数:

import numpy as np

def mape(y_true, y_pred):
"""
参数:
y_true -- 测试集目标真实值
y_pred -- 测试集目标预测值 返回:
mape -- MAPE 评价指标
""" n = len(y_true)
mape = sum(np.abs((y_true - y_pred)/y_true))/n*100
return mape

参考

机器学习|线性回归三大评价指标实现『MAE, MSE, MAPE』(Python语言描述)的更多相关文章

  1. 机器学习|线性回归算法详解 (Python 语言描述)

    原文地址 ? 传送门 线性回归 线性回归是一种较为简单,但十分重要的机器学习方法.掌握线性的原理及求解方法,是深入了解线性回归的基本要求.除此之外,线性回归也是监督学习回归部分的基石. 线性回归介绍 ...

  2. 『无为则无心』Python序列 — 17、Python字符串操作常用API

    目录 1.字符串的查找 @1.find()方法 @2.index()方法 @3.rfind()和rindex()方法 @4.count()方法 2.字符串的修改 @1.replace()方法 @2.s ...

  3. 『无为则无心』Python基础 — 2、编译型语言和解释型语言的区别

    目录 1.什么是计算机语言 2.高级语言中的编译型语言和解释型语言 (1)编译型语言 (2)解释型语言 (3)编译型语言和解释型语言执行流程 3.知识扩展: 4.关于Python 1.什么是计算机语言 ...

  4. 『无为则无心』Python基础 — 3、搭建Python开发环境

    目录 1.Python开发环境介绍 2.Python解释器的分类 3.下载Python解释器 4.安装Python解释器 5.Python解释器验证 1.Python开发环境介绍 所谓"工欲 ...

  5. 『无为则无心』Python基础 — 4、Python代码常用调试工具

    目录 1.Python的交互模式 2.IDLE工具使用说明 3.Sublime3工具的安装与配置 (1)Sublime3的安装 (2)Sublime3的配置 4.使用Sublime编写并调试Pytho ...

  6. 『无为则无心』Python基础 — 5、Python开发工具的安装与使用

    目录 1.Pycharm下载 2.Pycharm安装 3.PyCharm界面介绍 4.基本使用 (1)新建Python项目 (2)编写Python代码 (3)执行代码查看结果 (4)设置PyCharm ...

  7. 『无为则无心』Python基础 — 6、Python的注释

    目录 1.注释的作用 2.注释的分类 单行注释 多行注释 3.注释的注意事项 4.什么时候需要使用注释 5.总结 提示:完成了前面的准备工作,之后的文章开始介绍Python的基本语法了. Python ...

  8. 『无为则无心』Python基础 — 7、Python的变量

    目录 1.变量的定义 2.Python变量说明 3.Python中定义变量 (1)定义语法 (2)标识符定义规则 (3)内置关键字 (4)标识符命名习惯 4.使用变量 1.变量的定义 程序中,数据都是 ...

  9. 『无为则无心』Python基础 — 8、Python中的数据类型(数值、布尔、字符串)

    目录 1.数据类型介绍 2.数值型(Number) 3.布尔型(bool) 4.None(空值) 5.常量 6.字符串(String) 1.数据类型介绍 (1)什么是数据类型 在生活中,我们日常使用的 ...

随机推荐

  1. Python把两个列表索引相同的值相加

    方案一 list1=[1,2,3,4,5] list2=[6,7,8,9,10] list3=[] list3=[i + j for i, j in zip(list1, list2)] print( ...

  2. Shell之awk常用用法

  3. 淘宝自动抢购, Webdriver浏览器常用的元素定位

    https://www.cnblogs.com/diaosicai/p/5909660.html #!/usr/bin/env python ''' 作者:张铭达 功能:淘宝秒杀购物 版本:0.2 日 ...

  4. 超链接 a 标签点击时,弹出提示框,可以按照如下来写

    onclick="return confirm('确定删除该条记录?')" 加上这条记录后,就可以在访问href属性指向的链接时,有弹出提示

  5. libevent源码学习(5):TAILQ_QUEUE解析

    目录 前言 结点定义 链表初始化 链表查询及遍历 链表查询 链表遍历 插入结点 头插法 尾插法 前插法 后插法 删除结点 替换结点 总结 前言 在libevent中使用到了TAILQ数据结构,看了一下 ...

  6. VUE3 之 样式绑定

    1. 概述 老话说的好:脚踏实地,从小事做起. 言归正传,今天我们来聊聊 VUE3 的样式绑定. 2. 样式绑定 2.1 样式例子 <style> /* 颜色 */ .color-red ...

  7. 【LeetCode】1001. Grid Illumination 解题报告(C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 哈希 日期 题目地址:https://leetcod ...

  8. 【LeetCode】46. Permutations 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 解题方法 方法一:库函数 方法二:递归 方法三:回溯法 日期 题目地址:h ...

  9. LeetCode1238循环码排列

    题目 给你两个整数 n 和 start.你的任务是返回任意 (0,1,2,,...,2n-1) 的排列 p,并且满足: p[0] = start p[i] 和 p[i+1] 的二进制表示形式只有一位不 ...

  10. hdu -4325-Flowers(离散化 线段树)

    http://acm.hdu.edu.cn/showproblem.php?pid=4325: 题目意思: 给你N个花开的时间段,然后在有M个时间点,问你在这个时间点有多少花开着. 昨天刚做的一个类似 ...