sklearn【MAPE】平均相对误差介绍,以及案例学习!

这篇具有很好参考价值的文章主要介绍了sklearn【MAPE】平均相对误差介绍,以及案例学习!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、MAPE 介绍

在预测任务中,评估模型的预测性能至关重要。除了常见的均方误差(MSE)和决定系数(R²)等指标外,平均百分比误差(MAPE,Mean Absolute Percentage Error)也是一个常用的评估指标。MAPE衡量了模型预测值与实际值之间的百分比误差的平均值,有助于我们了解预测的相对准确性。

在Python的机器学习库sklearn中,虽然没有直接提供计算MAPE的函数,但我们可以自己编写一个简单的函数来实现这一功能。下面我们将通过一个示例来展示如何使用sklearn进行预测,并计算MAPE来评估模型的性能。

二、案例学习

首先,我们需要导入必要的库并加载数据集。在这个例子中,我们将使用一个简单的线性回归问题来演示计算MAPE的过程。

from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from sklearn.linear_model import LinearRegression
from sklearn.datasets import fetch_california_housing
from sklearn.metrics import mean_absolute_error 
from sklearn.metrics import r2_score  
import pandas as pd
import numpy as np

housing = fetch_california_housing()

# 加载房价数据集
X = housing.data
y = housing.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

接着,我们创建一个线性回归模型,并使用训练数据进行训练。

# 创建线性回归模型
model = LinearRegression()

# 使用训练数据进行训练
model.fit(X_train, y_train)

训练完成后,我们使用模型对测试集进行预测。

# 对测试集进行预测
y_pred = model.predict(X_test)

现在,我们可以编写一个函数来计算MAPE。MAPE的计算公式是:

M A P E = 1 n ∑ i = 1 n ∣ y i − y ^ i y i ∣ ∗ 100 % MAPE = \frac{1}{n} \sum_{i=1}^{n} \left|\frac{y_i - \hat{y}_i}{y_i}\right| * 100\% MAPE=n1i=1n yiyiy^i 100%

其中 n n n 是数据点的数量, y i y_i yi 是第 i i i 个数据点的实际值, y ^ i \hat{y}_i y^i 是模型对第 i i i 个数据点的预测值。

def calculate_mape(y_true, y_pred):
    y_true, y_pred = np.array(y_true), np.array(y_pred)
    mask = y_true != 0  # 避免除以零
    return np.mean(np.abs((y_true[mask] - y_pred[mask]) / y_true[mask])) * 100

# 计算MAPE
mape = calculate_mape(y_test, y_pred)
print(f'Mean Absolute Percentage Error (MAPE): {mape:.2f}%')

# Mean Absolute Percentage Error (MAPE): 31.95%

在上面的代码中,我们首先定义了一个calculate_mape函数,它接受实际值和预测值作为输入,并返回MAPE的值。在计算MAPE时,我们添加了一个掩码(mask)来排除实际值为零的情况,以避免除以零的错误。最后,我们调用这个函数来计算测试集上的MAPE,并打印结果。

三、总结

MAPE的值越小,说明模型的预测性能越好,预测值与实际值之间的百分比误差越小。然而,需要注意的是,MAPE对异常值比较敏感,因为当实际值很小时,即使预测值的绝对误差很小,也会导致MAPE的值很大。因此,在使用MAPE作为评估指标时,需要结合其他指标和实际情况进行综合考量。文章来源地址https://www.toymoban.com/news/detail-856484.html

到了这里,关于sklearn【MAPE】平均相对误差介绍,以及案例学习!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 图像处理之图像质量评价指标MAE(平均绝对误差)

    一、MAE基本定义 MSE全称为“Mean Absolute Error”,中文意思即为平均绝对误差,是衡量图像质量的指标之一。计算原理为 真实值与预测值的差值的绝对值然后求和再平均 ,公式如下: MAE值越小,说明图像质量越好 。计算MAE有三种方法: 方法一 :计算RGB图像三个通道每个通道

    2024年02月05日
    浏览(42)
  • 【深度学习】4-2 误差反向传播法 - 简单层的实现(层的介绍)

    下面把构建神经网络的“层”实现为一个类。这里所说的“层”是神经网络中功能的单位。 下面先从一些简单的层开始介绍 层的实现中有两个共通的方法(接口) forward() 和 backward() 。 forward() 对应正向传播 backward() 对应反向传播 现在来实现乘法层。看下面代码 backward()将从上

    2024年02月09日
    浏览(38)
  • NetworkX学习笔记03:度、平均度以及度分布

    💗💗💗 💗💗💗

    2024年02月15日
    浏览(38)
  • 机器学习 —— Sklearn包中StandardScaler()、transform()、fit()的详细介绍

    sklearn(scikit-learn)是Scipy的扩展,建立在NumPy和matplotlib库的基础上。自2007年发布以来,sklearn已经成为Python重要的机器学习库。 sklearn支持包括分类、回归、降维和聚类四大机器学习算法。还包含了特征提取、数据处理和模型评估三大模块。 一、  Sklearn包中StandardScaler()    

    2024年02月15日
    浏览(38)
  • Python可视化学习——使用JSON进行数据转换、pyecharts模块调用以及可视化案例的介绍(可视化案例数据暂无),柱状图及动态柱状图的构建

    可视化效果一:2020年印美日新冠累计确诊人数 2020年是新冠疫情爆发的一年,随着疫情的爆发,国内外确诊人数成了大家关心的热点,相信大家都有看过类似的疫情报告.本案例对印度美国日本三个国家确诊人数的进行了可视化处理,形成了可视化的疫情确诊人数报告.  可视

    2024年02月01日
    浏览(78)
  • 【字典学习+稀疏编码Sparse Encoding】简单介绍与sklearn的实现方式

    简单来说,稀疏编码就是把输入向量(信号)/ 矩阵(图像)表示为稀疏的系数向量和一组超完备基向量(字典)的线性组合。 因此,稀疏编码通过上述方式以后, 就可以将输入数据重构为稀疏的向量 :即向量内部元素满足只有很少的几个非零元素或只有很少的几个远大于

    2024年02月12日
    浏览(82)
  • python机器学习(三)特征预处理、鸢尾花案例--分类、线性回归、代价函数、梯度下降法、使用numpy、sklearn实现一元线性回归

    数据预处理的过程。数据存在不同的量纲、数据中存在离群值,需要稳定的转换数据,处理好的数据才能更好的去训练模型,减少误差的出现。 标准化 数据集的标准化对scikit-learn中实现的大多数机器学习算法来说是常见的要求,很多案例都需要标准化。如果个别特征或多或

    2024年02月16日
    浏览(44)
  • 数学建模-------误差来源以及误差分析

    绝对误差 :精确值-近似值; 举个例子:从A到B,应该有73千米,但是我们近似成了70千米;从C到D,应该是1373千米,我们近似成了1370千米,如果使用绝对误差,结果都是3,显然无法衡量我们误差的大小,这个时候我们引入了相对误差; 相对误差 :精确值-近似值/精确值;我

    2024年03月10日
    浏览(52)
  • Go语言网络编程介绍以及案例运用

    1. 基本概念 TCP 和 UDP : Go语言支持TCP(传输控制协议)和UDP(用户数据报协议)。TCP提供可靠的、面向连接的通信,而UDP提供无连接的快速数据传输。 并发 : Go语言的并发模型是通过goroutines实现的。每个网络请求都可以在自己的goroutine中处理,实现高效的并发。 Channels : 用于

    2024年01月25日
    浏览(64)
  • 数仓经典案例-各个视频平均完播率、平均播放进度

    问题1:计算2021年里有播放记录的每个视频的完播率(结果保留三位小数),并按完播率降序排序 注:视频完播率是指完成播放次数占总播放次数的比例。简单起见,结束观看时间与开始播放时间的差=视频时长时,视为完成播放。 答案: 问题2:计算各类视频的平均播放进度,

    2023年04月22日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包