머신러닝 공부를 하다 보면 오컴의 면도날(Occam's Razor)이란 단어를 종종 마주하게 된다.
단순성의 원리에 대해 강조하기 위해 등장하곤 하는데 의미는 아래와 같다.
- "많은 것들을 필요 없이 가정해서는 안된다" (Pluralitas non est ponenda sine neccesitate.)
- "더 적은 수의 논리로 설명이 가능한 경우, 많은 수의 논리를 세우지 말라."(Frustra fit per plura quod potest fieri per pauciora.)
즉, 어떤 현상을 설명할 때 불필요한 가정을 해서는 안 된다는 것이다. 더 쉽게 말하면 같은 현상을 설명하는 두 개의 주장이 있다면, 간단한 쪽을 선택하라는 뜻이다.
예를 들어 성적이 F가 나왔다는 사실이 있으면 이를 해설하기 위해 아래와 같은 가설을 세울 수 있다.
- a. 공부를 하지 않았다.
- b. 나를 평소 증오하던 교수님이 내 학점만 F를 주었다.
위 두 가설 중 a 가설을 선택하라는 것이다. 물론 b일 수도 있지만 오컴의 면도날은 현상에 대한 설명의 신뢰도를 유추할 수 있는 어림 기준(Rule of Thumb)이므로 완벽한 해답을 알아내는 수단은 아니다. 추가적으로 뉴턴의 불타는 광선검(Newton's Flaming Laser Sword)이라는 호주 출신 수학자 Mike Alder가 제안한 이 개념은 "실험을 할 수 없는 생각은 토론할 가치가 없다.(What cannot be settled by experiment is not worth debating.)"인데 오컴의 면도날 보다 좀 더 강력한 어조로 말한다.
우스갯소리로 보일 수도 있겠지만 실제로 데이터들을 접하고 원하는 예측 또는 분류 모델들을 만들다 보면 독립 변수로 넣을 데이터와 여러 가설들이 난무하는 경우가 있다. 또한 독립 변수가 많아지면 결국 다중공선성 문제가 발생할 가능성이 높아지므로 모델이 얼마나 복잡한가도 모델을 선택하는 기준이 된다. 혹은 너무 주어진 데이터에 편향된 모형을 세운다면 과적합되어 새로운 데이터에 대해서 판단하기 힘들 수도 있다. 그렇다면 변수를 선택하는 방법부터 알아야 하는데, 아래와 같이 어느정도 정형화된 방법이 있다.
변수 선택 방법
1. Subset Selection
- 1부터 p까지 k개에 대해 모델을 구하고 RSS(Residual Sum of Squares, 잔차 제곱합), 결정계수 등을 보고 결정
- 하지만 p가 크면 계산하기 거의 불가능에 가까운 숫자기 때문에 stepwise 방법을 사용
- stepwise 방법
1) 전진 선택법 (forward selection): 절편만 있는 모델에서 기준 통계치를 가장 많이 개선시키는 변수를 차례로 추가
2) 후진 소거법(backward elimination): 모든 변수가 포함된 모델에서 가장 도움이 되지 않는 변수(p값)를 하나씩 제거
3) 단계 선택법(stepwise selection): 모든 변수가 포함된 모델에서 출발하고 기준 통계치에 가장 도움이 되지 않는 변수를 삭제하거나 모델에서 빠져있는 변수 중에서 기준 통계치를 가장 개선시키는 변수를 추가. 이러한 변수의 추가 또는 제거를 반복.
2. Shrinkage
- OLS가 아닌 다른 방식을 이용해 검정 오차가 줄어들게 만드는 것
3. Dimension Reduction
- p개의 predictor을 선형 결합해 M개로 만들어 M < p인 M차원 공간에 Y를 직교 투영하고, 이렇게 탄생한 M개의 변수를 latent variable이라고 부름
위 과정들을 통해 독립 변수를 도출한 뒤 AIC, BIC, Mallow's Cp를 이용하여 좋은 모델을 고를 수 있다. 위에서 말했던 것처럼 RSS(잔차 제곱합), 결정계수를 보고 적절한 모델을 선택하게 되는데 결정계수는 독립변수가 많으면 증가한다. 따라서 이를 조정하기 위해 조정된 결정계수, AIC, BIC, Mallow's Cp 등을 보고 판단할 수 있다.
Mallow's Cp
Mallow's Cp의 수식은 아래와 같다.
$$ C_p = {{RSS_p}\over{\sigma^2}} + 2p-n $$
Mallows's Cp는 모형 내 예측 변수 개수의 균형을 맞추는 데 유용하다. 이는 완전 모형의 정밀도와 치우침을, 예측 변수의 부분 집합을 갖는 모형과 비교한다. 다만 동일한 예측 변수의 전체 집합을 사용하여 시작할 경우에만 유효하다.
예를 들어, 한 감자 칩 회사에서 용기당 부스러진 감자 칩의 백분율에 영향을 미치는 요인을 살펴볼 때 다른 성분, 냉각 비율 및 조리 온도에 상대적인 감자의 백분율을 예측 변수로 회귀 모형에 포함한다.
Step | 부서진 감자칩 비율 | 냉각률 | 조리 온도 | Mallows's Cp |
1 | X | 7.8 | ||
2 | X | X | 2.9 | |
3 | X | X | X | 5.5 |
위의 결과는 "부서진 감자칩 비율"과 "냉각률" 등 항이 두 개인 모형 Mallows's Cp(2.9)가 예측 변수 개수(p)를 더한 값(3)에 가장 가깝기 때문에 상대적으로 정밀하고 Bias가 없는 것으로 보인다. 따라서 좋지 않은 모델은 \(C_p\)값이 p값보다도 클 때이며 좋은 모델은 \(C_p\)가 p값 보다 작을 때이다. 하지만 Mallows's Cp는 \(R^2\), 수정된 \(R^2\), S 등 결과에 포함되는 다른 통계량과 함께 살펴봐야 한다.
AIC(Akaike Information Criterion)와 BIC(Bayesian Information Criterion)
다음은 AIC(Akaike Information Criterion)와 BIC(Bayesian Information Criterion)가 있다. 여기서 Information Criterion은 최대 가능도(우도)에 독립 변수 개수에 대한 손실(penalty)분을 반영하는 방법이다. 이 두 방식 모두 모델이 복잡해질수록 패널티를 부여하지만 가장 큰 차이점은 손실 가중치의 계산 방식이다.
$$ AIC = -2Log(L) + 2p $$ $$ BIC = -2Log(L) + pLog(n) $$
- L: Liklihood
- p: 변수의 개수
- n: 데이터 개수
변수가 많은 모델이라면(p가 큰) RSS는 작아지게 된다. 결국 AIC, BIC를 최소화한다는 뜻은 우도(likelihood)를 가장 크게 하는 동시에 변수 개수는 가장 적은 최적의 모델(parsimonious & explainable)을 의미하게 된다. Bias는 변수를 제거하면서 생기는 오류이고 Variance는 변수가 증가하면서 생기는 오류이다. 상기 AIC와 BIC 식의 좌변을 bias, 우변을 variation으로 부르는 이유이기도 하다.
AIC는 데이터 개수(n)에 상관없이 패널티가 일정하지만, BIC는 데이터 개수(n)가 커질수록 패널티도 함께 커진다. 따라서 BIC가 표본 크기가 커질수록 복잡한 모형을 더 강하게 구별해낸다. 즉, AIC는 실제 데이터의 분포와, 모델이 예측하는 분포의 차이이다. 따라서 AIC가 작으면 모델이 주어진 데이터의 진짜 분포와 유사하다는 뜻이다. 다만 AIC는 실제 데이터의 분포 자체보다는 예측에 대한 것에 중점을 둔다. 실제 데이터의 분포 자체를 판단하기 위해서는 BIC가 더 적합하다.
따라서 예측을 위해서는 AIC, 실제 데이터의 분포를 잘 알고 싶거나 변수 증가에 더 민감한 데이터를 다룰 때는 BIC를 사용하는 것이 바람직하다. 하지만 핵심은 AIC와 BIC는 서로 차이가 있지만, 모형이 복잡해질수록 패널티를 부여하기 위해 존재한다는 것이다.
아래 그림의 변수 개수에 따른 bias와 variance 관계는 최적 모델 선택을 위한 균형점을 제시한다.
관련 포스트
참고 자료
https://blog.daum.net/to302/98