仿照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代码
时间: 2024-02-23 15:00:02 浏览: 23
可以使用以下代码实现:
```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数组。