对称平均绝对误差百分比smape
时间: 2024-01-27 14:12:49 浏览: 470
对称平均绝对误差百分比(SMAPE)是一种衡量预测值与实际值之间误差的指标。它是对称的,因为它考虑了实际值和预测值之间的差异,同时也考虑了它们的平均值。SMAPE的计算公式为:SMAPE = (1/n) * Σ(|F_t - A_t| / ((|A_t| + |F_t|)/2)) * 100%,其中n是时间序列的长度,F_t是预测值,A_t是实际值。SMAPE的值在0到200之间,值越小表示预测误差越小。
引用提到的对称平均绝对百分比误差(Symmetric Mean Absolute Percentage Error)与SMAPE是同一个指标,只是名称不同。引用中的例子展示了如何使用smape函数计算数据集的SMAPE值。
相关问题
对称平均绝对百分比误差(SMAPE)
对称平均绝对百分比误差(SMAPE)是一种常用的评估预测模型准确性的指标,特别适用于表示真实值为零或非常小的情况。
SMAPE的计算公式如下:
$SMAPE = \frac{1}{n} \sum_{i=1}^n \frac{|F_i - A_i|}{( |F_i|+|A_i|)/2} \times 100\%$
其中,$F_i$表示模型预测的值,$A_i$表示真实值,$n$表示样本数量。
SMAPE的取值范围是0%到200%,越小越好,当SMAPE等于0%时,表示预测值和真实值完全一致;当SMAPE等于200%时,表示预测值和真实值相差极大。
smape PINAW
### SMAPE 和 PINAW 指标的定义与应用场景
#### 定义
SMAPE(Symmetric Mean Absolute Percentage Error)是对称平均绝对百分比误差,用于衡量预测值和实际观测值之间的差异。其计算公式如下:
\[
\text{SMAPE} = \frac{100}{n}\sum_{t=1}^{n}\frac{|F_t-A_t|}{(|A_t|+|F_t|)/2}
\]
其中 \( F_t \) 表示预测值,\( A_t \) 表示真实值,而 \( n \) 是样本数量[^1]。
PINAW(Prediction Interval Normalized Average Width)是预测区间标准化平均宽度,用来评价预测区间的质量。它表示的是预测上下限之差相对于某个尺度的比例均值。对于给定置信水平下的预测区间而言,较窄的 PINAW 更好,因为它意味着更精确的估计范围[^2]。
#### 应用场景
在机器学习评估指标中,这两种度量标准主要用于回归分析中的表现评测。具体来说,
- **SMAPE** 特别适用于那些既有正值也有负值的数据集,并且当数据集中存在零或接近于零的真实值时仍能提供合理的错误率测量方式。由于采用了对称形式,因此可以避免传统 MAPE 中可能出现的大偏差问题。
- **PINAW** 则更多地被应用于时间序列预测等领域,在这些情况下除了关心单点预测准确性外还需要考虑整个分布情况即不确定性量化。通过控制预测区间的宽度来反映模型对未来变化趋势把握程度的同时保持一定的可靠性[^3]。
```python
import numpy as np
def smape(y_true, y_pred):
denominator = (np.abs(y_true) + np.abs(y_pred)) / 2.0
diff = np.abs(y_true - y_pred) / denominator
diff[denominator == 0] = 0.0 # handle division by zero case
return 100 * np.mean(diff)
# Example usage of SMAPE function
y_true = np.array([3, -0.5, 2])
y_pred = np.array([2.5, 0.0, 2])
print(f"SMAPE: {smape(y_true, y_pred):.2f}%")
```
阅读全文
相关推荐














