如何用Python计算SMAPE
在这篇文章中,我们将看到如何在Python中计算确定预测准确性的方法之一,即对称平均绝对百分比误差(或简称SMAPE)。
SMAPE是克服MAPE预测误差测量局限性的替代方法之一。与平均绝对百分比误差相比,SMAPE既有下限也有上限,因此,它被称为对称的。SMAPE中的’S’代表对称,’M’代表平均数,它包含了一个系列的平均值,’A’代表绝对值,它使用绝对值来防止正负误差相互抵消,’P’是百分比,使这个准确性指标成为相对指标,’E’代表误差,因为这个指标有助于确定我们预测的误差量。
SMAPE的公式。
考虑下面的例子,我们有一家商店的销售信息。日期栏代表我们所指的日期,实际销售栏代表相应日期的实际销售值,而预测销售栏代表销售数字的预测值(可能使用ML模型)。最后一列是最后第三列和最后第二列之间的划分。
Day No. | Actual Sales | Forecast Sales | A |预测-实际| | B(|实际|+|预测|)/2 | A / B |
---|---|---|---|---|---|
1 | 136 | 134 | 2 | 135 | 0.014 |
2 | 120 | 124 | 4 | 122 | 0.032 |
3 | 138 | 132 | 6 | 135 | 0.044 |
4 | 155 | 141 | 14 | 148 | 0.094 |
5 | 149 | 149 | 0 | 149 | 0 |
上述例子中的SMAPE值将是A/B栏中条目的平均值。该值为0.0368。
用Python计算SMAPE
输出:
Explanation:
在该程序中,我们计算了同一数据集的SMAPE度量值,该数据集以3种不同的数据类型格式作为函数参数,即python list、NumPy array和pandas dataframe。该函数被泛化为可以处理任何类似python系列的数据作为输入参数。该函数首先将数据类型转换为Numpy数组,这样使用NumPy方法进行计算就变得容易了。返回语句可以通过以下图片来解释。