EasyMachineLearningDemo / metrics /calculate_regression_metrics.py
LLH
2024/02/20/14:15
10c7c36
raw
history blame
1.24 kB
import numpy as np
from sklearn.metrics import *
class RegressionMetrics:
@classmethod
def get_metrics(cls):
return ["MAE", "MSE", "RSME", "R-Sqaure", "Adjusted R-Square"]
def calculate_regression_metrics(pred_data, real_data):
info = {}
info["MAE"] = mean_absolute_error(real_data, pred_data)
# mae = mean_absolute_error(real_data, pred_data)
info["MSE"] = mean_squared_error(real_data, pred_data)
# mse = mean_squared_error(real_data, pred_data)
info["RSME"] = np.sqrt(info["MSE"])
# rsme = np.sqrt(info["MSE of "+model_name])
info["R-Sqaure"] = r2_score(real_data, pred_data)
# r2 = r2_score(real_data, pred_data)
if isinstance(max(real_data), np.ndarray):
info["Adjusted R-Square"] = 1 - (1 - info["R-Sqaure"]) * (len(pred_data)-1) / (len(pred_data)-max(real_data)[0]-1)
# ar2 = 1 - (1 - info["R-Sqaure of "+model_name]) * (len(pred_data)-1) / (len(pred_data)-max(real_data)[0]-1)
else:
info["Adjusted R-Square"] = 1 - (1 - info["R-Sqaure"]) * (len(pred_data) - 1) / (len(pred_data) - max(real_data) - 1)
# ar2 = 1 - (1 - info["R-Sqaure of " + model_name]) * (len(pred_data) - 1) / (len(pred_data) - max(real_data) - 1)
return info