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,说明预测效果越好。