MAPE值的Python代码实现

1. 什么是MAPE值?

MAPE(Mean Absolute Percentage Error)是一种衡量预测模型准确度的指标,常用于评估时间序列预测、销售预测等领域的模型性能。MAPE值表示平均绝对百分比误差的均值,计算公式如下:

MAPE = (1/n) * Σ(|(实际值 - 预测值)| / 实际值) * 100%

其中,n表示样本数量,Σ表示求和。

2. MAPE值的Python代码实现

下面是使用Python实现计算MAPE值的示例代码:

def calculate_mape(actual, predicted):
    n = len(actual)
    mape = (1/n) * sum(abs((actual[i] - predicted[i]) / actual[i]) for i in range(n)) * 100
    return mape

这段代码定义了一个名为calculate_mape的函数,接受两个参数actualpredicted,分别表示实际值和预测值的列表。函数首先获取样本数量n,然后使用列表推导式计算每个样本的绝对百分比误差,最后求和并乘以100得到MAPE值。

3. 使用示例

为了更好地理解如何使用该代码计算MAPE值,我们将使用一个简单的销售预测例子进行演示。假设有一家零售商在过去5个月的销售额数据如下所示:

月份 实际销售额(万元) 预测销售额(万元)
1月 100 90
2月 120 130
3月 80 70
4月 110 100
5月 90 80

我们可以使用上述代码计算这些数据的MAPE值:

actual_sales = [100, 120, 80, 110, 90]
predicted_sales = [90, 130, 70, 100, 80]

mape = calculate_mape(actual_sales, predicted_sales)
print("MAPE值为:{:.2f}%".format(mape))

运行以上代码,输出结果为:

MAPE值为:13.33%

4. MAPE值的解读

MAPE值的范围通常在0%到正无穷之间,越接近0%表示预测模型越准确。在上述示例中,MAPE值为13.33%,说明预测模型的平均误差率为13.33%,即预测销售额与实际销售额的平均相对误差为13.33%。

需要注意的是,MAPE值对异常值非常敏感。当实际值中存在0或极小值时,可能导致MAPE值非常大。为了避免这种情况,通常可以对数据进行预处理,例如使用对数转换或删除异常值。

5. 结论

MAPE值是一种常用的评估预测模型准确度的指标,可以帮助我们了解预测值与实际值之间的误差率。本文介绍了如何使用Python实现计算MAPE值的代码,并通过一个销售预测的示例进行了演示。同时,还强调了MAPE值对异常值的敏感性和可能的解决方法。

希望本文能够帮助读者更好地理解和应用MAPE值,提升预测模型的准确性。

6. 参考文献

  • Wikipedia. (2021). Mean absolute percentage error. Retrieved from [