회귀 알고리즘 평가 지표 - 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 값 계산하기
지시사항
- train_X 데이터에 대한 MSE, MAE 값을 계산하여 MSE_train, MAE_train에 저장합니다.
- 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
MAE_train : 1.198468
MSE_test : 3.174097
MAE_test : 1.460757
'ML' 카테고리의 다른 글
sklearn을 사용한 의사결정나무 - 데이터 전 처리 (0) | 2022.11.24 |
---|---|
회귀 알고리즘 평가 지표 - R2 (0) | 2022.11.24 |
회귀 알고리즘 평가 지표 - RSS (0) | 2022.11.24 |
다중 회귀 분석하기 - 학습하기 (0) | 2022.11.23 |
다중 회귀 분석하기 - 데이터 전 처리 (0) | 2022.11.23 |