Linear Regression - 선형회귀의 평가 지표, MAE, MSE, RMSE, R Squared 정리
선형회귀의 다양한 평가 지표에 대한 공부했다.실제 데이터 표본과 예측데이터의 차이를 표현해 성능을 검토하기 위한 지표들이다. 풀어서 말하자면 Training 데이터로 학습한 회귀모델에 Test 또
velog.io
# MAE(Mean Absolute of Errors) 평균절대오차
평균절대오차는 예측값 - 관측값들의 제곱이 아닌 절대값을 통해 음수를 처리한 뒤, 이들의 평균을 통해 구할 수 있다. 제곱을 하지 않기 때문에 단위 자체가 기존 데이터와 같아 회귀계수 증감에 따른 오차를 쉽게 파악할 수 있다.
# MSE(Mean Square of Errors) 평균제곱오차
평균제곱오차는 위 식과 같이 잔차제곱합(RSS)을 해당 데이터의 개수로 나누어서 구할 수 있다.
예측값 - 관측값(데이터값)의 제곱된 값의 평균을 구하는 것이다.
여기서 잔차의 제곱을 하는 이유는 잔차의 값이 음수가 될 수 있는 것을 방지할 수 있고,
제곱을 함으로써 오차의 민감도를 높이기 위함이다.
# RMSE(Root Mean Square of Errors) 평균제곱오차제곱근
평균제곱오차MSE에 루트를 씌워주어 비교에 좋도록 한 평가지표이다.
# R2(R Squared Score) 결정계수
결정계수는 실제 관측값의 분산대비 예측값의 분산을 계산하여 데이터 예측의 정확도 성능을 측정하는 지표이다.
0~1까지 수로 나타내어지며 1에 가까울수록 100%의 설명력을 가진 모델이라고 평가를 하게된다.
관측치에서 예측치를 뺀 값의 제곱합에서 target 평균을 대상으로 하는 관측값의 잔차 제곱합을 나누어준 값을 1에서 빼주면 된다.
from sklearn.metrics import r2_score, explained_variance_score, mean_squared_error
from sklearn.preprocessing import MinMaxScaler # 데이터를 0 ~ 1 사이의 범윌로 표준화
# 표준화
scaler = MinMaxScaler()
x_scaled = scaler.fit_transform(x.reshape(-1, 1)) #sklearn에서 학습모델, 독립변수는 매트릭스를 사용한다.
# 성능파악
print('r2_score(결정계수):{}'.format(r2_score(y_true, y_pred)))
print('explained_variance_score(설명분산점수):{}'.format(explained_variance_score(y_true, y_pred)))
print('mean_squared_error(평균제곱근오차):{}'.format(mean_squared_error(y_true, y_pred)))
데이터셋을 분리하기위해 사용
from sklearn.model_selection import train_test_split
train, test = train_test_split(df, test_size = 0.4, random_state = 2) # 6:4
모델학습은 train data를 사용 : 과적합 방지
모델성능파악은 test data를 사용
'데이터분석 > 데이터분석' 카테고리의 다른 글
혼동행렬, ROC, AUC (0) | 2022.05.11 |
---|---|
로지스틱 회귀분석 (Logistic Regression) (0) | 2022.05.09 |
선형 회귀 분석의 가정 충족 조건 (0) | 2022.05.03 |
회귀 분석 (Regression Analysis) (0) | 2022.05.02 |
상관 관계 분석 (Correlation Analysis) (0) | 2022.05.02 |