【scikit-learn基础】--『回归模型评估』之误差分析
模型评估在统计学和机器学习中具有至关重要,它帮助我们主要目标是量化模型预测新数据的能力。
在这个数据充斥的时代,没有评估的模型就如同盲人摸象,可能带来误导和误判。
模型评估不仅是一种方法,更是一种保障,确保我们在数据海洋中航行时,能够依赖准确的模型,做出明智的决策。
本篇主要介绍模型评估时,如何利用scikit-learn帮助我们快速进行各种误差的分析。
1. 平均绝对误差
平均绝对误差(Mean Absolute Error,简称MAE),它用于度量预测值与真实值之间的平均误差大小。
它能直观地反映出预测的准确性,MAE越小,说明模型的预测能力越好。
1.1. 计算公式
平均绝对误差的计算公式如下:
\(\text{MAE}(y, \hat{y}) = \frac{1}{n} \sum_{i=0}^{n-1} \left| y_i - \hat{y}_i \right|.\)
其中,\(n\)是样本数量,\(y_i\)是真实值,\(\hat{y_i}\)是预测值。
1.2. 使用示例
from sklearn.metrics import mean_absolute_error
import numpy as np
# 随机生成100个sample
n = 100
y_true = np.random.randint(1, 100, n)
y_pred = np.random.randint(1, 100, n)
mean_absolute_error(y_true, y_pred)
mean_absolute_error就是scikit-learn中用来计算MAE的函数。
2. 均方误差
均方误差(Mean Squared Error,简称MSE),它用于衡量模型的预测值与实际观测值之间的差异。MSE越小,表示模型的预测值与实际观测值之间的差异较小,即模型具有较高的预测精度。
2.1. 计算公式
\(\text{MSE}(y, \hat{y}) = \frac{1}{n} \sum_{i=0}^{n - 1} (y_i - \hat{y}_i)^2.\)
其中,\(n\)是样本数量,\(y_i\)是真实值,\(\hat{y_i}\)是预测值。
2.2. 使用示例
from sklearn.metrics import mean_squared_error
import numpy as np
n = 100
y_true = np.random.randint(1, 100, n)
y_pred = np.random.randint(1, 100, n)
mean_squared_error(y_true, y_pred)
mean_squared_error就是scikit-learn中用来计算MSE的函数。
3. 均方对数误差
均方对数误差(Mean Squared Log Error,简称MSLE),与均方误差(MSE)相比,MSLE在计算误差时先对预测值和真实值取对数。
通过对数转换,MSLE能够减小较大值和较小值之间的差异,使得误差度量更为稳定。MSLE的值越小,表示预测结果与真实值的差异越小,即模型的拟合程度越好。
3.1. 计算公式
\(\text{MSLE}(y, \hat{y}) = \frac{1}{n} \sum_{i=0}^{n - 1} (\log_e (1 + y_i) - \log_e (1 + \hat{y}_i) )^2.\)
其中,\(n\)是样本数量,\(y_i\)是真实值,\(\hat{y_i}\)是预测值。
3.2. 使用示例
from sklearn.metrics import mean_squared_log_error
import numpy as np
n = 100
y_true = np.random.randint(1, 100, n)
y_pred = np.random.randint(1, 100, n)
mean_squared_log_error(y_true, y_pred)
mean_squared_log_error就是scikit-learn中用来计算MSLE的函数。
4. 平均绝对百分比误差
平均绝对百分比误差(Mean Absolute Percentage Error,简称MAPE),平均绝对误差(MAE)相比,MAPE将误差转化为百分比形式,这使得它在不同尺度的数据上具有更好的可比性。MAPE越小,表示模型的预测结果与实际结果的差异较小,即模型的预测准确性较高。
4.1. 计算公式
\(\text{MAPE}(y, \hat{y}) = \frac{1}{n} \sum_{i=0}^{n-1} \frac{{}\left| y_i - \hat{y}_i \right|}{\max(\epsilon, \left| y_i \right|)}\)
其中,\(n\)是样本数量,\(y_i\)是真实值,\(\hat{y_i}\)是预测值。
\(\epsilon\)是一个任意小但严格为正的数,以避免在\(y_i\)为零时出现未定义的结果。
4.2. 使用示例
from sklearn.metrics import mean_absolute_percentage_error
import numpy as np
n = 100
y_true = np.random.randint(1, 100, n)
y_pred = np.random.randint(1, 100, n)
mean_absolute_percentage_error(y_true, y_pred)
mean_absolute_percentage_error就是scikit-learn中用来计算MAPE的函数。
5. 绝对误差中值
绝对误差中值(Median Absolute Error,简称MedAE),它用于衡量预测模型对于数据集的精度。
与平均误差相比,中值对异常值更为稳健,对于数据集中的异常值和离群点,绝对误差中值具有较强的抗性。MedAE越小的模型,通常意味着它在大多数数据点上的预测更为准确。
5.1. 计算公式
\(\text{MedAE}(y, \hat{y}) = \text{median}(\mid y_1 - \hat{y}_1 \mid, \ldots, \mid y_n - \hat{y}_n \mid).\)
其中,\(y_i\)是真实值,\(\hat{y_i}\)是预测值,\(median\)表示取中位数。
5.2. 使用示例
from sklearn.metrics import median_absolute_error
import numpy as np
n = 100
y_true = np.random.randint(1, 100, n)
y_pred = np.random.randint(1, 100, n)
median_absolute_error(y_true, y_pred)
median_absolute_error就是scikit-learn中用来计算MedAE的函数。
6. 最大误差
最大误差(Max Error),它用于衡量模型预测值与真实值之间的最大差异,揭示模型在最坏情况下的表现。
如果模型在大多数情况下的预测误差都很小,但最大误差很大,那么这可能意味着模型对于某些特定情况的处理不够好,需要进一步优化。
6.1. 计算公式
\(\text{Max Error}(y, \hat{y}) = \max(| y_i - \hat{y}_i |)\)
其中,\(y_i\)是真实值,\(\hat{y_i}\)是预测值,\(max\)表示取最大值。
6.2. 使用示例
from sklearn.metrics import max_error
import numpy as np
n = 100
y_true = np.random.randint(1, 100, n)
y_pred = np.random.randint(1, 100, n)
max_error(y_true, y_pred)
max_error就是scikit-learn中用来计算Max Error的函数。
7. 总结
本篇主要介绍了6种常用的误差分析函数,包括:
- 平均绝对误差
- 均方误差
- 均方对数误差
- 平均绝对百分比误差
- 绝对误差中值
- 最大误差
误差的计算方式其实也不算不复杂,不过,掌握scikit-learn中封装好的各种误差计算函数,
还是可以帮助我们在评估回归模型时节约不少时间。
【scikit-learn基础】--『回归模型评估』之误差分析的更多相关文章
- (原创)(四)机器学习笔记之Scikit Learn的Logistic回归初探
目录 5.3 使用LogisticRegressionCV进行正则化的 Logistic Regression 参数调优 一.Scikit Learn中有关logistics回归函数的介绍 1. 交叉 ...
- 机器学习之路:python 集成回归模型 随机森林回归RandomForestRegressor 极端随机森林回归ExtraTreesRegressor GradientBoostingRegressor回归 预测波士顿房价
python3 学习机器学习api 使用了三种集成回归模型 git: https://github.com/linyi0604/MachineLearning 代码: from sklearn.dat ...
- (原创)(三)机器学习笔记之Scikit Learn的线性回归模型初探
一.Scikit Learn中使用estimator三部曲 1. 构造estimator 2. 训练模型:fit 3. 利用模型进行预测:predict 二.模型评价 模型训练好后,度量模型拟合效果的 ...
- 逻辑回归模型(Logistic Regression, LR)基础
逻辑回归模型(Logistic Regression, LR)基础 逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用了一个逻辑函数,但也就由于这个逻辑函 ...
- 『高性能模型』轻量级网络ShuffleNet_v1及v2
项目实现:GitHub 参考博客:CNN模型之ShuffleNet v1论文:ShuffleNet: An Extremely Efficient Convolutional Neural Netwo ...
- 回归模型效果评估系列1-QQ图
(erbqi)导语 QQ图全称 Quantile-Quantile图,也就是分位数-分位数图,简单理解就是把两个分布相同分位数的值,构成点(x,y)绘图:如果两个分布很接近,那个点(x,y)会分布在y ...
- 『高性能模型』HetConv: HeterogeneousKernel-BasedConvolutionsforDeepCNNs
论文地址:HetConv 一.现有网络加速技术 1.卷积加速技术 作者对已有的新型卷积划分如下:标准卷积.Depthwise 卷积.Pointwise 卷积.群卷积(相关介绍见『高性能模型』深度可分离 ...
- 『高性能模型』轻量级网络MobileNet_v2
论文地址:MobileNetV2: Inverted Residuals and Linear Bottlenecks 前文链接:『高性能模型』深度可分离卷积和MobileNet_v1 一.Mobil ...
- 20165308『网络对抗技术』Exp5 MSF基础应用
20165308『网络对抗技术』Exp5 MSF基础应用 一.原理与实践说明 实践内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 一个主动攻击实 ...
- 2017-2018-2 20155303『网络对抗技术』Exp9:Web安全基础
2017-2018-2 『网络对抗技术』Exp9:Web安全基础 --------CONTENTS-------- 一.基础问题回答 1.SQL注入攻击原理,如何防御? 2.XSS攻击的原理,如何防御 ...
随机推荐
- 华企盾DSC可能造成系统蓝屏奔溃常见处理方法
1.蓝屏先卸载我们DSC客户端检测是否是我们影响的 2.如果是我们影响的查到版本说明是否有处理过 3.是否有一些不常用的杀毒软件卸载试试 4.如果使用一些USB驱动类的先把USB的注册表改一下试试 5 ...
- 2023年度低代码平台企业TOP50榜单公布—以开源起家的JeecgBoot格外亮眼
近日,中国科学院主管.科学出版社主办的国家级核心期刊<互联网周刊>联合eNet研究院.德本咨询评选的<2023低代码企业50强>榜单正式公布.这一榜单的公布引起了业内外的广泛关 ...
- 在线录屏-通过Web API接口轻松实现录屏
在线录屏是指在互联网上进行屏幕录制的过程.它允许用户通过网络连接,将自己的屏幕活动记录下来,并可以在需要时进行播放.共享或存档.在线录屏常用于教育.培训.演示.游戏等场景,可以帮助用户展示操作步骤.解 ...
- 3、Container容器组件
Container容器组件 代码 import 'package:flutter/material.dart'; void main() { runApp(MaterialApp( hom ...
- 华为云GaussDB践行数字化,护航证券保险高质量发展
摘要:华为云数据库解决方案架构师章哲在由先进数通与华为联合开展的"7+1"系列银行业数字化转型实践交流活动上围绕华为云GaussDB多年来的技术探索和应用实践进行了分享. 近日,由 ...
- 5大特性,带你认识化繁为简的华为云CodeArts Deploy
摘要:2月27日,华为云发布持续部署服务CodeArts Deploy,通过模块化自由编排部署流程,实现软件的自动化部署,帮助企业软件产品的快速.高效.高质量交付. 本文分享自华为云社区<化繁为 ...
- 后CNN探索,如何用RNN进行图像分类
摘要:RNN可以用于描述时间上连续状态的输出,有记忆功能,能处理时间序列的能力,让我惊叹. 本文分享自华为云社区<用RNN进行图像分类--CNN之后的探索>,作者: Yin-Manny. ...
- STM32+华为云IoTDA,带你设计一个属于自己的动态密码锁
摘要:设计一款物联网智能电子密码锁,以STM32单片机为主控制器,由触摸矩阵键盘.ESP8266.步进电机等模块组成,具有远程控制.随机密码生成等功能. 本文分享自华为云社区<STM32+华为云 ...
- OpenHarmony移植案例与原理:如何适配服务启动引导部件bootstrap_lite
摘要:本文介绍移植开发板时如何适配服务启动引导部件bootstrap_lite,并介绍相关的运行机制原理. 本文分享自华为云社区<OpenHarmony移植案例与原理 - startup子系统之 ...
- 在距离distribution 证书过期一个月(或被手动revoke了)的时候会受到apple的邮件
编辑 虽然distribution过期(或者被手动revoke)了,如果你的开发者账号是company(公司)类型或个人类型的,只要你的每年99$的开发者membership没有过期,就不会对已 ...