📜  mAPE python (1)

📅  最后修改于: 2023-12-03 14:44:08.706000             🧑  作者: Mango

Python中的mAPE

在预测误差评估中,mAPE(Mean Absolute Percentage Error)是一个广泛使用的指标。它是预测值与真实值之间绝对误差的百分比的平均值,通常用于衡量时间序列预测模型的精度。

在Python中,我们可以使用NumPy和Pandas等库来计算mAPE。

计算mAPE的公式

$$\mathrm{mAPE} = \dfrac{100}{n}\sum\limits_{i=1}^{n}\left|\dfrac{y_i - \hat{y_i}}{y_i}\right|$$

其中,$y_i$是实际值,$\hat{y_i}$是预测值,$n$是数据点的数量。

使用NumPy计算mAPE

使用NumPy,我们可以通过以下几个步骤计算mAPE:

  1. 导入NumPy库:
import numpy as np
  1. 定义实际值和预测值:
y_true = np.array([1, 2, 3, 4, 5])
y_pred = np.array([1.2, 2.2, 2.8, 4.1, 5.3])
  1. 计算绝对误差:
abs_error = np.abs((y_true - y_pred) / y_true)
  1. 计算mAPE:
mape = np.mean(abs_error) * 100

完整代码片段如下(使用assert语句进行单元测试):

import numpy as np

def calculate_mape(y_true, y_pred):
    abs_error = np.abs((y_true - y_pred) / y_true)
    mape = np.mean(abs_error) * 100
    return mape

# 测试
y_true = np.array([1, 2, 3, 4, 5])
y_pred = np.array([1.2, 2.2, 2.8, 4.1, 5.3])
assert np.round(calculate_mape(y_true, y_pred), 2) == 9.8
使用Pandas计算mAPE

使用Pandas,我们可以通过以下几个步骤计算mAPE:

  1. 导入Pandas库:
import pandas as pd
  1. 定义实际值和预测值:
y_true = pd.Series([1, 2, 3, 4, 5])
y_pred = pd.Series([1.2, 2.2, 2.8, 4.1, 5.3])
  1. 计算绝对误差:
abs_error = (y_pred - y_true).abs() / y_true
  1. 计算mAPE:
mabe = abs_error.mean() * 100

完整代码片段如下(使用assert语句进行单元测试):

import pandas as pd

def calculate_mape(y_true, y_pred):
    abs_error = (y_pred - y_true).abs() / y_true
    mape = abs_error.mean() * 100
    return mape

# 测试
y_true = pd.Series([1, 2, 3, 4, 5])
y_pred = pd.Series([1.2, 2.2, 2.8, 4.1, 5.3])
assert round(calculate_mape(y_true, y_pred), 2) == 9.8

以上就是Python中计算mAPE的两种方法,根据实际应用选择适合的方法即可。