Back to posts

MAE, MSE, RMSE, R2 томъёог Python дээр хэрхэн бичих вэ?

Энэхүү нийтлэлээр регрессийн шинжилгээний алдааг үнэлэх гол хэмжүүрүүд болох MAE, MSE, RMSE, R2 томъёонуудыг хэрхэн Python дээр бичихийг үзье.

Энд:

n – Түүврийн хэмжээ

ytrue, i – i-р түүврийн бодит утга

ypred, i – i-р түүврийн таамагласан утга

ytrue – бодит утгуудын дундаж


1. Numpy ашиглан бичих

# Numpy санг импорт хийж оруулна
import numpy as np

# Mean Absolute Error (MAE)
def mean_absolute_error(y_true, y_pred):
    return np.mean(np.abs(y_true - y_pred))

# Mean Squared Error (MSE)
def mean_squared_error(y_true, y_pred):
    return np.mean((y_true - y_pred) ** 2)

# Root Mean Squared Error (RMSE)
def root_mean_squared_error(y_true, y_pred):
    return np.sqrt(mean_squared_error(y_true, y_pred))

# R-squared (R2)
def r_squared(y_true, y_pred):
    numerator = np.sum((y_true - y_pred) ** 2)
    denominator = np.sum((y_true - np.mean(y_true)) ** 2)
    return 1 - (numerator / denominator)
# Жишээ өгөгдөл
y_true = np.array([3, -0.5, 2, 7])
y_pred = np.array([2.5, 0.0, 2, 8])
# Функц ашиглах
mae = mean_absolute_error(y_true, y_pred)
mse = mean_squared_error(y_true, y_pred)
rmse = root_mean_squared_error(y_true, y_pred)
r2 = r_squared(y_true, y_pred)

# Үр дүнг хэвлэх
print("Mean Absolute Error (MAE):", mae)
print("Mean Squared Error (MSE):", mse)
print("Root Mean Squared Error (RMSE):", rmse)
print("R-squared (R2):", r2)

Үр дүн:

Mean Absolute Error (MAE): 0.5
Mean Squared Error (MSE): 0.375
Root Mean Squared Error (RMSE): 0.6123724356957945
R-squared (R2): 0.9486081370449679


2. Scikit-learn ашиглан бичих

# Scikit-Learn сангаас mae, mse, r2-г оруулж ирнэ.
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score

# Mean Absolute Error (MAE)
mae = mean_absolute_error(y_true, y_pred)
print("Mean Absolute Error (MAE):", mae)

# Mean Squared Error (MSE)
mse = mean_squared_error(y_true, y_pred)
print("Mean Squared Error (MSE):", mse)

# Root Mean Squared Error (RMSE)
rmse = np.sqrt(mse)
print("Root Mean Squared Error (RMSE):", rmse)

# R-squared (R2)
r2 = r2_score(y_true, y_pred)
print("R-squared (R2):", r2)

Үр дүн:

Mean Absolute Error (MAE): 0.5
Mean Squared Error (MSE): 0.375
Root Mean Squared Error (RMSE): 0.6123724356957945
R-squared (R2): 0.9486081370449679
error: