第二十二章 番外 mape

MAPE(Mean Absolute Percentage Error,平均绝对百分比误差)是一种常用的评价回归模型预测精度的指标。它衡量了预测值与真实值之间的差异,以百分比的形式表达。MAPE 越接近于 0%,说明模型的预测性能越好。

MAPE 的定义

MAPE 的计算公式如下:

$ \text{MAPE} = \frac{1}{n} \sum_{t=1}^{n} \left| \frac{y_t - \hat{y}_t}{y_t} \right| \times 100% $

其中:

  • ( n ) 是观测的数量;
  • ( y_t ) 是第 ( t ) 个观测的实际值;
  • $ \hat{y}_t $ 是第 ( t ) 个观测的预测值。

计算步骤

  1. 对于每一个观测值,计算预测值与实际值之间的差值。
  2. 将差值除以实际值,得到相对误差。
  3. 对相对误差取绝对值,得到绝对百分比误差。
  4. 计算所有观测值的绝对百分比误差的平均值,即得到 MAPE。

特点和限制

优点
  • 易于理解和解释:MAPE 的结果以百分比形式给出,容易被非专业人员理解。
  • 尺度无关性:MAPE 不受数据尺度的影响,使得不同尺度的数据可以直接比较其预测性能。
缺点
  • 对零值敏感:当实际值 $ y_t $ 接近于零时,分母接近于零会导致 MAPE 变得非常大甚至无法计算。
  • 偏向性:MAPE 对过小的预测值更为敏感,因为它使用了绝对值,这意味着预测值远小于实际值时,MAPE 会非常高。
  • 非对称性:MAPE 对于过高或过低的预测值不是对称的。例如,预测值是实际值的两倍和实际值的一半,其 MAPE 是不一样的。
  • 可能被误解:即使 MAPE 很低,也可能存在系统偏差,即模型总是倾向于预测过高或过低。

应用场景

MAPE 常用于金融、销售预测、天气预报等领域,特别是在需要直观理解预测偏差的场合。然而,在处理可能包含零值或极小值的数据集时,应谨慎使用 MAPE,因为这些情况可能导致 MAPE 的计算结果不可靠。

替代指标

由于 MAPE 的局限性,有时会使用其他指标来补充或替代 MAPE,例如:

  • 均方误差(MSE,Mean Squared Error)
  • 均方根误差(RMSE,Root Mean Squared Error)
  • 平均绝对误差(MAE,Mean Absolute Error)
MAPE(Mean Absolute Percentage Error)是一种用于衡量预测模误差的指标。在Python中可以使用以下方式计算MAPE: ``` import numpy as np def mape(actual, pred): actual, pred = np.array(actual), np.array(pred) return np.mean(np.abs((actual - pred) / actual)) * 100 ``` 以上代码定义了一个名为mape的函数,接受两个参数actual和pred,分别代表真实值和预测值。函数内部将这两个参数转换为NumPy数组,并使用数学公式计算MAPE值。最后,返回MAPE值乘以100的结果。 另外,也可以使用以下代码计算MAPE: ``` import numpy as np def mape(y_test, pred): y_test, pred = np.array(y_test), np.array(pred) mape = np.mean(np.abs((y_test - pred) / y_test)) * 100 return mape ``` 该代码与前面的代码类似,只是将函数的返回值命名为mape。 下面是一个计算MAPE的示例: ``` y_test = [1, 2, 3, 4, 5] pred = [0.5, 1.5, 2.5, 3.5, 4.5] mape_score = mape(y_test, pred) print("MAPE Score: {:.2f}%".format(mape_score)) ``` 在这个示例中,y_test表示真实值,pred表示预测值。通过调用mape函数计算MAPE得分,并打印结果。结果将以百分比的形式显示在屏幕上。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [如何在 Python 中计算 MAPE](https://blog.csdn.net/weixin_54707168/article/details/125065017)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [使用Python计算MAPE得分](https://blog.csdn.net/update7/article/details/131095464)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值