ML

회귀 알고리즘 평가 지표 - MSE, MAE

Haribo- 2022. 11. 24. 15:53

회귀 알고리즘 평가 지표 - MSE, MAE

[실습7] 에 이어서 Sales 예측 모델의 성능을 평가하기 위해서 다양한 회귀 알고리즘 평가 지표를 사용하여 비교해보겠습니다.

이번 실습에서는 학습용 및 평가용 데이터에 대해서 MSE와 MAE을 계산해보겠습니다.

MSE와 MAE는 아래와 같이 정의할 수 있고 sklearn 라이브러리 함수를 통하여 쉽게 구할 수 있습니다.

은 전체 샘플의 개수를 의미합니다.


MSE, MAE 평가 지표를 계산하기 위한 사이킷런 함수/라이브러리

  • mean_squared_error(y_true, y_pred): MSE 값 계산하기
  • mean_absolute_error(y_true, y_pred): MAE 값 계산하기

지시사항

  1. train_X 데이터에 대한 MSE, MAE 값을 계산하여 MSE_train, MAE_train에 저장합니다.
  2. test_X 데이터에 대한 MSE, MAE 값을 계산하여 MSE_test, MAE_test에 저장합니다.
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import mean_squared_error

# 데이터를 읽고 전 처리합니다
df = pd.read_csv("data/Advertising.csv")
df = df.drop(columns=['Unnamed: 0'])

X = df.drop(columns=['Sales'])
Y = df['Sales']

train_X, test_X, train_Y, test_Y = train_test_split(X, Y, test_size=0.2, random_state=42)


# 다중 선형 회귀 모델을 초기화 하고 학습합니다
lrmodel = LinearRegression()
lrmodel.fit(train_X, train_Y)


# train_X 의 예측값을 계산합니다
pred_train = lrmodel.predict(train_X)

"""
1. train_X 의 MSE, MAE 값을 계산합니다
"""
MSE_train = mean_squared_error(train_Y, pred_train) # mean_squared_error() 를 활용해서 MSE를 계산합니다.
MAE_train = mean_absolute_error(train_Y, pred_train) # mean_absolute_error() 를 활용해서 MAE를 계산합니다.
print('MSE_train : %f' % MSE_train)
print('MAE_train : %f' % MAE_train)

# test_X 의 예측값을 계산합니다
pred_test = lrmodel.predict(test_X)

"""
2. test_X 의 MSE, MAE 값을 계산합니다
"""
MSE_test = mean_squared_error(test_Y, pred_test) # mean_squared_error() 를 활용해서 MSE를 계산합니다.
MAE_test = mean_absolute_error(test_Y, pred_test) # mean_absolute_error() 를 활용해서 MAE를 계산합니다.
print('MSE_test : %f' % MSE_test)
print('MAE_test : %f' % MAE_test)
 
MSE_train : 2.705129
MAE_train : 1.198468
MSE_test : 3.174097
MAE_test : 1.460757