平均绝对误差百分比MAPE代码
时间: 2023-07-02 16:05:25 浏览: 78
以下是计算平均绝对误差百分比(MAPE)的Python代码:
```python
def mape(y_true, y_pred):
return np.mean(np.abs((y_true - y_pred) / y_true)) * 100
```
其中,y_true是真实值,y_pred是预测值。要注意的是,若y_true中有0值,需要先将其替换为一个很小的非零值,否则计算时会出现除数为0的情况。
相关问题
平均绝对百分比误差(MAPE)、平均相对变动值(ARV)和相对均方根误差(RRMSE)的python代码实现
以下是 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` 是预测值。可以将真实值和预测值传入这些函数中,以计算出对应的误差指标。
解读一下 [RMSE1,R21,MSE1,RPD1,MAE1,MAPE1]=EvaMetrix(T_sim1,T_train);% 训练集 disp(['BP 训练集 平均绝对误差MAE为:',num2str(MAE1)]) disp(['BP 训练集 均方误差MSE为: ',num2str(MSE1)]) disp(['BP 训练集 均方根误差RMSEP为: ',num2str(RMSE1)]) disp(['BP 训练集 决定系数R^2为: ',num2str(R21)]) disp(['BP 训练集 剩余预测残差RPD为: ',num2str(RPD1)]) disp(['BP 训练集 平均绝对百分比误差MAPE为: ',num2str(MAPE1)]) [RMSE2,R22,MSE2,RPD2,MAE2,MAPE2]=EvaMetrix(T_sim2,T_test);% 测试集 disp(['BP 测试集 平均绝对误差MAE为:',num2str(MAE2)]) disp(['BP 测试集 均方误差MSE为: ',num2str(MSE2)]) disp(['BP 测试集 均方根误差RMSEP为: ',num2str(RMSE2)]) disp(['BP 测试集 决定系数R^2为: ',num2str(R22)]) disp(['BP 测试集 剩余预测残差RPD为: ',num2str(RPD2)]) disp(['BP 测试集 平均绝对百分比误差MAPE为: ',num2str(MAPE2)])
这段代码是用来评估一个BP神经网络模型在训练集和测试集上的性能表现的。其中,EvaMetrix是用来计算各种评估指标的函数,T_sim1和T_train是该模型在训练集上的预测结果和真实值,T_sim2和T_test是该模型在测试集上的预测结果和真实值。具体评估指标包括:
1. 平均绝对误差(MAE)
2. 均方误差(MSE)
3. 均方根误差(RMSE)
4. 决定系数(R^2)
5. 剩余预测残差(RPD)
6. 平均绝对百分比误差(MAPE)
代码分别计算了训练集和测试集上的这些指标,并通过disp函数打印输出。这些指标可以用来评估模型的精度和可靠性,以及在不同数据集上的泛化能力。
阅读全文