原文地址 ?传送门
对于回归预测结果,通常会有平均绝对误差、平均绝对百分比误差、均方误差等多个指标进行评价。这里,我们先介绍最常用的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. Java 在Word中嵌入多媒体(视频、音频)文件

    Word中可将Office(Word/Excel/PowerPoint).PDF.txt等文件作为OLE对象插入到文档中,双击该对象可直接访问或编辑该文件,除了以上常见的文件格式对象,也可以插入多媒体 ...

  2. Python语言的2个典型特性

    [动态编程语言] 学习过C.C++的同学都知道,使用这二者编写代码时,变量在使用前必须通过类似"int a=123"的语句提取申明,然后在真正赋值的时候校验取值跟类型是否相符.也就 ...

  3. ligerui的jquery.validate验证需要添加validate="{required:true,minlength:8,equalTo:'#newpassword'}"

    ligerui的jquery.validate验证需要添加validate="{required:true,minlength:8,equalTo:'#newpassword'}"

  4. input type 使用

    type属性值 hidden: 隐藏. text:文本 search:搜索 tel url email password:密码 date:日期选择器 month:月份选择器 week:周选择器 tim ...

  5. WPF DataGrid OxyPlot 卡顿优化

    不是优化,我是想用这个标题吸引遇到相同问题的同学过来看看. UI如下,左边DataGrid有7列,右边OxyPlot显示折线图 列表4000+数据,折线图4000+个点,页面卡的用不了. 体现就是列表 ...

  6. ubuntu用户、用户组设置命令总结

    1.ubuntu创建新用户: sudo adduser username(新建一个用户username) 2.设置用户 username 的密码(设置用户username密码) sudo passwd ...

  7. Git统计代码变化率

    统计2017-03-01到2017-03-31代码变更率 代码统计命令参考:git log --pretty=tformat: --since ==2017-03-01 --until=2017-03 ...

  8. 【LeetCode】375. Guess Number Higher or Lower II 解题报告(Python)

    [LeetCode]375. Guess Number Higher or Lower II 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://f ...

  9. 【LeetCode】454. 4Sum II 解题报告(Python & C++)

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

  10. uniCloud爬虫获取网页数据

    'use strict'; let request = require('request') let cheerio = require('cheerio'); //爬虫 let iconv = re ...