关于模型预测结果好坏的几个评价指标
总第241篇/张俊红
在人工智能算法大数据时代,会有各种各样的预测模型,那怎么来评判一个预测模型的准确度呢?这一篇就来聊聊常用的一些评价指标。
所谓的预测准确度其实就是预测值和实际值之间的相近程度,预测值和实际值之间越接近,说明预测准确度越高。我们用y_{hat}表示模型的预测值,y表示模型的真实值。
1.MSE
MSE是Mean Square Error的缩写,表示均方误差,具体公式如下:
该公式表示每个预测值与实际值之间距离的平方和,值越大,表示误差越大。
2.RMSE
RMSE表示均方根误差,是对MSE的开根号,有点类似方差与标准差的区别。人们对均方差和方差一样没有直观的理解,不知道均方差=100时到底是准确度高还是低。所以就有了均方根误差,可以将均方根误差和实际值之间去比较,就可以对预测准确度有个直观的理解。
比如实际值基本在10左右,均方根误差是5,那么就可以感受到,预测值差不多会有一半的误差。而如果要是看均方误差25的话,可能就不太好理解。
3.MAE
MAE是Mean Absolute Error的缩写,表示平均绝对误差,公式如下:
平均绝对误差就是把均方误差中对预测值与实际值之间的差值求平方改成了求绝对值。与RMSE有点类似。
4.MAPE
MAPE是Mean Absolute Percentage Error的缩写,表示平均绝对百分比误差,公式如下:
MAPE对预测的准确度表示就更直观了,有点类似于增幅的概念。用预测值与实际值之间的差去与实际值相比,看其中的占比有多大。
5.Python实现
是不是想问,那上面这些指标用Python怎么计算呢?往下看:
MSE的计算在Sklearn中有现成的函数可以调用,代码如下:
from sklearn import metrics
mse = metrics.mean_squared_error(y_test, y_pre)
RMSE直接对MSE的结果开根号即可,代码如下:
import numpy as np
rmse = np.sqrt(mse)
MAE的计算在Sklearn中也有现成的函数可以调用,代码如下:
from sklearn import metrics
mae = metrics.mean_absolute_error(y_test, y_pre)
MAPE的计算需要我们自己写代码来实现,不过也比较简单,具体代码如下:
def mape(y_true, y_pred):
return np.mean(np.abs((y_pred - y_true) / y_true)) * 100
mape = mape(y_true, y_pred)
以上就是关于模型准确度常用的评价指标以及Python实现代码。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- thinkPHP框架乐观锁和悲观锁实例分析
- PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
- laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
- Laravel框架实现即点即改功能的方法分析
- PHP使用PDO实现mysql防注入功能详解
- laravel接管Dingo-api和默认的错误处理方式
- PHP接入微信H5支付的方法示例
- PHP中用Trait封装单例模式的实现
- laravel 解决Validator使用中出现的问题
- php文件上传原理与实现方法详解
- PHP常见的序列化与反序列化操作实例分析
- Laravel jwt 多表(多用户端)验证隔离的实现
- Laravel实现通过blade模板引擎渲染视图
- Laravel 验证码认证学习记录小结
- ThinkPHP类似AOP思想的参数验证的实现方法