Saturday, April 29, 2017

ISLR 2.1 - An Introduction to Statistical Learning (with applications in R):



pdf 다운로드 링크
구매 링크 (네이버 책)

2. 통계 학습 Statistical Learning

2.1. 통계 학습이란? What is statistical learning?


통계 학습을 설명하기 위해 여기에서는 간단한 예를 하나 듭니다. (통계) 컨설턴트로 업무를 맡게 되었고 고객이 매출을 늘리기 위해 어떤 광고를 어떻게 집행해야하는지 궁금해하는 상황이라고 가정해보죠. 200개의 다른 시장 자료가 있고, 각각은 TV/라디오/신문 광고를 얼마씩 집행했으며 발생한 매출인지를 정리한 자료입니다. 예를 들어 TV가 효과가 제일 좋고, 라디오는 별로니 양을 줄이시고, 이런 컨설팅을 해줄 수 있겠죠. 아래 그림 (그림 2-1)같은 형태가 될테구요.


이 상황이라면 종류별 광고 예산을 입력 변수 input variable으로, 매출 sales을 출력 변수 output variable로 놓을 수 있습니다. 기호를 쓴다면 $X_1$, $X_2$, $X_3$이 각각 TV/라디오/신문 광고 집행 비용에 해당하겠죠. 출력은 $Y$가 되구요.

이 식을 좀 더 일반적으로 쓰면, 입력을 $X=(X_1, X_2, .., X_p)$로 놓고 이 입력과 출력간에 어떤 관계가 있는지를 알아내는게 우리의 목적이 됩니다. 수식으로 쓰면..

$Y = f(X) + \epsilon$
가 되게습니다.
이 식에서 $f$가 뭔지는 지금 모르고, $\epsilon$은 뭔진 모르지만 $X$완 관계 없는 추가적인 노이즈가 됩니다. 평균은 0이구요. 이렇게 가정을 하면 $f$는 $X$와  $Y$의 관계를 규정하는 함수가 됩니다.

2.1.1. f를 추정하는 이유

$f$를 추정하는 이유는 두가지가 있습니다. 예측 prediction과 추론 inference 입니다.

Prediction
$X$는 알지만 $Y$를 모르는 경우가 보통입니다. 이럴 때 $f$의 추정값 $\hat{f}$를 안다면 출력값을 역시 추정 $\hat{Y}$할 수 있겠죠. 

$\hat{Y}=\hat{f}(X)$

이렇게요. 위에서 $\epsilon$의 평균이 0이라고 가정했기때문에 추정치는 평균적으로 $\epsilon$을 무시한거구요. 이렇게 값을 예측하는 경우에 $\hat{f}$을 블랙박스로 생각합니다. 즉, 그 구조가 뭔지는 알바 아니라는거죠. 정확한 예측만 한다면.

$\hat{Y}$의 정확도는 줄일 수 있는 에러 reducible error와 우리가 어찌할 수 없는 에러 irreducible error 두 가지에 달려있습니다. "완벽한" 함수 $f$를 찾았다 하더라도 이를 이용한 추정치 $\hat{Y}=f(X)$는 오차 $\epsilon$이 있습니다. 왜냐하면 $\epsilon$를 처음부터 그렇게 정의했기 때문입니다. 이 $\epsilon$ 때문에 생기는 오차를 irreducible error라고 부릅니다.

예를 들어, $\epsilon$는 애당초 우리가 측정을 안하는 값의 영향일수가 있겠죠. 위의 예를 들면 티비/신문/라디오랑 관계 없는 다른 요소가 (당연히) 매출에 영향을 줄 것이고 따라서 저 데이터로 아무리 노력을 해도 그 부분은 모델에 넣을 수가 없습니다.

이 책에서는 우리가 데이터로 모델링할 수 있는 오차인 reducible error를 줄이는데 초점을 둡니다.

Inference
예측도 좋지만, 대체 어떤 과정으로 이런 일이 일어나는지 그 내부 논리/구조를 알고싶을 수도 있겠죠. 이렇게 모델을 추론하기 위해 $f$를 추정 estimate합니다. 책에는 3가지로 나눴지만 결국은 
어떤 입력이 출력과 어떤 관계가 있는지
를 알아보는 일 입니다.

2.1.2 어떻게 $f$를 추정하나요?

앞으로 다양한 선형/비선형 모델을 보겠지만 몇가지 공통점이 있습니다. 일단 $n$개의 데이터가 주어진다면 이를 학습 데이터라고 부릅니다. 데이터 하나가 $j$개 (예: 입력이 티비/라디오/신문 3개라면 $j=3$)의 입력을 갖는다고 하죠.

우리의 목적은 통계 학습을 학습 데이터에 잘 적용해서 함수 $\hat{f}$를 찾는 것입니다. 잘 찾아졌다면 어떤 데이터를 가져와도 대략적으로 $Y=\hat{f}(X)$가 성립하겠죠.

매개변수 방법 parametric methods
매개변수 방법은 두 단계로 이루어져있습니다.
  1. 함수의 형태를 특정한 모양으로 가정합니다. 예를 들어
    $f(X) = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + ... + \beta_p X_p$
    라고 가정을 할 수 있겠죠. 참고로 이를 선형 모델이라고 부릅니다. 
  2. 모델을 고른 뒤엔, 학습 데이터를 써서 모델을 학습 (fit, train)합니다. 그렇게 하면 $\beta_0, \beta_1, ..., \beta_p$를 다 구하게 됩니다. 
이렇게 모델을 짜면, 함수 $f$를 구하기 위해서는 매개변수 $\beta$를 구해야겠죠.

비 매개변수 방법 non-parametric memthods
비매개변수 방법은 함수의 형태가 이런이런식일거다-라는 가정을 전혀 하지 않고, 바로 함수 $f$의 모양을 찾습니다.

2.1.3 예측 정확도와 모델 복잡도의 트레이드오프


그림 2.7, p25

위의 그림을 보면 여러가지 모델의 복잡도 (혹은 유연함, flexibility)를 x축에 그렸습니다. 그런데 복잡하고 유연한 모델이 있는데 왜 단순하고 형태가 제한적인 모델이 필요할까요?

복잡한 모델은 성능이 잘 나올수 있는 대신에 추론 inference을 하기가 어려워서, 대체 '왜' 이렇게 예측을 하는지 설명하기가 interpretability 어렵습니다. 물론 성능을 최대한 높이기 위해서라면 복잡한 모델을 쓰는게 좋겠죠. 그런데, 그렇다고해서 무조건 제일 복잡한 모데을 쓰는게 좋은것은 아닙니다. 이상하죠! 제일 큰 이유는 과적합 overfitting때문입니다. 나중에 뒤에서 다시 다룹니다.

2.1.4. 지도학습과 비지도학습 supervised vs unsupervised learning

대부분의 통계 학습 (혹은 기계 학습)은 지도학습과 비지도학습으로 나뉩니다.

지도 학습은 입력 $x$와 예측값 $y$가 같이 주어지고 이를 이용해 모델을 구하는 것입니다. 비지도학습은 $y$가 없이 입력 $x$만으로 뭔가 하려는거구요.

예를 들어 위 그림에서 (우리는 색깔과 기호로 구분된 정답 $y$를 알고 있지만) 점을 같은 그룹의 점끼리 모아주는 군집화 clustering 가 이에 해당합니다.

2.1.5. 회귀 대 분류 Regression vs Classification problems

입력 및 출력 변수는 '양적' 혹은 '질적' 값입니다. 양적 quantitative 값은 사람의 나이나 키, 온도, 가격처럼 연속적인 값을 의미합니다. 반면에 제품의 브랜드 (A, B, C), 어떤 병에 걸려있는지 아닌지 (True, False) 등의 특징은 숫자로 표현되지 않는 질적 qualitative 값입니다. 혹은 이를 categorical이라고도 합니다.

양적 값을 예측하는 문제를 회귀 regression 문제, 질적 값을 예측하는 문제를 분류 classification 문제라고 합니다. 다만 이 구별이 항상 깔끔하게 되는건 아닙니다. 문제를 풀기에 따라 분류문제도 회귀 모델을 써서 풀 수 있고, 그 반대도 가능하구요. 예컨대 성별을 예측하는 문제를 (0, 1)로 나눠서 분류 문제로 풀 수 있지만 이를 [0, 1] 사이의 연속된 값을 예측하도록 모델을 세우고 맨 마지막에 여기에 반올림을 적용해서 예측값을 구할 수 있겠죠.








No comments:

Post a Comment