My Data Story
[회귀] 선형 회귀 모델 평가 및 모델 선택 본문
◈ '회귀' 목차 ◈
3. 선형 회귀 모델 평가 및 모델 선택
선형 회귀 모델 평가 지표에 대해 살펴보고, 다중 선형 모델 구현 시 최적의 예측 변수 선택하는 방법에 대해 알아보자.
1. 선형 회귀 모델 평가
Average Error
sign effect 에 따라 적절하지 않은 결론으로 도달하기 쉬워 절대 사용 안 한다.
Mean Absolute Error (MAE)
Average Error 에 절댓값을 적용한 지표인데 상대적 차이값을 나타내기 어렵다.
Mean Absolute Percentage Error (MAPE)
상대적 차이값을 비교할 수 있지만 절댓값이 존재하여 미분이 가능하지 않다.
Root Mean Square Error (RMSE)
회귀 모델은 모델이 훈련 데이터에 얼마나 잘 들어맞는 지 측정하는 성능 지표로 제곱근 평균제곱오차(RMSE) 을 활용한다.
이 지표는 전반적인 모델의 정확도를 측정하고 다른 모델과 비교하기 위한 기준이 된다.
사이킷런에서 RMSE 를 구하면 다음과 같다.
from skelarn.metrics import mean_squared_error
from sklearn.linear_model import SGDRegressor
#모델 훈련
sgd_model = SGDRegressor()
sgd_model.fit(x_train, y_trian)
y_pred = lin_model.predict(x_tset)
#모델 평가
mse = means_squared_error(y_test, y_pred)
rmse = np.sqrt(mse)
print('MSE : ' , mse, ' RMSE : ', rmse)
데이터가 정규 분포를 따르거나 극단적인 Outlier 가 없는 경우 RMSE 와 MAE 는 유사한 값을 갖는다. (정확히 같다는 말은 아니다.)
※ 모델 평가 지표를 측정할 때, 교차 타당성 검사해야 한다.
(교차 타당성 검사 - 여러 개의 연속된 홀드 아웃 샘플 활용하여 모델 평가하는 방식)
2. 선형 회귀 모델 해석
R의 summary 함수를 활용할 경우, 회귀 모형에 대한 RMSE 뿐 아니라 다른 지표들도 함께 출력된다.
다음 지표들은 선형 회귀 모델을 '설명적 회귀 분석 (Explanatory Regression)' 으로 활용할 때 주로 사용된다.
Std.Error
계수의 표준 오차(SE)
t value 및 p-value
예측 변수와 목표 변수를 랜덤하게 재배치했을 때 우연히 얻을 수 있는 범위를 얼마나 벗어났는 지를 측정한다.
t 통계량이 높을수록 (p값이 낮을수록) 예측 변수는 더욱 유의미하다.
즉 높은 t 통계량 (p값이 0에 가까워짐)의 예측 변수는 모델에 포함하면 된다.
보통 신뢰도 95% 설정하여 추정한다면 p-value 가 0.05 보다 작은 특성만을 유의미하다고 간주한다.
Estimate (Coefficient)
Coeffieicnt는 각 X 특성 별 추정 계수이다.
설명 변수가 1 증가할 때 종속 변수가 증가하는 정도로 부호는 종속 변수와 설명 변수간의 상관 관계 방향을 알 수 있다.
보통 변수의 추정계수에 대해 해석할 때 p-value 를 먼저 확인하여 유의미한 특성을 선택한다.
이때 유의미한 특성 대상으로 Coefficient 를 확인한다.
R-Sqaured
결정 계수라 부르는 R제곱 통계량으로 모델 데이터의 변동성을 0에서 1까지의 값으로 표현한다.
모델이 데이터에 얼마나 적합하지 평가하고자 할 때, 회귀 분석을 설명하기 위한 용도로 설명한다.
(( R-Squared 해석 ))
0 ≤ R-Squared ≤ 1 값을 갖는다.
R-Squared = 1 이면, 갖고 있는 data 변동성을 회귀모형이 모두 설명하고 있다 (Perfect Linear Model)
R-Squared = 0 이면, 설명 변수와 종속 변수 사이에는 아무런 선형 관계가 없다 (No Linear Relationship)
cf. R-Squared = 0 일 때 No Relation 이라고 하면 틀림 => X와 Y 사이의 관계가 존재할 수는 있기 때문 (예. 포물선)
R-Squared 는 데이터 분석가에 의해 좌우되는 값이 아니라 데이터 속성에 따라 좌우된다.
즉 누가 회귀 계수를 추정하던 동일한 R-Squared 값이 도출된다.
R-Squared(adjusted)
R-Squared 의 가장 큰 단점은 "변수 갯수가 많을수록 R-Squared 값이 계속 증가한다." 것이다. 심지어 필요 없는 변수를 추가해도 R-Squared 값 증가한다. 따라서 모델이 잘 생성되었는 지 판단할 때는 R-Squared(adjusted) 값을 봐야 한다.
※ 정리를 하면 선형 회귀 모델이 잘 만들어졌나 확인하기 위해서 R-Squared(adjusted) 큰 지 확인하고, 잔차가 정규 분포 따르는 지 확인한다. (잔차 평균=0, constant varience)
3. 모델 선택 및 단계적 회귀
다중 선형 회귀 분석 문제에서는 많은 변수를 예측 변수로 활용할 수 있다.
하지만 더 많은 변수를 추가한다고 꼭 더 좋은 모델을 얻는 것은 아니다.
변수를 추가하면 항상 RMSE는 감소하고 R-Squared 는 증가하기 때문에
이렇게 추가하는 변수들은 모델 선택에 별 도움이 되지 않는다.
통계학자들은 모델 선택을 위한 지침으로 오컴의 면도날 원리를 사용한다.
모든 조건이 동일한 조건에서는 복잡한 모델보다는 단순한 모델이 더 나을 수 있다는 원리다.
이를 반영한 측정 기준이 AIC 이다.
AIC는 모델에 항을 추가할 수록 불이익을 준다.
AIC 식에 대해 해석해보면 '같은 변수의 갯수라면 기왕에 성능(Performance) 좋은 모델을 선택하겠다.' 그리고 '비슷한 성능 (Performance) 라면 변수 갯수가 더 적은 모델을 선택하겠다.' 는 의미를 갖는다.
AIC를 활용해 최적의 변수 조합을 갖은 모델을 찾을 수 있다.
AIC 가 작을 수록 최적 변수로 구성된 모델이다.
cf. AIC의 변형들로 BIC, 맬론즈 Cp 등이 있다.
BIC는 AIC와 비슷하지만 변수 추가에 대해 더 강한 벌점을 주는 정보기준이다.
맬론즈 Cp는 콜린 링우드 맬로즈가 제안한 AIC 변형이다.
모델의 최적의 변수 조합을 찾는 몇 가지 방법에 대해 살펴보자.
(1) 부분 집합 회귀
부분 집합 회귀로서 가능한 모든 모델을 검색하여 AIC를 측정하는 방법이다.
이것은 계산 비용이 많이 들며, 대용량 데이터와 변수가 많은 문제에 적합하지 않다.
(2) 단계적 회귀
예측 변수를 연속적으로 추가/삭제하여 AIC를 낮추는 모델을 찾는다.
(R에서 MASS 패키지는 stepAIC라는 단계적 회귀 함수를 제공한다.)
1) forward selection (전진 선택)
전진 선택에서는 예측 변수 없이 시작하여 각 단계에서 R-Squared 에 가장 큰 기여도를 갖는 (또는 AIC 를 낮추는) 예측 변수를 하나씩 추가하고, 회귀 모델이 통계적으로 더 이상 유의미하지 않을 때 중지한다. 이때 한 번 추가된 예측 변수는 다음 단계에서 제거하지 않는다.
2) backward selection (후진 선택)
후진 선택 또는 후진 제거 backward elimination 에서는 전체 모델로 시작해서, 모든 예측 변수가 통계적으로 유의미한 모델이 될 때까지 통계적으로 유의하지 않은 예측 변수를 제거해간다. 이때 한 번 제거된 예측 변수는 다음 단계에서 추가하지 않는다.
3) Stepwise selection
예측 변수 없이 시작하여 Forward selection 과 Backward selection 을 번갈아 수행한다. 이때 선택 또는 제거되었던 예측 변수에 대해 다음 단계에서 다시 고려할 수 있다. 이러한 과정을 통해 이전 과정에서 탐색해보지 못한 조합에 대해서도 살펴볼 수 있다.
(4) 벌점 회귀
벌점 회귀는 개념적으로 AIC와 같다.
개별 모델 집합들을 검색하지 않고 많은 변수가 있는 모델에 불이익을 주도록 모델 비용 함수에 제약 조건을 추가한다. 단계적, 전진 선택, 후진 선택처럼 예측 변수를 완전히 제거하지 않고, 벌점 회귀에서는 계수 크기를 감소시키거나 경우에 따라 0으로 만들어 벌점을 적용한다. 많이 사용되는 벌점 회귀 방법으로 능형 회귀와 라소 회귀가 있다. 능형 회귀와 라소 회귀에 대해서는 '8. 규제가 있는 선형 회귀' 에서 더 자세히 다루도록 하겠다.
※ 단계적 회귀 분석과 모든 부분집합 회귀 분석 시에도 교차 타당성 검사를 진행하도록 한다.
'Machine Learning > 2. 지도 학습 알고리즘' 카테고리의 다른 글
[회귀] 선형 회귀 가설 검정 : 회귀 진단 (0) | 2021.08.06 |
---|---|
[회귀] 선형 회귀 모델 해석 (0) | 2021.08.06 |
[회귀] 선형 회귀로 새로운 데이터 예측 (0) | 2021.08.06 |
[회귀] 선형 회귀 모델 훈련 (0) | 2021.08.06 |
[회귀] 선형 회귀 개념 (0) | 2021.08.06 |