Statistical Learning 챕터2: 통계적 학습 개요 수강노트(강의수강 진행: 8%)

in statistics •  6 years ago  (edited)
스탠포드 Statistical Learning 두번째 챕터 내용이다.
이중 2.1~2.3 내용을 다루겠다. 강의 내용을 적절히 재구성 및 요약했다. 


Ch2 통계적 학습 개요
2.1 회귀분석 입문
2.2 차원 및 구조적 모델(structured models)
2.3 모델 선정 및 편향-분산 트레이드오프
2.4 분류분석
2.R
R 소개 존 챔버와의 인터뷰
(출처: Statistical Learning, Stanford Online Lagunita)  


한줄요약

회귀분석에 대한 정의, 차원의 저주, 그리고 회귀분석 외에 쓰이는 다양한 분석 기법 종류의 예측정확도와 해석가능성의 관계, 그리고 MSE(평균제곱오차), 분산, 편향에 대해 설명한다.




1. 회귀(regression)이란 무엇일까?
예를 들어, 매출이 TV, 라디오, 신문 광고에 영향을 미친다고 생각해보자.  TV, 라디오, 신문 각각 나눠서 매출에 영향을 미치는 것을 생각해 볼 수도 있고, TV, 라디오, 신문 합쳐서 매출에 영향을 미치는 것으로 생각해 볼 수 있다.

수학으로 표현하면,   매출 ≈ f(TV, 라디오, 신문) 으로 표현이 가능하다. 여기서 '매출'이 반응값 또는 타깃값으로 우리가 예측하고자 하는 값이다. 보통 이를 Y로 표현한다. TV, 라디오, 신문 등은 피처(feature), 인풋, 예측인자라고 하며, 각각 X1, X2, X3으로 표현한다. X = ( X1, X2, X3 )  * 정확히는 1, 2, 3은 아래첨자값이다.

이를 수학 공식, 회귀분석식으로 표현하면,
Y = f(X) + ε 이다. 이게 바로 회귀분석 기본 형태이다.

회귀분석은 어떤 독립변수가 반응값, 목표값에 어떤 영향을 미치는지 파악하고자 하는 분석이다. 이를 통해 독립변수 값에 따른 예측도 가능하다.

위와 같은 경우에는, TV, 라디오, 신문 광고가 매출에 얼마나 영향을 미치거나 관련성 여부 등을 파악하는 것이다. 또다른 예로, 연공서열(Seniority), 교육수준 등이 수입 영향을 미치는 반면, 결혼 여부는 수입에 영향을 미치지 않는다는 것 등을 파악할 수 있다.


2. 회귀분석에 대해 좀 더 정확히 살펴보자.
여러 데이터값이 있는데 X = 4에 대해 다양한 Y값이 있을 것이다.  (4, 5), (4, 10), (4, 0), .... , 이때 Y는 X가 4일 때 예상할 수 있는 값으로 평균으로 표현한다. 즉, X가 4일때의 Y값들의 평균을 Y값으로 본다. 이를 식으로 표현하면, f(4) = E(Y | X = 4) 이다.

f(x) = E(Y | X = x) 이 형태가 회귀분석으로 나타내진다(Y의 평균값으로 표현한다는 의미, 평균으로 돌아간다는 의미로 회귀분석이다!) 위 TV, 라디오, 신문 광고를 회귀분석 형태로 표현하면
,f(x) = f(x1, x2, x3) = E(Y | X1 = x1 | X2 = x2 | X3 = x3) 이다.

회귀분석이 정확해지려면, 오차값이 작아야 한다. 즉, 예측값과 실제값과의 차이인 오차값이 작을 경우, 회귀분석 식이 정확하다고 볼 수 있다. 오차를 엡실론 ε 으로 표현하고 값이 가장 작은 값이어야 하는데, ε = Y - f(x) 는 또다른 말로 필연적으로 발생하는 오차, 줄일 수 없는 오차(irreducible error)라고 한다. 이를 좀더 풀으면, 아래와 같다.
E[(Y – f^(X)) | X = x] = [f(x) – f^(x)]^2 + Var(ε) 여기서, [f(x) – f^(x)]^2는 줄일 수 있는 오차(reducible error)이며, Var(ε)는 필연적으로 발생하는 오차(irreducible error)라 한다.


3. 회귀분석에서 그럼 특정 값에 대한 Y값이 존재하지 않는다면? 또는 그 값이 매우 적다면??
여기서 쓸 수 있는 방법은 x값에 이웃한 값들을 통해 Y에 대한 평균값을 구하는 것이다. 함께하는 값들 f^(x) = Ave(Y | X ∊ N(x)) 여기서 N(x)는 x값에 이웃한 값들로 보면 된다.

이 최근접 이웃(Nearest neighbor methods) 접근법은 차원이 적거나(4 이하), 근처 이웃을 많이 포함하면 예측값이 좋다. 하지만, P값 또는 차원수가 많아지면, 차원의 저주(curse of dimensionality)에 따라 예측값 구하는게 어렵다. 차원이 커질수록, Y값 분산을 10% 이하로 하기 위한 x값을 찾으려면, P 차원수를 벗어난 데이터도 포함해야 하기에, (로컬 분석)회귀분석에 적용하기 어려워진다.  참고로, 커널(kernel)이나 스파인 스무딩(spine smoothing)이 보다 데이터 분포를 잘 표현한다.


4. 회귀분석을 선형식으로 표현해보자.
회귀분석을 선형 및 파라미터 형태로 표현하면,
fL(X) = β0 + β1X1 + β2X2 + ,,, βpXp 여기서 L은 아래첨자, Linear의 약자로, β값은 p (차원) 수보다 1하나가 많다. Y절편값이 β0 때문에 그렇다. β옆 숫자는 모두 아래첨자이다.


5. 과대적합(Overfitting)
주어진 데이터(training data)에 적합한 회귀분석식을 만들어, 다른 테스트 데이터(test data)로 테스트해보면, 예측값이 많이 빗나갈 수 있다. 트레이닝 데이터에만 매우 정확한 예측값을 갖는 것을 과대적합(overfitting)이라 한다. 


6. 해석가능성(interpretability) 및 예측 정확성(Prediction accuracy)
분석기법에는 여러가지가 있는데, 이를 해석 가능성과 예측 정확성간에는 트레이드오프 관계에 있다. 예를 들어, 선형회귀분석식은, 데이터 분포 및 의미에 대해 해석 가능성이 높은 반면, 얇은플레이트 스파인 기법(챕터 7에서 설명 예정)은 예측 정확성은 높은 반면에 식에 대한 해석이 어렵다. 기법들을 위 2기준에 따라 분류하면 아래와 같은 기준으로 볼 수 있다.
- 예측 정확성 : 배깅, 부스팅, 서포트 벡터 머신 > 일반화가법모델, 트리 > 최소 제곱 > 서브세트, 라소
- 해석 가능성 : 서브세트, 라소, > 최소 제곱 > 일반화가법모델, 트리 > 배깅, 부스팅, 서포트 벡터 머신


7. 모델 정확도 측정하기
실제로 데이터에 대한 회귀분석식을 구성하고, 이에 대한 정확도를 측정하려면 어떻게 해야 할까? 가장 간단히 생각해보면, 실제값과 회귀분석식에서 나온 값과의 차이를 보면 되는 것이다. 예측값이 음수일 수도 있기 때문에 (실제값 – 회귀분석식값)^2 에 제곱을 한 뒤, 이에 대한 평균값을 구한다. 즉, MSE(Mean Square Error)가 작을수록 분석식 정확도가 높다고 할 수 있다.

이를 수식으로 표현하면,
MSE = Avei[yi − f^(xi)]^2
이며, 여기서 i번째 x의 예측값과, 실제 i번째 목표값과의 차이에 대한 제곱평균값을 나타낸다.


8. 편향(Bias)와 분산(Variance)와의 트레이드 오프
Tr(트레이닝 데이터)를 f^(x)에 학습시키고, 테스트 데이터를 (x0, y0)이라 할 때, 이에 대한 회귀분석식은 Y = f(X) + ε 이다. 이에 대한, 오차값을 좀 더 세분화하면, 아래와 같이 구분이 가능하다.
E[y0 − f^(x0)]^2 = Var(f^(x0)) + [Bias(f^(x0))]2 + Var(ε) 즉, x0일때의 분산값과, x0일때의 편향값, 그리고 줄일 수 없는 오차 분산값의 합이다. 여기서 편향값은 Bias(f^(x0))] = E[f^(x0)] − f(x0) 으로 볼 수 있다. 즉, x0의 평균 기대치 y0값에서 x0의 y0값을 뺀 값이다. 결론적으로, 보통 예측 정확도(flexibility)가 증가할 때, 분산이 증가하며, 편향은 감소한다.


강의수강 진행현황: 8%

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

✅ Enjoy the vote! For more amazing content, please follow @themadcurator!

Thank you!

Posted using Partiko Android

Congratulations @jsl416! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You made more than 200 upvotes. Your next target is to reach 300 upvotes.

Click here to view your Board
If you no longer want to receive notifications, reply to this comment with the word STOP

Support SteemitBoard's project! Vote for its witness and get one more award!