Python 误差分析——计算MSE RMSE R MAE MAPE

MSE 均方误差

# MSE计算
def mse(target, predict):
    return ((target - predict)**2).mean()
mse_val = mse(np.array(BH_old_data), np.array(BH_new_data))
mse_val_new = mse(np.array(BH_old_data), np.array(new_model_predict))

RMSE 均方根误差

# RMSE计算
def rmse(predictions, targets):
    return np.sqrt(((predictions - targets) ** 2).mean())
rmse_val = rmse(np.array(BH_old_data), np.array(BH_new_data))
rmse_val_new = rmse(np.array(BH_old_data), np.array(new_model_predict))

R 相关系数

# R相关系数计算
def R(target, predict):
    SSR = sum((predict - (target).mean())**2)
    SST = sum((target - (target).mean())**2)
    return SSR/SST
r_val = R(np.array(BH_old_data), np.array(BH_new_data))
r_val_new = R(np.array(BH_old_data), np.array(new_model_predict))

MAE 平均绝对误差

# MAE计算
def mae(target, predict):
    return (abs(target-predict)).mean()
mae_val = mae(np.array(BH_old_data), np.array(BH_new_data))
mae_val_new = mae(np.array(BH_old_data), np.array(new_model_predict))

MAPE 平均绝对百分比误差

# MAPE计算
def MAPE(target, predict):
    return (abs((target-predict)/target)).mean() * 100
mape_val = MAPE(np.array(BH_old_data), np.array(BH_new_data))
mape_val_new = MAPE(np.array(BH_old_data), np.array(new_model_predict))

因为海浪高度的数据跨度不高,一般R、MAE、MAPE用的较多,RMSE、MSE使用较少。

R  一般越接近1,说明预测效果越好。

你可能感兴趣的:(海浪智能预报,python)