平均绝对百分比误差(MAPE)、平均相对变动值(ARV)和相对均方根误差(RRMSE)的python代码实现
时间: 2023-10-16 21:09:03 浏览: 341
以下是 MAPE、ARV、RRMSE 的 Python 代码实现:
```python
import numpy as np
def mape(y_true, y_pred):
"""
计算平均绝对百分比误差(MAPE)
"""
y_true, y_pred = np.array(y_true), np.array(y_pred)
return np.mean(np.abs((y_true - y_pred) / y_true)) * 100
def arv(y_true, y_pred):
"""
计算平均相对变动值(ARV)
"""
y_true, y_pred = np.array(y_true), np.array(y_pred)
return np.mean(np.abs(y_true - y_pred) / np.abs(y_true))
def rrmse(y_true, y_pred):
"""
计算相对均方根误差(RRMSE)
"""
y_true, y_pred = np.array(y_true), np.array(y_pred)
return np.sqrt(np.mean(np.square((y_true - y_pred) / y_true)))
```
其中,`y_true` 是实际值,`y_pred` 是预测值。可以将真实值和预测值传入这些函数中,以计算出对应的误差指标。
相关问题
仿照from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score r_2 = r2_score(test,predict_sunspots) print('Test r_2: %.6f' % r_2),给出平均绝对百分比误差(MAPE)、平均相对变动值(ARV)和相对均方根误差(RRMSE)的python代码
可以使用以下代码实现:
```python
import numpy as np
def mape(y_true, y_pred):
"""
计算平均绝对百分比误差
"""
return np.mean(np.abs((y_true - y_pred) / y_true)) * 100
def arv(y_true, y_pred):
"""
计算平均相对变动值
"""
return np.mean(np.abs(y_true - y_pred) / np.abs(y_true))
def rrmse(y_true, y_pred):
"""
计算相对均方根误差
"""
return np.sqrt(np.mean(np.square((y_true - y_pred) / y_true)))
# 示例
y_true = np.array([1, 2, 3, 4, 5])
y_pred = np.array([0.8, 2.3, 2.9, 3.8, 4.6])
mape_value = mape(y_true, y_pred)
arv_value = arv(y_true, y_pred)
rrmse_value = rrmse(y_true, y_pred)
print("MAPE: %.6f" % mape_value)
print("ARV: %.6f" % arv_value)
print("RRMSE: %.6f" % rrmse_value)
```
注意,这里假设`y_true`和`y_pred`都是numpy数组。
平均绝对百分比误差MAPE
平均绝对百分比误差(MAPE)是一种衡量预测准确性的指标,常用于评估预测模型在时间序列分析和预测中的性能。它可以用于比较不同模型或算法的预测准确性。
MAPE的计算公式如下:
MAPE = (1/n) * Σ(|(实际值 - 预测值) / 实际值|) * 100
其中,n是样本数量,实际值是观测到的真实值,预测值是模型预测得到的值。
MAPE的结果以百分比表示,数值越小表示预测准确性越高。然而,需要注意的是,当实际值为零或接近零时,计算MAPE可能会存在问题,因为分母接近零会导致无穷大或不可定义的结果。
总的来说,MAPE是一种常用的评估预测准确性的指标,可以帮助我们了解模型的性能如何。
阅读全文