728x90

An Introduction to Statistical Learning with Application in R

 

 

3.2 다중 선형 회귀 Multiple Linear Regression

 

 단순 선형 회귀는 단일 입력 변수에 대한 반응, 출력을 예측하는대 유용한 방법입니다. 하지만 실제 환경에서는 입력 변수가 한개인 경우보다는 여러 개인 경우가 많겠죠. 예를들면 광고 데이터에서 우리는 TV 광고 예산과 판매량 사이의 관계만을 다루었지만, 라디오와 신문 광고 예산에 대한 데이터도 가지고 있습니다. 그래서 이 나머지 데이터와 판매량 사이 관계를 알고 싶을수도 있어요. 어떻게 두 반응 변수를 추가하여 분석을 할수 있을까요?

 

표 3.3 광고 데이터에 대한 단순 선형 회귀 모델들. 단순 선형 회귀 모델들의 계수들이 있어요. 위 표 : 라디오 광고 예산과 판매량 사이의 관계, 아래의 표 : 신문 광고 예산과 판매량 사이의 관계를 보여주고 있습니다. 라디오 광고비를 1000달러 올릴 경우 판매량이 203개가 증가하였고, 신문의 광고 예산이 그만큼 증가한경우 판매량이 55개가 올랐습니다. 여기서 판매량은 1당 1000개를 의미하고 있습니다. 달러의 경우 1당 1000달러구요.

 

 한가지 방법은 단순 선형 회귀를 3개로 나누어서 각각 할수도 있겠습니다. 예를 들자면 라디오 광고비에 따른 판매량을 예측하는 선형 회귀 모델을 적합 할 수있겠죠, 그 결과는 표 3.3의 위에 표에서 볼수 있습니다. 라디오 광고비를 1000달러 증가시킨 결과 판매량이 203개가 증가하였습니다. 표 3.3의 아래 표에는 신문 광고 예산으로 판매량을 추정하는 단순 선형 회귀 모델의 최소 제곱법으로 구한 계수들을 보여주고 있습니다. 신문의 경우 광고 예산이 1000달러가 증가할때 판매량이 약 55개 정도가 증가하였죠.

 

 하지만 각 입력 변수 마다 나누어서 단순 회귀 모델을 학습시키는 방법은 만족스럽지는 않습니다. 우선 보면 각각의 광고 예산들을 각각의 회귀 모델과 연관되어있다보니. 세 광고 매채 비용이 주어질때 단일한 판매량을 예측하는 방법이 명확해 보이지가 않습니다. 두번째는, 각각의 회귀 방정식들은 다른 두 미디어를 무시하고 회귀 계수를 추정하였습니다. 만약 매체 광고 예산이 서로 상관관계가 있다면, 각 미디어들의 영향력으로 인해 판매량에 대한 추정량을 잘못 구해질 수도 있을 겁니다. 

 

 그래서 개별적인 단순 회귀 모델로 학습하는게 아니라, 더 나은 방법은 식 (3.5)의 단순 회귀 모델을 확장시켜 여러개의 입력 변수를 다룰수 있는 다중 회귀 모델로 확장하는것입니다. 우리는 그냥 단일 선형 회귀 모델에다가 각 입력 변수와 기울기 계수들을 각각 추가하면 만들수 있어요. 일반적으로 p개의 서로 구분되는 입력변수가 있다고 가정할때 다중 선형 회귀 모델 multiple linear regression model은 아래의 형태가 된다고 할수 있겠습니다.

 여기서 $X_{j}$는 j번째 입력 변수, $\beta_{j}$는 해당 변수와 반응 변수 사이의 연관성 정도를 나타냅니다. 우리는 $\beta_{j}$를 (다른 모든 입력 변수들이 고정되었다고 할때) $X_{j}$가 한 단위 증가할때 Y에 대한 평균적인 영향정도로 생각하면 됩니다. 그러면 광고 예시는 식 (3.19)를 이용해서 아래와 같이 정리 할 수 있어요.

 

 

 

3.2.1 회귀 계수들을 추정해보자 Estimating the Regression Coefficients

 단순 회귀 모델을 다루었을때 처럼, 식 (3.19)에서의 회귀 계수 $\beta_{0}$, . . . , $\beta_{p}$들도 알수 없다보니 이 값들을 추정해 내야 합니다. 그래서 추정값들 $\widehat{\beta}_{0}$, . . ., $\widehat{\beta}_{p}$이 주어진다면 아래의 식을 이용해서 반응 변수의 예측치를 만들수가 있어요.

 위 파라미터는 단순 선형 회귀에서 봤던것 처럼 똑같이 최소 제곱법으로 추정을 하는데, 우리는 제곱 잔차 합 sum of squared residuals를 최소화 시키는 $\beta_{0}$, . . . , $\beta_{p}$들을 구하면 되겠습니다.

 식 (3.22)를 최소화 시키는 $\beta_{0}$, . . . , $\beta_{p}$들은 최소 제곱법으로 구한 다중 선형 회귀 모델의 추정 계수값들이라고 할수 있어요. 식 (3.4)에서 본 단순 선형 회귀 추정량들과는 다르게, 다중 회귀 계수 추정량들은 조금 복잡한 형태를 가지고 있어, 행렬 대수 matrix algebra 그러니까 행렬 표현을 사용하여 좀더 간편하게, 쉽게 나타낼수가 있어요. 복잡하다보니 여기다가는 적지 않을거고, 다른 통계적 소프트웨어 패키지들은 이런 계수 추정치들을 계산할 수 있으니 이 챕터 뒤에 R로 어떻게 되는지 한번 봅시다.

 

 

그림 3.4  2개의 입력 변수(특징)과 1개의 반응변수(출력)이 주어지는 3차원 환경에서, 최소 제곱법으로 구하던 회귀 직선이 여기선 평면으로 되었습니다. 이 평면은 각각의 관측치(빨간 점)과 이 평면 사이의 제곱 수직 거리의 합을 최소화 시키는 평면이에요.

 그림 3.4는 p = 2 인경우 ( 입력 혹은 특징이 2개인 경우) 토이 데이터셋, 연습용 데이터셋을 최소 제곱법으로 학습 시킨 예제를 보여주고 있습니다.

 

표 3.4 광고 데이터에서의 최소 제곱법을 이용한 다중 회귀 모델의 계수 추정량들. 라디오, 티비, 신문 광고 예산에 따른 판매량 변화.

 표 3.4는 다중 회귀 모델의 계수 추정량들을 보여주고 있습니다. 이 회귀 모델은 광고 데이터를 사용해서 제품 판매량을 추정하는데 쓸수 있어요. 이 결과를 다음과 같이 해석할수 있겠습니다. TV, 신문 의 광고 비가 정해지고, 라디오 광고 예산을 1000달러 늘릴때, 판매량이 약 189개 정도 증가한다고 합니다.

 

 표 3.1과 3.3에서 본 계수 추정량들을 비교해봅시다. 그러면 우리는 다중 회귀 계수 추정량들이 TV와 라디오는 단순 선형 회귀 모델에서 했던것과 거의 비슷한걸 알수 있어요. 하지만 신문에 대한 회귀 계수 추정량은 표 3.3에서는 0에 덜 가까운 편이었으나 다중 회귀 모델에서 신문의 회귀 계수 추정량을 보면 0에 가까워진것을 볼수 있으며 p-value가 0.8599로 더이상 의미없는 값이 되었습니다. 

 

------

*가설 검정과 p value

 가설 검정은 통계학에 나오는 내용으로 제가 아는 정도로 정리하겠습니다. 우선 p-value는 유의 확률 = 한계 유의 수준으로 귀무 가설을 대립할지 기각할지 여부를 결정할때 사용하는 값입니다. p value가 낮은 경우 귀무가설 $H_{0}$을 기각하고, 대립가설을 채택하는데 이 상황에서 대립가설은 입력 변수 X와 출력 변수 Y는 서로 상관 관계가 존재한다는게 대립가설이었어요. 보통 p value가 0.05?인가 이 정도를 기준으로 이보다 작으면 귀무 가설을 기각하고, 아닌 경우 귀무가설을 채택하게 됩니다. 

 

 신문을 제외한 다른 변수들의 경우 p value가 매우 작으므로 귀무 가설(각 입력 변수와 Y는 상관관계를 갖지 않는다)을 기각하여, 상관 관계가 있음을 검정하였습니다. 하지만 신문의 경우 유의 확률이 매우 크므로 귀무가설을 채택하게 됩니다. 세 입력을 사용하는 경우 신문은 Y를 추정하는데 유의미한 영향을 주지않는다고 볼수 있어요.

--------

 

 이것은 단순 선형 회귀 계수와 다중 회귀 계수가 달라질수 있다는걸 보여주고 있어요. 이 차이점은 단순 회귀에선 TV와 라디오 같은 다른 입력 변수를 무시한채, 기울기항이 신문 광고 예산을 1000 증가시킬때의 평균적인 효과의 정도를 나타낸다는 사실에서 비롯되었습니다. 반대로 다중 회귀에서는 신문의 계수는 TV와 라디오를 고정 시킨 상태에서 신문의 광고 비용을 증가시킬때 평균 영향을 나타내고 있어요. (정리하면 단순 회귀에서는 타 항의 영향력이 존재하지 않아 0이아닌 값이 나왔지만, 다중 회귀에서는 타 항의 영향을 받아 0에 가까운 값이 나왔다는 소린것 같습니다.)

 

표 3.5 TV, 광고 데이터에서의 라디오, 신문, 그리고 판매량 사이의 상관계수 행렬

 다중 회귀 문제에서 판매량과 신문 사이에 아무런 상관관계가 없다는 것이 말이 되는것일까요? 단순 회귀문제에서는 상관 관계가 있었음에두요. 표 3.5에 있는 세 입력 변수와 반응 변수의 상관계수 행렬 correlation matrix를 생각해봅시다. 여기서 라디오와 신문의 상관계수가 0.35인것을 볼수 있어요. 이것으로  라디오 광고 예산을 늘리는 시장에서 더 많이 신문 광고를 하는것을 보여줍니다.

 

 이번에는 다중 선형 회귀 모델이 올바르게 만들어 졌고, 신몬 광고가 판매량에 영향을 주지 않는다고 해봅시다. 하지만 라디오 판매량은 여전히 증가하고 있어요. 라디오 광고 예산을 더 많이 할수록 판매량은 더 증가하게 될것이고, 공분산 행렬은 우리가 신문 광고 또한 더 많이 하는 경향이 있는 것을 보여줘요.

 

 그래서 신문 광고가 실제 판매량에 영향을 주지 않았음에도 신문과 판매량만 보는 단순 선형회귀에서는, 신문과 판매량이 큰 상관 관계를 가지는것 처럼 보이게 된거죠. 그래서 신문 광고에 따른 판매량은 라디오 광고에 따른 판매량의 일부가 되어, 신문은 라디오에 의한 영향이 판정받습니다.

* 좀 정리하기가 이상한데, 라디오에 의한 판매량이 증가함에 따라, 신문에 의한 판매량도 증가함. 그래서 신문 자체에 의해 판매량이 증가하는건 크지 않음. 으로 이해가 된다. 억지스럽긴한데

 

 이 사소한 직관에 어긋나는 결과는 실제 상황에서 매우 흔하게 일어납니다. 한번 어의없는 예시로 생각해봅시다. 일정 기간 동안 해변가에서 상어의 공격과 아이스크림 판매량 사이 회귀 모델을 만들었는데, 이 모델이 양의 상관관계를 보일수도 있습니다. 신문 광고 예산과 판매량 사이 관계를 봤던것 처럼요. 하지만 상어들의 공격을 줄이기 위해 아이스크림을 금지해야한다는 사람은 아직까지는 없습니다.

 

 현실에선 날이 더우면 사람들이 해변에 방문하게 만들고, 이것 때문에 아이스크림 판매량이 늘고, 상어의 공격이 늘어나는 것임에두요. 상여의 공격과 아이스크림 판매량 그리고 온도에 대한 다중 회귀를 이용하면, 온도, 이전의 입력 변수 상어의 공격이 크게 중요하지 않다는것을 알수 있게 되요.

 

 

3.2.2 중요한 질문들

 

 그러면 우리가 다중 선형 회귀를 할때 다음의 질문들을 할수 있을것 같아요.

 

1. 반응을 예측하는데 유용한 입력 변수, 특징들 $X_{1}$, $X_{2}$, . . .,$X_{p}$가 적어도 1개는 존재하나요?

 

2. 모든 입력 변수가 Y를 설명하는데 사용할수 있나요? 아니면 유용한 입력 변수 일부만 사용할 수 있나요?

 

3. 다중 선형 회귀 모델이 데이터를 얼마나 잘 적합하고 있나요?

 

4. 입력 값딜이 주어질때, 우리가 예측해야하는 반응값은 무엇이고, 예측치는 얼마나 정밀해야하나요?

 

 각 질문들을 생각해봅시다.

 

질문 1 : 입력 변수와 반응 변수 사이 관계가 존재하나요?

 

 단순 선형회귀를 다시 생각해봅시다. 여기서는 입력 변수와 반응 변수 사이에 관계가 존재하는지 아닌지 알기위해, $\beta_{1}$ = 0인지 확인하였었습니다. 다중 회귀 문제의 경우 p개의 입력변수가 있으니 우리는 모든 회귀 계수들이 0인지 $\beta_{1}$ = $\beta_{2}$ = . . . = $\beta_{p}$ = 0확인하면 됩니다. 가장 간단한 선형 회귀 모델에서는 우리는 가설 검정 hypothesis test를 사용하여 이 질문(가정)에 대한 답을 구하였는데요. 다음의 귀무 가설 null과

 아래의 대립 가설 alternative를 사용하여 검정하겠습니다.

 이 가설 검정은 F 통계량 F-statistic으로 할수 있어요.

 만약 선형 모델의 가정이 옳다면,

 주어진 귀무가설 $H_{0}$이 참인 경우 아래가 성립합니다.

 하지만 반응 변수와 입력 변수간에 상관관계가 존재하지 않을때는 F 통계량은 1에 가까운 값이 됩니다. 반대로 $H_{a}$ 가 참인 경우에는(입력 변수들과 반응 변수 간에 상관관계가 존재하는 경우), E{(TSS - RSS)/p} = $\sigma^{2}$가 되며, F는 1보다 큰 값이 됩니다.

 

 F 통계량은 표 3.6에서 라디오, TV, 신문으로 판매량을 회귀하는 다중 선형 회귀 모델로 구할수 있습니다. 여기서 F-통계량은 570으로, 이 값은 1보다 훨씬 크기 때문에, 귀무가설 $H_{0}$는 기각하게 되요. F 통계량이 아주 크게 나왔다는것은 적어도 광고 매체들 중 적어도 1개는 판매량과 관계를 가진다는것을 보여주고 있습니다. 

 

 하지만 왜 F 통계량이 1에 가까워져야하나요? 그리고 $H_{0}$를 기각하여 관계가 있는지 결론짓기전에 F 통계량은 얼마나 커야 할까요? 이것에 대한 대답은 관측치의 갯수 n과 입력 변수의 갯수 p에 달려 있습니다. n이 클떄는 F는 1보다 약간 커다보니 $H_{0}$을 채택하게 될 수도 있습니다. 그래서 귀무가설 $H_{0}$을 기각하기 위해선 아주큰 F 통계량이 필요하며 n은 작아야 합니다.

 

표 3.6 광고 데이터에서 TV, 뉴스, 라디오 광고 예산과 판매량에 대한 회귀 모델의 추가적인 정보들. 이 모델에 관한 다른 정보는 표 3.4에 있다.

 

 $H_{0}$가 참이고, 오차항 $\epsilon_{i}$가 정규 분포를 따를때 F 통계량은 F 분포를 따르게 됩니다. 어느 n과 p 값이 주어질때 통계 소프트웨어 패키지로 F 분포를 사용하여 F통계량과 관련된 p value를 계산할 수 있습니다. 우리는 이 p value를 이용하여 귀무 가설을 기각할지 말지를 정하는데, 광고 데이터의 경우 표 3.6에서 F통계량과 연괸된 p value는 반드시 0이 되어야 하며, 적어도 매체 중 하나가 판매량 증가에 영향력을 가진다는 사실을 강하게 증명 할 수 있습니다.

 

[F 통계량에 관한 추가적인 내용은 생략]

 

 

 

 

 

 

2. 중요한 변수들을 선택하자 

 

 이전 섹션에서 예기했다시피 다중 회귀 분석에서 첫 번째로 할 일은 F통계량을 계산하고 p value를 확인하는것입니다. p value를 통해서 적어도 하나의 입력 변수가 반응 변수와 연관성이 있는것을 검증하였다면, 그 다음으로 할 일은 그 변수가 어느것인지 찾아내야겠습니다. 표 3.4에서 각각의 p value들을 확인할수도 있습니다. 하지만 얘기했던 데로, p(p value가 아니라 특징, 입력개수 p)가 크다면 잘못된 발견을 할수도 있습니다.

 

 모든 입력 변수들이 반응 변수와 연관되는게 가능하지만 입력 변수 중 일부에만 반응 변수가 연관되는 경우가 더 많습니다. 단일 모델에 다른 변수들을 포함하여 학습 할수 있도록, 반응 변수에 연관되는 입력 변수를 찾는 것을 변수 선택 variable selection이라고 부릅니다. 변수 선택 문제는 6장에서 깊이 다룰것이므로 여기서는 고전적인 방법으로 간단하게만 보겠습니다.

 

 이상적로, 서로 다른 입력 변수들로 이루어진 다양한 모델로 변수 선택을 할수도 있습니다. 예를 들어 p = 2라면 다음의 4 모델의 경우를 생각해볼수 있어요. (1) 모델이 입력 변수를 갖지 않는다. (2) 모델이 $X_{1}$만 갖는다. (3) 모델이 $X_{2}$만 갖는다. (4) 모델이 $X_{1}$, $X_{2}$ 둘다 갖는다. 

 

 그러면 어떻게 어떤 모델이 최고인지 알수 있을까요? 다양한 통계량들이 모델의 품질을 판단하는데 사용할수 있겠습니다. 이런 것들로 말로우의 $C_{p}$, 아카이케 정보 기준(Akaike information criterion; AIC), 베이지안 정보 기준(Bayesian information Criterion), 그리고 조정된 결졍계수 $R^{2}$가 있습니다. 이들에 대해서는 6장에서 자세히 다룰것이고, 다양한 모델들을 직접 그려서 결정할 수도 있겠습니다.

 

 불행히도 p개의 변수들을 가지고 있는 경우, 총 모델은 $2^{p}$가 있다보니, 모든 가능한 입력 변수들의 부분집합 모델들을 사용할수 없습니다. 예를들어 p = 2인 경우 $2^{2}$ = 4로 해볼수는 있겠지만 p = 30인 경우 $2^{30}$ = 1,073,743,824개의 모델들을 고려해야합니다! 이건 정말 실용적이지 못한것이니 p가 너무 작은게 아니라면 $2^{p}$개의 모델을 고려해볼수가 없습니다. 대신 적은 입력변수로 이루어진 모델을 구하는 효율적이고, 자동화된 방법이 필요합니다. 이를 위한 3가지 고전적인 방법들이 있어요.

 

 

- 전진 선택법 Forward Selection : 널 모델 null model에서 시작합니다. 널 모델은 입력 변수 없이 절편만 가지고 있어요. 그리고 p개의 단순 선형 회귀를 해보고, 그 중에서 RSS가 가장 낮은 변수를 널 모델에다가 추가 합니다. 그다음 변수를 반복해서 추가하는 식이에요. 어느 기준에 도달할떄까지 반복하게 됩니다.

 

- 후진 선택법 backward selection : 우선 모든 변수를 가진 모델에서 시작하는데, 가장 큰 p value를 가진 변수를 제거해요. 가장 큰 p value를 갖는 변수는 통계적으로 덜 중요한 변수겟죠. 그 다음 변수가 (p - 1)개인 모델을 학습하고 가장 큰 p value를 제거합니다. 이를 지정한 기준까지 반복하게 됩니다. 

 

- 혼합 선택법 mixed selection : 전진 선택법과 후진 선택법을 혼합한 방법으로, 전진 선택법처럼 처음에는 변수가 없는 모델에서 시작하고, 최적의 변수를 추가합니다. 이를 한 번 한번씩 추가해나가요. 그러다가 새 변수가 모델에 추가되었을때 p value가 커질수 있는데 이때 임계치를 넘은 경우 모델에서 제거합니다. 이런 전진과 후진을 모델이 p value가 낮은 변수들로만 이루어질떄까지 계속합니다. 

 

 후진 선택법은 p > n 경우에사용 할수 없고, 전진 선택법은 항상 사용할 수 있습니다. 그리고 전진 선택법은 탐욕적 방법 greedy approach로 처음에 포함시킨 변수가 후에 필요없어 질수도 있습니다. 그래서 혼합 방법이 이 문제를 개선해 줍니다.

 

 

 

 

 

 

 

 

 

 

300x250
728x90

 

 

 

 

 

 

 

 

그림 2.1 광고 판매량 데이터셋. 이 그래프에서는 TV, 라디오, 신문 광고 예산을 썻을때 판매량을 보여주고 있습니다. 각 그래프에서 보여주고 있는 직선은 판매량을 이용하여 최소 제곱법으로 적합시켜 구한 것인데요. 이 내용은 3장에서 다뤄보겠으나 파란 직선들은 각 매채 광고비를 입력으로 주었을때, 판매량을 예측하는 간단한 모델입니다.

An Introduction to Statistical Learning with Application in R

 

3. 선형 회귀 Linear Regression

 

 이번 장에서는 지도 학습 중 한 방법인 선형 회귀 Linear Regression에 대해서 배워보겠습니다. 선형 회귀는 양적 반응을 구하는데 유용한 도구라고 할수 있는데요. 오랫 동안 사용되기도 했고 수많은 책들의 주제로 다루어져 왔습니다. 이 방법이 이후 챕터에서 다룰 다른 현대적인 통계적 학습 기법과 비교해서 좀 지루할 수도 있겠지만, 이 방법은 여전히 유용하며 통개적 학습 기법에서 널리 사용되고 있습니다. 게다가 이 방법에 기반해서 더 나은 방법들이 나오고 있어요. 차후에 선형 회귀를 개선한 다른 통계적 학습 기법을 보게 되실겁니다.

 

 결과적으로 더 복잡한 학습 방법을 배우기 전에 선형 회귀를 이해하는것은 매우 중요한 일이라고 볼수 있겠습니다. 이번 장에서는 선형 회귀 모델의 핵심 아이디어와 이 모델을 학습시키는데 사용되는 최소제곱법 least square에 대해서 배워봅시다.

 

 한번 2장의 광고 데이터를 다시 떠올려봅시다. 그림 2.1에서는 TV, 라디오, 신문 매체의 광고 예산에 따른 특정 제품의 판매량을 보여주고 있었죠.  우리가 통계 분석가라고 생각해보고, 이 데이터를 이용하여 어떻게 내년에 광고를 하면 더 많은 제품을 판매할 수 있는지 생각해봅시다. 그러면 어떤 정보들이 판매량을 높이는데 도움이 될가요?  한번 이런 질문을 해봅시다.

 

 1. 광고 예산과 판매량 사이에 어떤 관계가 있을까요?

   우리의 첫번째 목표는 주어진 데이터, 광고 예산과 판매량 사이 상관관계가 존재하는지 알아내어야 합니다. 이 관계가 약하다면 광고할 필요는 없겟죠!

 

 2. 광고 예산과 판매량 사이에는 얼마나 강한 관계가 있을가요?

    광고 예산과 판매량 사이에 관계가 있다고 해봅시다. 그리고 여러분들은 이 관계가 강한지 알고싶다고 해요. 특정한 정도의 광고 예산이 주어질때 우리들은 판매량이 어떻게 될지 정확하게 예측 할수 있다면? 광고 예산과 판매량 사이에 강한 관계가 있다고 할 수 있을겁니다. 광고 지출에 따른 판매량 예측 값이 그냥 임의로 추정한 판매량과 큰 차이가 없다면? 이 경우에는 관계가 약하다고 불수 있겠습니다.

 

3,  판매량에 영향을 주는 매체는 어떤게 있을까요?

 세 광고 매채, TV, 라디오, 신문이 판매량에 영향을 줄까요? 아니면 하나 혹은 두개의 매체만 영향을 미칠까요? 이 질문에 대한 대답을 구하기 위해선, 우리는 각 매체의 영향력을 나누어서 보아야 합니다.

 

4. 우리가 추정한 각 매체의 판매량에 대한 영향력이 얼마나 정확할까요?

 특정 매체로 광고 비용이 증가할수록, 판매량이 얼마나 증가하게 될까요? 우리가 예측한 대로 판매량이 정확하게 증가되었나요?

 

5. 얼마나 정확하게 미래 판매량을 예측할수 있습니까?

 특정한 정도의 TV, 라디오, 신문 광고 예산이 주어질때 판매량을 예측할수 있을까요? 그러면 그 예측이 얼마나 정확합니까

 

6. 매체와 판매량 사이 관계가 선형적인가요?

 각 매채별 광고 지출과 판매량 사에 선형적인 관계가 있다면, 선형 회귀가 좋은 도구로 사용될 수 있습니다. 그렇지 않다면 선형 회귀를 사용 가능하도록 입력이나 출력의 현태를 변환 시킬 수도 있습니다. (* 저스틴 존슨 교수님의 컴퓨터 비전 5강 신경망에서 공간 변환을 통해 선형 분리를 하는 내용이 있었는데, 선형적 관계가 아닌 데이터를 변환을 통해 선형적인 관계로 구할수 있다는 의미로 보임)

 

7. 광고 매체 사이에 시너지 효과가 있었나요? 다른말로 하자면 서로 영향을 주는게 있었나요?

 한번 탤래비전에 5만 달러, 라디오에 5만 달러를 쓴 결가 10만 달러 이상의 판매량을 얻었다고 합시다. 티비 광고만 5만 달러, 라디오 광고만 5만 달러치 한것 보다 더 큰 판매량을 얻을수 있었어요. 이 경우를 시너지 synergy 효과라고 할수 있으며, 통계학에서는 상호작용 interaction이라고 부릅니다.

 

 

 

 

3.1 단순 선형 회귀 Simple Linear Regression

 

 단순 선형 회귀는 이름 그대로를 의미합니다. 입력 변수 X가 주어질때 양적인 반응 변수 Y를 추정하기 위한 매우 직관적인 방법이에요. X와 Y 사이에 선형적인 관계가 있다고 가정해봅시다. 그러면 수학적으로 이 선형적인 관계를 아래와 같이 정리 할 수 있어요.

 여기서 $\approx$라는 표기는 우항을 좌항으로 근사시켰다? 좌항은 우항의 근사화된 모델? 우항과 좌항이 비슷하다? 정도의 의미를 가지고 있습니다. 위 (3.1)의 식을 X를 이용해서 Y를 회귀했다고 부르겠습니다. (regression Y on X, Y onto X) 예를 들어 X가 TV 광고 비용이고 Y를 판매량이라고 한다면, 학습된 모델을 통해서 TV 광고 비용으로 판매량을 회귀(양적 변수를 추측)할수 있겠죠.

 식 3.1에서 $\beta_{0}$, $\beta_{1}$는 정해지지 않은 상수로, 선형 모델에서 절편(intercept, ex: y절편이라고 부르던 그거)과 기울기(slope)라고 부릅니다. 또 이들을 모델의 계수 coefficient 혹은 파라미터라고 부르기도 해요. 우리가 할 일은 주어진 훈련 데이터를 이용해서 모델의 계수인 $\widehat{\beta}_{0}$, $\widehat{\beta}_{1}$ 추정치를 구하는 것이고, 이 추정된 계수 값으로 TV 광고 예산 값이 주어질때 이 식을 이용해서 예측 판매량을 계산할 수가 있겠습니다.

 위 식에서 $\hat{y}$는 X= x가 주어질때, Y의 예측치를 의미해요. 여기서 x, y, z 같은 기호 위에 모자 hat ^을 씌워주는데, 이들은 알수 없는 파라미터, 계수를 추정하여 구한 값을 의미하고 있어요. $\hat_{y}$는 추정한 반응/ 출력 값이라고 할수 있구요.

 

3.1.1 계수들을 추정해보자 Estimating the Coefficients

 

 현실에서는 $\beta_{0}$, $\beta_{1}$을 알수 없습니다. 그래서 예측 값을 구하려구 식 (3.1)을 쓰기 전에 반드시 주어진 데이터로 이 계수들을 추정해내야 해요. 한번 n개의 쌍으로된 관측치 observation pairs들이 있다고 해봅시다. 각 관측치들 obervations은 X의 측정값(measurement of X(과 Y의 측정값(measurement of Y)으로 이루어져 있어요.

* 관측치와 측정값을 정리하면, 관측치 observation는 (X, Y) 그러니까 X, Y의 쌍을 묶은 것으로하겠습니다.

* 측정값 measurement의 경우, 한 변수의 실제 값 $x_{1}$, $y_{1}$같은 변수들의 실제 값이라고 하겠습니다.

* 관측치와 측정 값의 차이는 관측치는 한번 관측을 했을때 얻은 X 측정값들, 혹은 X와 Y의 측정값들의 모음입니다.

 다시 광고 예시로 돌아갑시다. 이 데이터는 n = 200(관측치가 200개), 200개의 시장에서의 TV 광고 예산과 그에 따른 제품 판매량으로 이루어져 있어요.(이 데이터들은 그림 2.1에 있는데 이 글 맨 위에 추가해두었습니다!) 우리들의 목표는 $\widehat{\beta}_{0}$, $\widehat{\beta}_{1}$을 구하는 것이 되겠습니다. 식 (3.1)의 선형 모델이 주어진 데이터들을 학습해서 얻은 계수들이요. 그래서 아마 $y_{i}$ $\approx$ $\widehat{\beta}_{0}$ + $\widehat{\beta}_{1}$ $x_{i}$, i = 1, . . ., n의 형태로 정리할수 있겠죠.  

 

 정리하자면 우리는 200개의 데이터 점에 가능한 가장 가까운 close직선의 절편 $\widehat{\beta}_{0}$와 기울기 $\widehat{\beta}_{1}$를 찾는다고 생각하면 되겠습니다. 열마나 가까운지 측정하는 많은 방법들이 있는데, 그중에서 가장 많이 사용하는게 최소제곱법을 이용하여 오차제곱합이 최소화시키는 방법을 사용합니다. 이 방법을 이 장에서 사용해보고 다른 방법들은 6장에서 볼게요.

 

그림 3.1 위는 광고 데이터, TV 광고비용에 따른 판매량의 회귀모델로 최소 제곱법으로 학습/적합하여 만들었습니다. 이 학습 방법은 오차 제곱합을 최소화시키는 계수를 찾는것입니다. 각 회색 선은 오차를 보여주고 있으며, 학습된/적합된 모델이 오차 제곱의 평균에 위치하고 있습니다.  이 그래프는 다소 결점이 존재하기는 하지만, 선형 모델이 데이터에 관계성이 존재하는 것을 보여주고 있습니다.

 

 그러면 $\widehat{\y}_{i}$ = $\widehat{\beta}_{0}$ + $\widehat{\beta}_{1}$ $x_i$가 X의 i번째 값을 이용해서 Y의 값을 추정한다고 합시다. 그러면 $e_{i}$ = $y_{i}$ - $\widehat{\y}_{i}$ 는 i번째의 잔차(residual)를 의미하며, 여기서 잔차란 i번째 관측된 반응 변수(실제 Y)와 우리가 구한 모델로 예측한 i번째 반응 변수(예측 Y)의 차이를 말합니다. 그러면 잔차 제곱합(RSS; residual sum of squares)를 아래와 같이 정의 할 수 있어요.

 그리고 이 식은 아래와 동등하다(equivalent)고 할 수 있습니다.

 최소 제곱 방법은 RSS를 최소화 시키는 $\widehat{\beta}_{0}$, $\widehat{\beta}_{1}$를 구하는 방법이에요. 여기서 미분을 사용하면, 이 RSS를 최소화 시키는 두 추정치는 아래와 같이 정리 할 수 있어요.

 

 여기서 \bar{y} \equiv \frac{1}{n} \sum_{n}^{i=1} y_{i}이고, \bar{x} \equiv \frac{1}{n} \sum_{n}^{i=1} x_{i} 으로 샘플들(데이터들)의 평균을 의미합니다. 이를 정리하자면 (3.4)은 단순 선형 모델의 최소 제곱 계수 추정갑 least sqaure coefficient estimate 라고 부릅니다. 

 

 그림 3.1은 광고 데이터를 단순 회귀 모델로 적합/학습(fit) 시킨 것으로 , 그 결과  $\widehat{\beta}_{0}$ = 7.03,  $\widehat{\beta}_{1}$ = 0.0475가 나오게 되었어요.  이 학습한 모델, 근사 식으로부터 TV 광고비가 1000달러를 씩 증가할 수록, 47.5 정도 제품 판매량이 증가한다는걸 보여주고 있습니다.

 

그림 3.2 광고 데이터에서 TV 광고비가 입력, 판매량이 Y일때, RSS에 대한 윤곽선 플롯과 3차원 플롯,. 단순 선형 모델의 절편과 기울기 변화에 따른 RSS의 편화를 보여주고 있다. 

 그림 3.2는 TV 광고비를 입력으로, 판매량을 출력으로 하는 광고 데이터를 사용하여 $\beta_{0}$, $\beta_{1}$의 값 변화에 따라 RSS가 어떻게 되는지 계산한 것을 보여주고 있어요. 두 그래프에서 빨간점은 RSS가 최소가 되는 지점으로 식 (3.4)로 구한 ($\widehat{\beta}_{0}$, $\widehat{\beta}_{1}$)를 의미합니다.

 

 

 

 

3.1.2 계수 추정치가 얼마나 정확한지 평가해보자 Assessing the accuracy of the coefficient estimates

 

 X와 Y의 실제 관계를 나타내는 식 (2.1) 생각해 봅시다. 이 식은 Y = f(x) + $\epsilon$이었는데, 여기서 f는 우리가 알지 못하는 실제 함수/모델이고, $\epsilon$은 평균이 0인 오차항이었습니다. 그럼 f를 선형 함수/모델로 추정을 했으면 이 식을 아래와 같이 고칠수가 있어요.

 전에도 얘기했다시피 $\widehat{\beta}_{0}$은 절편 항, X = 0일때 Y의 기댓값/예측값이 되겠죠, 그리고 $\widehat{\beta}_{1}$는기울기로 X가 커질때 Y가 얼마나 증가하는지를 나타낼겁니다. 오차 항은 이 단순한 모델이 놓치는 모든 것을 나타내요. 실제 함수 모델에서, 실제 관계는 아마 선형이 아닐거고 Y에 변동을 일으키는 다른 영향력들, 혹은 변수같은게 있을거에요. 그게 오차 에러($\epsilon$)로 측정이되어 Y에 반영이 될수 있죠. 그래서 일반적으로 오차 항을 X에 독립이라고 가정하여 식을 새웁니다.

 

 식 (3.5)의 모델을 population regression line 모집단 회귀선이라고 부르고, X와 Y의 실제 관계를 나타내는 최적의 선형 근사 식을 의미합니다. 식 (3.4)의 최소 제곱 회귀 계수 추정값들은 식 (3.2)의 최소 제곱 직선의 특성을 나타낸다고 할 수 있어요. 한번 그림 3.3의 우측 그래프를 보시면, 단순 시뮬레이션된 데이터들을 나타내는 두 개의 직선이 있는걸 볼 수 있어요. 임의로 100개의 샘플 데이터 X들을 생성시켰고, 아래의 모델에 입력하여 각 X에 대한 Y값들도 만들어 내었습니다.

 요기서 $\epsilon$은 평균이 0인 정규분포로부터 생성된 오차항, 오차값이라구 할게요. 좌측 그림의 빨간선은 실제 관계 true relationship, 실제 모델인 f(X) = 2 + 3X를 보여주고 있습니다. 반면에 파란색 선은 관측된 데이터를 이용하여 최소제곱법으로 추정해서 구한 선이에요. 실제 함수, 모델, 관계는 보통 알려져 있지 않지만, 최소 제곱선은 식 (3.4)을 따라서 계수 추정치를 구하여 만들수는 있겠죠.

 

그림 3.3 시뮬레이션 데이터셋. 왼쪽 그림 : 빨간 선은 실제 관계, 모델, 함수 f(X) = 2 + 3X로 모집단 회귀 직선을 보여주고 있습니다. 파란선은 최소제곱선으로 관측된 데이터로 f(X)를 최소제곱 추정한 직선이에요. 우측 그림 : 모집단 회귀선은 빨간색으로 그대로 있고, 다른 최소 제곱 직선들은 다양한 색들로 보여주고 있습니다. 여기서 10개의 최소 제곱 직선이 있는데, 각 직선들은 서로 다른 관측 데이터셋으로 구한 직선들이에요. 이 직선들은 다르지만 평균적으로는 모집단 회귀선에 거의 가깞다고 할수 있겠죠.

 

 이를 정리하자면 실제 상황에서 우리는 관측치 데이터로 최소 제곱 직선을 구할수가 있어요. 하지만 모집단 회귀선은 관측할수는 없겠죠. 그림 3.3의 오른쪽 그림은 식 (3.6)에서 데이터 셋을 10번 샌성 시키고, 이 서로 다른 데이터셋으로 추정한 최소 제곱 직선을 그린것을 보여주고 있습니다. 같은 실제 모델로부터 생성되었지만 서로 다른 데이터셋이 만들어지다보니, 조금씩 다른 최소 제곱 직선들이 만들어 졌어요. 하지만 모집단 전체는 무수히 많고 관측할 수 없다보니 모집단 회귀선은 변하지 않아요.

 

 얼핏 보기엔 모집단 회귀 직선과 최소 제곱 직선 사이 차이가 별로 없어 보이기는 한데, 데이터셋이 하나만 있다고 해 봅시다. 실제 모델의 직선과 데이터셋으로 추정한 직선이 있을것이고, 이 두 직선은 무엇을 의미하는 것일까요? 이 두 직선 중 추정하여 구한 모델은 샘플로 얻은 정보로 큰 모집단의 특성들(모집단 직선)을 추정하는 표준 통계적 방법을 보여준다고 할수 있을것 같습니다.

 

 예를들어봅시다. 여러분들이 임의의 확률 변수 Y의 모평균 $\mu$를 알고싶다고 할때, $\mu$는 모르고, Y로 부터 n개의 관측치 $y_{1}$, . . ., $y_{n}$이 있다고 해 봅시다. 그러면 이걸로 모평균 $\mu$를 추정할 수 있겠죠. 그러면 가장 가능성이 큰 추정량은 $\hat{\mu}$ = $\bar{y}$이며, \bar{y} \equiv \frac{1}{n} \sum_{n}^{i=1} y_{i}는표본평균을의미합니다.

 

 표본 평균 sample mean과 모 평균 population mean은 다릅니다, 하지만 일반적으로는 표본 평균이 모 평균을 잘 추정한 값으로 생각할 수 있습니다. 같은 방식으로 선형 회귀에서 알수 없는 계수인 $\beta_{0}$, $\beta_{1}$로 모평균 직선을 그릴수가 있지만, 이 계수는 알수 없으니 식 (3.4)로 $\widehat{\beta}_{0}$, $\widehat{\beta}_{1}$를 추정하면 되고, 이 추정한 계수로 최소 제곱 직선을 정의할수 있겠습니다.

 

 선형 회귀와 확률 변수의 평균을 이용한 추정 사이에 비슷한 건 이들이 편향 bias라는 개념을 기반으로 한다는 점입니다. $\mu$를 추정하기 위해서 $\hat{\mu}$를 한다고 해봅시다. 이 추정량이 편향되어있지 않다면(unbiased), $\mu$는 $\mu$와 동일하다고 볼 수 있습니다. 이게 뭘 의미하냐면,  $y_{1}$, . . ., $y_{n}$로 구한 $\hat{\mu}$가 $\mu$보다 크게 추정될 수도 있고, 다른 관측치를 사용한 경우 표본 평균이 모 평균보다 낮게 추정될수도 있습니다. 하지만 아주 많은 관측치로 다양한 추정치들을 얻고, 이들을 평균을 낼수 있으면 모평균과 가까워 지겠죠. 그래서 불편향 추정량 unbiased estimator은 실제 파라미터를 과소, 혹은 과대 추정을 하지 않습니다. 

 

 불편성의 성질이 식 (3.4)로 구하는 최소 제곱 추정량에도 적용 되고 있습니다. 우리가 특정 데이터셋로 $\beta_{0}$과 $\beta_{1}$을 추정한다면, 아마 $\beta_{0}$가 $\beta_{1}$에 정확한 추정값을 구하지는 못할 겁니다. 하지만 크고 다양한 데이터셋으로부터 추정값들을 평균을 낸다면, 정확한 값을 구할 수 있겟죠. 그림 3.3의 오른쪽 그래프에서 수 많은 최소 제곱 직선의 평균으로, 서로 다른 데이터셋으로 추정해서 만든, 이 평균이 실제 모 회귀 직선에 아주 가까운 것을 확인하실 수 있겠습니다.

(*지금 보고 있는 내용들은 통계학에서 점추정 관련 내용으로 이전에 관련 내용을 부족하게나마 정리한 적 있음)

throwexception.tistory.com/957

 

 임의의 확률 변수 Y의 모평균 $\mu$를 추정하는 문제를 계속 다뤄봅시다. 여기서 이런 질문을 할수 있겠죠? $\mu$를 추정한 $\hat{\mu}$가 얼마나 정확한가요? 우린 조금전에 아주 많은 데이터셋으로 $\hat{\mu}$를 구하고 이들의 평균이 $\mu$에 아주 가깝다는것을 봣엇습니다. 하지만 추정량 $\hat{\mu}$하나 만으로는 모 평균을 $\mu$ 과하거나 과소하게 추정할수 있을겁니다. 그러면 이 추정량 $\hat{\mu}$는 모평균과 얼마나 멀까요? 일반적으로 이 질문에 대한 대답은 $\mu$의 표준 오차 standard error로 구할 수 있습니다. SE($\hat{\mu}$)로 표기하며, 이 식은 아래와 같아요.

 위 식에서 $\sigma$는 각 $y_{i}$들에 대한 표준 편차를 의미합니다. 편하게 말하면, 표준 오차 Standard Error는 실제 모평균 $\mu$과 추정량 $\hat{\mu}$가 평균적으로 다른 정도, 다른 크기를 알려준다고 할수 있어요.(표준 오차는 분산의 평균) 식 3.7은 표준 평차가 n에 따라서 얼마나 줄어드는지, 관측치가 많아 질수록, $\hat{\mu}$의 표준 오차가 작아지는것을 알수 있겠습니다.

 비슷하게  $\widehat{\beta}_{0}$, $\widehat{\beta}_{1}$이 얼마나 실제 $\beta_{0}$와 $\beta_{1}$과 가까운지 궁금할수 있겠는데,  $\widehat{\beta}_{0}$, $\widehat{\beta}_{1}$의 표준 오차는 아래의 식으로 구할수 있겠습니다. 여기서 $\simga^{2}$ = Var($\epsilon$)을 의미해요.

 

 

 이 공식들이 유효해지려면 각 관측에 대한 오차 $\epsilon_{i}$는 공통 분산 common variance $\sigma^{2}$와 상관관계를 갖지 않는다고 가정하여야 합니다.(공통 분산은 잠시 검색 해봤는데, 인자 분석 관련 용어이긴하지만 이해하기는 힘들어 자세한 내용은 패스).

 

그림 3.1 TV 광고비용에 따른 판매량의 회귀모델.

 그림 3.1에서는 이 가정이 유효하지 않지만(오차도 상관관계에 영향을 주므로), 여전히 잘 추정하는것을 볼 수 있습니다.  $x_{i}$가 크게 퍼지면 퍼질수록 표준 오차는 커져야 하겠지만 이 공식에서 SE($\widehat{\beta}_{1}$)는 작아지며,기울기를 추정하는데 더 큰 영향력을 주게 됩니다.

(제가 이해한 바로는 오차가 커질수록 기울기에 대한 표준 오차가 더 커져야 하지만, 위 식에서는 반대로 표준오차가 크게 줄어들어 정확한 기울기를 추정한다는 의미로 보임.)

 

 $\bar{x}$가 0이라면($\widehat{\beta}_{0}$은 $\bar{y}$와 같아질 것임), $SE($\widehat{\beta}_{0}$)는 SE($\hat{\mu}$)와 같아지는 것을 볼수 있습니다. 일반 적으로, 공통 분산 $\sigma^{2}$는 알 수 없지만 주어진 데이터로 부터 추정은 할수 있어요 $\sigma$를 추정한 값을 잔차 표준 오차 residual standard error라고 부르는데, 이 RSE = $\sqrt{RSS/(n - 2}$로 구할 수가 있습니다. 

 

 표준 오차는 신뢰구간 confidence interval을 구하는데도 사용되요. 95% 신뢰구간은 실제 파라미터의 값이 95%의 확률로 속한다고 생각되는 값의 범위를 의미합니다. 이 범위는 샘플 데이터로 하한과 상항을 계산해서 구할수 있는데, 선형 회귀의 경우 $\beta_{1}$의 95% 신뢰구간은 아래의 형태를 가지며,

 실제 값 $\beta_{1}$을 95%의 확률로 가질 신뢰 구간은 아래와 같습니다.

 비슷하게 $\beta_{0}$의 신뢰 구간을 다음의 형태를 가지게 됩니다.

 광고 데이터 예시를 보면 $\beta_{0}$의 95% 신뢰 구간은 [6.130, 7.935]이고, $\beta_{1}$의 95% 신뢰 구간은 [0.042, 0.053]이 된다고 할수 있어요. 그러므로 광고를 하지 않는 경우에 판매량이 6,130 ~ 7,940까지 떨어진다고 추정 할 수 있겠습니다. 하지만 텔레비전 광고 비용을 1000달러씩 증가시킨다면, TV 판매량이 평균적으로 42 ~ 53씩 증가하게 될겁니다.

 

 표준 오차는 가설 검정 hypothesis test를 하는데도 사용되고 있어요. 가장 자주 사용하는 검정에서 귀무 가설로 null hypothesis로

$H_{0}$ : X와 Y 사이에는 상관관계가 없디.

대립가설 alternative hypothesis은

$H_{a}$ : X와 Y사이에 관계가 존재한다.

수학적으로 이 검정을 고친다면

$H_{0}$ : $\beta_{1}$ = 0    vs     $H_{a}$ : $\beta$ $\neq$ 0

으로 고칠수 있겠습니다.

 

음.. 생각하다보니 가설 검정 부분은 다시 복습도 필요하고, 해야될 내용이 많다보니 여기서 생략하겠습니다.

 

 

 

 

3.1.3 모델 정확도 평가하기 Assessing the Accuracy of the Model

 

 3.12의 귀무 가설을 기각한다면(대립 가설을 채택한다면), 그러니까 X와 Y 사이에 상관 관계가 존재한다면 이 모델이 얼마나 데이터를 잘 적합시키는지 정도를 정량화 하고 싶을 겁니다. 선형 회귀 모델의 적합 성능은 잔차 표준 오차 Residual Standard Error(RES)와 상관계수 $R^{2}$ 통계량으로 평가할 수 있습니다.

 

 

표 3.2 최소 제곱법으로 구한 모델에 대한 추가 정보들(TV 광고와 판매량 데이터)

 표 3.2에서는 (TV 광고와 판매량 데이터에 대한) 선형 회귀 모델의 RES와 $R^{2}$ 통계량, 그리고 F 통계량(3.2.2에서 설명함)을 보여주고 있어요.

 

 

 잔차 표준 오차 Residual Standard Error

 

 식 (3.5)의 모델로 돌아가서 생각해봅시다. 거기에는 오차항 $\epsilon$이 있엇죠. 그리고 이 오차항 때문에, 실제 회귀 직선을 알고 있어도, X가 있어도 완벽하게 정확한 Y를 구할수는 없었어요. RSE는 오차항 $\epsilon$의 표준편차 추정량이라고 할 수 있습니다.

 실제 회귀 직선을 이용하여 구하는 평균 값이라고 할수 있는데, 아래의 식으로 계산 할 수 있어요.

 

 식 3.1.1에서 RSS를 정의했었는데, 이를 다음의 식으로 줄수 있겠습니다.

 광고 데이터 예시에서, 표 3.2를 보면 RSE가 3.26이었죠. 이는 실제 회귀 직선으로부터 각 마켓당 판매량의 차이가 평균적으로 3,260개 정도된다는 뜻이 됩니다. 다른 방법으로 생각해봅시다. 모델은 정확하고, 모델의 계수 $\beta_{0}$, $\beta_{1}$이 뭔지 안다고 해볼 게요. 그렇더라도 TV 광고 시 판매량 예측 치는 평균적으로 약 3,260개가 차이가 나게 될겁니다. 3,260개의 예측 오차가 받아들일만한지 아닌지는 이 문제의 상황에 따라 달라지겠죠. 이 광고 데이터셋의 경우 전체 시장에서의 판매량 평균은 14,000개 정도가 되니 오차 퍼센트가 3,260/14,000 = 23%나 됩니다.

 

 RSE는 식 (3.5) 모델이 데이터에 잘 적합했는지 아닌지 적합 결함 정도를 측정하는데 사용할 수 있습니다. 이 모델로 구한 예측치가 실제 출력값과 매우 가깝다면 $\widehat{\y}_{i}$ $\approx$ $y_{i}$, i = 1, . . ., n 이라면 (3.15)는 아주 작아질것이고, 모델이 아주 잘 학습/적합했다고 할수 있겠습니다. 하지만 $\widehat{\y}_{i}$가 실제 $y_{i}$랑 멀다면, 그것도 여러 관측치에서 그러면 RSE는 큰 값이 나올것이고, 모델이 잘 학습했다고 할수 없을 거에요.

 

 

 

 

 $R^{2}$ 통계량 $R^{2}$ Statistic

 

 RSE는 모델이 적합 결함 정도의 절댓값을 알려주는데 absolute measure of lack of fit, 조금 고쳐서 적자면, 적합이 부족한 정도 알려준다. 하지만 항상 RSE가 좋은 건아니에요. $R^{2}$ 통계량도 잘 적합되었는징를 알려주는데, 비율의 형태로 설명할수 있는 분산의 정도 the proportaion of variacne explained를 알려주며, 0 ~ 1사이의 값을 가지고 Y의 스케일에 독립이라고 할수 있습니다.

 $R^{2}$ 값은 아래의 식으로 계산할 수 있어요.

 위 식에서 TSS = \sum ($y_{i}$ - $\bar{y}$ $)^2$으로 총 제곱합 Total sum of squares이고, RSS는 식 (3.16)에 정의하였습니다.  TSS는 반응 변수 Y의 총 변동 Total Variance을 측정한 갑으로, 데이터들이 가지고 있는 변동성의 크기라고 할수 있어요. 반대로 RSS는 회귀를 한 후에 남은 설명 할 수 없는 변동의 크기를 의미합니다. 그래서 TSS - RSS는 (총 변동) - (설명 불가 변동) = (설명 가능 변동)으로, $R^{2}$는 입력 변수 X로 Y를 얼마나 설명할수 있는 비율을 측정하는 지표라고 할 수 있습니다. 여기서 설명력 amount of variability/explainability이란 회귀 모델가 실제 모델을 추정할수 있는 정도라고 할수 있을것같아요.

 

 $R^{2}$ 통계량이 1에 가깝다면 회귀로 설명 할 수 있는 비율이 크다 -> 회귀 모델로 값을 잘 추정할 수 있다는 이야기이고, 반대로 0에 가깝다면 회귀 모델이 변동성을 잘 설명 할 수 없다 -> 값을 잘 추정하지 못한다고 할수 있겠습니다. 이런 경우는 선형 모델이 잘못 만들어지거나, 가지고 있는 오차가 너무 큰 경우에 생길수 있어요. 표 3.2에서 $R^{2}$는 0.61로 TV 광고비에 대한 선형 회귀 모델이 판매량에 대해서 2/3정도의 변동을 설명할수 있다고 할 수 있겠습니다.

 

 식 (3.17)의 $R^{2}$ 통계량은 0 ~ 1사이 값으로 나타내다보니 식 (3.15)의 RSE보다 이해하기 쉽다는 장점이 있습니다. 하지만 무엇이 좋은 $R^{2}$인지 찾아내는건 쉽지 않은 일입니다. 사용하는 상황에 따라 달라질 수도 있거든요. 예를들어 물리학 문제에서 잔차가 작은 선형 회귀모델에서 데이터를 얻었다고 해봅시다. 이 경우에는 $R^{2}$ 값이 1에 아주 가깝겟지요. 하지만 $R_{2}$가 엄청 작다면 실험에 무슨 문제가 있다는걸로 볼수도 있어요,

 

 식 (3.5)의 선형 모델은 데이터를 러프하게 근사시키는데 최고이지만, 측정되지 못한 인자/요소들 때문에 잔차 오차가 매우 커질수도 있습니다. 이 경우에는 변동의 아주 작은 일부분만 설명할수 있을 것이고 $R^{2}$는 0.1이하로 떨어 질수도 있어요.

 $R^{2}$ 통계량은 X와 Y의 선형적인 관계를 측정하는 값으로 이를 상관계수 Correlation이라고도 부르며 아래와 같이 정의합니다.

 $R^{2}$ 대신에 r = Cor(X, y)로 쓸수도 있고, 단순 선형 회귀 문제에서는 $R^{2}$ = $r^{2}$을 사용하기도 합니다. 정리하자면 상관 계수의 제곱은 $R^{2}$ 통계량과 동일하다고 볼수 있어요. 하지만 다음 섹션에서 다중 선형 회귀 문제를 다룰건데, 여기서는 여러 입력 변수들을 동시에 사용하여 반응 변수를 예측할겁니다.  상관계수는 수많은 변수들 사이의 연관성이 아니라 한 쌍의 변수끼리의 연관성을 다루기 때문에, 입력 변수와 반응 변수 사이의 상관관계라는 개념로 확장해서 다룰수는 어렵습니다. 차후 $R^{2}$가 어떻게 이 역활을 하는지 봅시다.

 

300x250
728x90

1월 달의 마지막 주 정리를 해보자

 

이번 주 동안 논문 리뷰도하고, 컴퓨터 비전 강의 정리하고, 통계 학습 이론 1강 정리하고, 프로그래머스 시험도 치고, 연결리스트 알고리즘 문제 풀고, 영어 시험도 봤다. 이렇게 보니 뭔가 참 한게 많아 보이네.

 

우선 지난주 토요일부터 생각해보자 그때 프로그래머스 레벨 2 시험을 봤는데, 2번 정도는 실패하고 3번째 시도에서 통과하기 직전까지 갔었지만 시간 부족으로 한 문제를 통과하지 못하고 말았다. 사실 문제를 풀긴 했는데, 속도 때문에 통과 못한거긴 하지만 이따가 한번 풀어봐야지

 

 

 

 이 시험을 보고 나서 논문 리뷰를 했는데, 그 뭐냐.. 초기 딥러닝 모델인 레쿤의 LeNet에 대해서 봤었다. 이 논문에서 완전 연결의 개념과 컨볼루션을 통해 특징들을 추출해내는 내용들이 나왔었던것 같다 잠깐 다시 봤는데 신경망을 구성하는 레이어를 커널로 서브 샘플링하고 컨볼루션 연산하는 이런 내용들이 나왔엇네, 하지만 이 논문에서는 LeNet의 구조에 대해서는 설명하지만 가중치가 어떻게 학습되는지에 대한 내용은 없었다. 일단 오늘이나 내일 시간 날때 역전파에 대한 논문 리뷰를 한번 해야되겟다.

 

LeNet 구조

 

 

 일요일에는 거의 대부분 시간을 저스틴 존슨 교수님의 신경망 강의를 정리하는데 시간을 보냈다. 맨 처음 그동안 공부한 내용들을 배웠는데, 이미지 분류 문제를 풀기위해 선형 분류기를 대수적, 시각적, 기하학적 관점으로 보았었고, 선형 분류기로 입력과 가중치의 선형 결합을 이용하여 출력을 구하였고 이를 비용함수로 어디에 속하는지 찾아냈던것 같았다.

 

 지난 시간 최적화를 공부하면서 가중치를 어떻게 학습하는지 배웟었다 랜덤 탐색 방법에서 시작하여, 경사 하강법에 대해서 배워가는데, 경사 하강법의 단점, 그리고 이를 보완한 SGD, SGD의 노이즈 취약과 지그제그로 수렴하는 문재를 개선하기 위해 모멘텀 개념을 사용했고, 관성에 더 가중을 준 네스트로프 관성이 있었다. SGD에서 모멘텀이 아닌 학습률을 조절하는 방향으로 나온 알고리즘이 Adagrad가 있었고, 이를 개선한게 RMSprop, RMSProp와 모멘텀을 합친 adam 최적화기에 배웟던걸로 정리할 수 있겠다.

 

 

 이번 신경망 강의에서는 선형 분류기의 단점을 보고, 왜 신경망 모델이 효과적인지 배워보는 시간을 가졌다. 처음에 선형 분류기의 단점과 선형 분리 불가 문제를 풀기 위해 특징 변환의 개념도 보고, 컴퓨터 비전에서 사용하는 특징들이 어떤것들이 있는지 보았다. 대표적으로 이미지 히스토그램, 그라디언트 방향 히스토그램, 단어 사전 등이 있었으며 이를 혼합한 특징이 2000년대 중반까지 많이 사용되고 있엇다고한다.

 

 그러다 2011년 알렉스넷이 등작하면서 딥러닝 기반 방법들이 많이 뜨기 시작했는데, 다양한 특징들을 추출하고, 학습을해서 분류 문제를 해결할수 있었다고 한다. 선형 분류기와 딥러닝 모델의 차이를 보자면 선형 분류기를 이용한 분류의 경우 특징 추출 파트가 나누어져 있어 이 특징 추출 시 소수의 일부 파라미터들만 조절해서 학습시켰다고 한다면, 딥러닝 모델은 학습 모델 전체의 파라미터, 가중치들을 조절시킨다고 이애할수 있었따.

 

그리고 신경망 구조가 어떻게 되는지, 신경망이 다중 탬플릿을 어떻게 처리하는지, 활성화 함수가 하는일, 뉴런과 비교, 공간 변환을 통한 선형 분리, 규제 강도에 따른 일반화 성능 등을 보는것 까지 정리했었다.

https://throwexception.tistory.com/category/%EB%A1%9C%EB%B4%87/%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5

 

 

 화요일 날의 경우는 알고리즘 공부를 하면서 연결 리스트에 관한 리트 코드 문제들을 풀었다. 처음에 연결 리스트를 오랜만에 보다보니 손에 익지 않아 시간이 좀 걸렸었는데, 나머지 문제들은 첫 문제에 비해 빠르게 할 수 있었다.

 

 

 수요일에는 내가 뭘했나 생각해보면 통계 자료를 정리했었다. 선형 모델이든 신경망 모델이든 다 통계 기반 학습 모델인데, 이전에 방통대 수업을 들으면서 전반적으로 공부는 했으나 뭔가 시원하게 정리 되지는 않았었다. 그런 이유로 공부의 필요성을 느끼고 있었는데, 다른 분이 이해하기 쉬운 좋은 책을 추천한게 있어서 이걸 번역하면서 좀 공부했다.

 

 이날 본 내용들은 통계적 학습 모델이 무엇인지, 실제 결과가 나오는 법칙 참 함수 true function인 f에 가까운 함수, 추정 함수 f_hat을 구하는 문제이며 이 f를 추정해서 무엇을 할수 있는지 예측과 추론의 관점에서 보았다. 이후 모델 추정 방법에 대해 정리하면서 모수적 방법, 비모수적 방법의 개념을 전부터 알고있었지만 이번에 조금더 명확하게 이해가 되었다. 전에는 모수적 방법을 매개변수를 사용하는 방법이라 생각했는데, 모수적 방법은 그게 아니라 우리가 알지 못하는 문제 f를 특정한 함수 형태, 선형 모델이든, 비선형 모델이든 f_hat일 것이라고 정의하고 접근하는 방법이란걸 말이다.

 

 비모수적 방법은 이와 다르게 함수적 형태를 가정하지 않고 추정 모델을 구하는 방법인데 함수적 형태가 없는데 어떻게 추정 모델을 구한다는 것인가 아직 감은 잘 안잡힌다. 이전에 비모수적 방법으로 k means, 히스토그램, 커널 밀도 추정이 있다는건 봣엇지만, 데이터에 의존하는 방법이기도 하다는건 알겠지만 뒷 부분들을 좀 봐야 될것같다.

 

 수요일에는 여기까지 밖에 못하고, 나머지는 목요일까지 봤는데, 그 외에는 모델 복잡도와 정확도 사이 트레이드 오프 길항 관계, 비지도 학습과 지도 학습이 무엇인지, 회귀 문제와 분류 문제가 무엇인지, 모델 정확도 평가, 편향과 분산(모델 복잡정도?)에 따른 MSE 길항 관계, 분류 문제가 무엇인지 가장 기본적인 베이즈 분류기. 베이즈 분류기는 여러번 봤지만 여전히 햇갈리는게 아까 봣던 실제 모델을 조건부 확률로 표현한걸 베이즈 분류기라고 하는것 같긴 하다.  그거 말고는 자주봤던 최근접 이웃 분류기까지 하고 마쳤다.

 

 

 목요일에는 통계 자료 본것도 있지만 어제 영어 시험을 봤고, 시험 자체는 망친것 같았는데 생각보다 성적은 잘 받은은것 같더라 IM2, Speaking 6 ! 실제 스피킹을 보면 이만큼 되는것 같지는 않지만.. 

 

 아무튼 내가 지난 한주 동안 이렇게 보냈고, 이제 뭐해야하나 통계 3강 보고, 딥러닝 6강 보고, 프로그래머스 시험도 쳐보고, 그래도 개념이 정리되는것 같아서 좋긴하다.

 

 아 .. 오늘 비지도 학습에 대해서 공부했는데 그 중에 PCA를 보면서 이전에 공부했던 내용들이지만 잘 생각이 안들더라 선형 대수 이론에 대해서 한번 복습해야지 계속 생각은 했었는데, 그래서 잠깐 찾다보니 다크프로그래머님이 잘 정리해놓으신게 있어서 이걸 보면서 좀 정리해야할것 같다. 밑바닥부터 딥러닝은 글 쓴지 한참 됬는데 아직 까지도 정리 못하고 있는데 언젠간 할수있겟지 모르겟다.

 

 

 

 

 

 

 

 

 

300x250

'그외 > 로그' 카테고리의 다른 글

2021.02.04 daily english study log  (0) 2021.02.05
2021.02.01 daily english study log  (0) 2021.02.02
2021.01.28 daily english study log  (0) 2021.01.28
2021.01.27 daily english study log  (0) 2021.01.27
2021.01.26daily english study log  (0) 2021.01.26
728x90

미시건대 저스틴 존슨 교수님 강의 정리
https://www.youtube.com/watch?v=g6InpdhUblE&t=2287s

 

 

 

 

Lec5_Neural Network2.pdf
1.04MB

 

 

300x250
728x90

 today was very hard for me. especially, i tried to translate the book i'm not sure this is correct title. it's name maybe  "introduction statistic learning with R". i had run out of time, i hurried to do it. the reason why i started this is i already have studied statistics and probabilitics, but most of notions about that i feels i need to practice it more. i forget many concept of theses studies and i was too hesitated becuase i am not sure the things i know can not be correct. so, from yesterday unti today's 9 pm i could wirte most of them. although i could not understand perfectly, but i can repeat broadly and it was helpful for me.

 

 and then i found the video to practice my english, i choose the one video clip of friends the topic was about holloween.. that video was the most shortest one that i can afford to watching. after wachting that, i have to take the english exam i reverved yesterday. so, in that video, talked about holloween cultures in the uk and us, and what people do in the holloween and how people have a fun. but i don't have enough time to repeat it, ended it quickly.

 

 

 

 

 oh i got something to write here. today's afternoone i made a recommendation system using csr_matrix, it was about matrix factorization. using matirx factorialization, we can decompose very big spares matrix into smaller ones. and then with converted matrx about users and recommend items, i could find what is the most recommend things for me. at that time, i could write any explanation of my codes in the jupyter noteboook markdown. before i started this dialog, i could not write anything easily comparing with now. but, it became not difficult works for me now! i was very satisfied with improvement of my writing skill. i know my grammar and vocabulary is terrible but i am so happy i don;t have any type of hesitation about writing.

 

 anyway, come back to my speaking test, i was self esteemed too much, i though that i can speak and understand english well or fluently, but it was not happend to me. serveral times i missed what theater's are saying and i was got stuck in too much. i was so depressed, It seems there was no improvement of my speaking skills compare with a week ago! but supprisingly test report was not too bad than i though, teachers gave me good points better than my though, and result of the exam seems also to be better than before.

 

 this is a report of the talking exame i had a week ago. at that time my english ekill was evaluated as 5 in case of toeic speaking and IL in case of OPIC.

 

 

 

 

 

 but in this time, i had a test in another comp, my test result was not too bad.  my speaking level was evaluated to a topeic speaking 6 and IM2 in Opic. i got a better points from 5 to 6! this result shows me that i didn't tried to practice my speaking skills with my conciousness enough, but with only shadowing training my skills become better. nevertheless, i have to do it from now. because i felt the need of it in this test.

 

300x250

'그외 > 로그' 카테고리의 다른 글

2021.02.01 daily english study log  (0) 2021.02.02
2021.01.29 이번주 정리  (0) 2021.01.29
2021.01.27 daily english study log  (0) 2021.01.27
2021.01.26daily english study log  (0) 2021.01.26
2021.01.25 daily english study log  (0) 2021.01.25
728x90

 

An Introduction to Statistical Learning with Application in R

2.1.5 회귀 문제와 분류 문제 Regression versus Classification Problems

 

 우리가 사용하는 변수들은 양적 변수 quantitative variable 혹은 질적 변수 qualitative 변수(카테고리 변수)로 나눌수가 있겠습니다. 여기서 양적 변수는 사람의 나이, 몸무게, 수입, 집의 가치, 주가 같이 수치 값을 가지는 변수들을 말합니다. 반대로 질적 변수의 경우 K개의 클래스 혹은 카테고리중 하나를 나타내는 변수로 성별(남과 여), 제품 브랜드(A브랜드, B브랜드, C브랜드), 암 진단 결과 여부(음성, 양성)과 같은 예시가 있겠습니다.

 

 이런 양적인 반응 변수를 다루는 문제를 회귀 문제 regression problem이라 무르고, 질적인 반응을 변수로 다루는 문제를 분류 문제 classification라고 부릅니다. 하지만 항상 이런 구분이 명확하다고 할수는 없는데, 최소 제곱법을 이용한 선형 회귀 모델(3장)에서 질적인 변수를 사용할 수도 있고, 로지스틱 회귀(4장)의 경우 2개의 클래스로 분할하다보니 질적인 변수를 사용하게 됩니다.

 

 이런 경우들이 분류 문제에도 있습니다. 예를 들어 분류 문제에서 어느 클래스에 속할 확률들을 추정할때, 이 확률을 구하기 위해 회귀 방법을 사용합니다. 그리고 K 최근접 이웃이나 부스팅 기법 같은 통계적인 방법들에서는 질적, 양적 변수들을 구분없이 사용하기도 합니다.

 

 우선은 반응 변수가 질적 변수이냐 양적 변수이냐에 따라 통계적 학습 방법을 선택할 수 있으며, 반응 변수가 질적 변수인 경우 로지스틱 회귀, 양적 변수인 경우 선형 회귀를 사용할 수도 있겠습니다. 그래서 입력 변수/특징들이 질적이냐는 덜 중요한 문제이고, 이 책에서는 앞으로 다루는 대부분의 통계적 학습 방법들은 입력 변수의 타입과는 상관없이 사용가능하다고 보시면 될것 같습니다.

 

 

 

2.2 모델 정확도 평가 Access Model Accuracy

 

 이 책의 목표 중 하나는 독자분들에게 기본적인 선형 회귀 방법을 뛰어넘는 다양한 통계적 학습 모델을 소개하려고 합니다. 그런데 왜 한 개의 최고의 방법보다 여러 개의 통계적 접근방법들을 아는 것이 중요한가요? 그 이유는 한가지 방법 만으로 모든 데이터셋을 완벽하게 다룰수 없기 때문입니다. 어떤 데이터셋이 있고, 가장 잘 돌아가는 방법이 있다고 합시다. 하지만 이 데이터셋이 조금 달라졌을때는 다른 방법이 더 좋은 성능이 나올수도 있습니다. 그래서, 주어진 데이터셋이 있을때 최적의 성능을 구하는 방법을 찾는것이 매우 중요한 일이며, 최적의 방법을 찾는 것은 통계적 학습을 수행하는데 있어서 가장 큰 도전과제라고 할 수 있겠습니다.

 

 이번 장에서는 특정한 데이터셋이 주어질때 통계적 학습 방법 선정에 관한 중요한 개념들을 살펴보겠습니다. 이 책을 보면서, 어떻게 이런 컨샙들 개념들이 실제로 사용되는지 설명하겠습니다.

 

 

2.2.1 학습을 얼마나 잘했는지 한번 측정하자 Measuring the Quality of Fit

 

 주어진 데이터로 통게적 학습이 얼마나 잘 되었는지 평가 하기 위해서는 우리가 예측한 값과 실제 관측된 값이 얼마나 잘 맞는지 평가하기 위한 방법들이 필요합니다. 다시 말하면 주어진 관측치 (X, Y)가 있을때  X를 입력으로 하여 우리 모델로 추정한 값 $\hat{Y}$이 실제 반응 변수인 Y에 얼마나 가까운지 측정함으로서 잘 학습되었는지 평가 할 수 있습니다. 회귀 문제의 경우 가장 자주 사용되는 측정 방법으로는 최소 제곱 오차 Mean Squared Error MSE가 있습니다.

 

 

여기서 $\hat{f}(X_{i})$는 i번째 관측치의 입력 변수 $x_{i}$를 추정한 모델 $\hat{f}$에 대입하여 구한 예측치라고 할 수 있겠습니다. 우리가 만든 모델의 예측값이 실제 반응에 가까울 수록 MSE는 작아질 것이고, 예측치와 실제 값이 다르다면 커지게 될것입니다.

 

 위의 MSE에 대한 식은 훈련 데이터로 모델을 학습시키는 과정에서 계산되는데, 이를 정확하게 부르자면 훈련 MSE training MSE라 부를수 있겠습니다. 하지만 보통, 우리가 사용한 학습 방법이 훈련 데이터에 얼마나 잘 동작하는지 보다는, 학습에 사용하지 않은 시험 데이터를 우리가 추정한 모델에 넣어 구한 추정치가 실제 값과 차이가 큰지 다른말로 얼마나 정확한지에 관심을 가져야 합니다.

 

 왜 우리가 이런걸 신경써야 할까요? 이전의 주가 데이터들을 이용해서 주가를 예측하는 알고리즘을 개발한다고 합시다. 하지만 우리의 예측치가 지난주 주가를 얼마나 잘 예측하는지는 상관없고, 우리에게는 내일이나 다음달의 주가가 어떻게 될지 예측하는게 중요하겠죠.

 

 비슷한 예시로 우리가 환자들의 의료기록(무게, 혈압, 키, 나이, 가족의 질병)들과 이 환자가 당뇨병의 유무에 대한 정보를 가지고 있다고 해봅시다. 우리는 통계적 학습 기법을 사용하면, 새로운 환자의 의료 기록을 가지고 당뇨병 위험도를 예측할 수가 있겠습니다. 여기서 중요한 건 우리는 훈련에 사용한 환자들의 당뇨병 위험도를 얼마나 정확하게 예측하였느냐가, 새로운 환자 새로운 데이터를 정확하게 예측하는데 관심을 가져야 합니다.

 

 조금 더 수학적으로 접근하자면, 훈련 데이터셋 {($x_{1}, y_{1}$, $x_{2}, y_{2}$, , , , $x_{n}, y_{n}$)}으로 어떤 모델을 학습시켜 추정된 함수/모델인 $\hat{f}$를 구하였다고 해봅시다. 그러면 $\hat{f}(x_{1})$, $\hat{f}(x_{2})$, . . ., $\hat{f}(x_{1})$을 계산할 수 있고, 훈련 MSE가 작다면 이렇게 예측한 값들은 아마 $y_{1}, y_{2}, . . ., y_{n}$에 가까울 겁니다.

 

 하지만 우리가 알아야 하는 부분인 $\hat{f}(x_{i}) \approx y_{i}$가 아니라 훈련 과정에 사용하지 않은 모르는 데이터 ($x_{0}, y_{0}$)을 추정한 함수에 대입하여 $\hat{f}(x_{0})$가 $y_{0}$와 거의 같은지를 알아야 합니다. 그래서 우리는 훈련 MSE가 가장 낮은 학습 방법을 쓰는게 아니라 테스트 MSE가 가장 적게 나오는 학습 방법을 선택하여야 합니다. 이를 정리하면 테스트 관측치가 많이 있다고 할때 다음의 테스트 관측치 $(x_{0}, y_{0})$에 대한 평균 제곱 오차를 구할수가 있겠습니다.

 

 그러면 어떻게 해야 테스트 MSE를 최소화 시키는 방법을 찾을수 있을까요? 몇 가지 가정을 해봅시다. 우리는 테스트 데이터 셋을 가지고 있고, 이 데이터들은 훈련 과정에 사용하지 않을겁니다. 이 테스트 데이터는 위의 식으로 쉽게 평가 할수 있어요. 그러니 테스트 MSE가 가장 적은 학습 방법을 선택하면 됩니다.

 

 하지만 우리가 쓸수 있는 시험 데이터가 없다면 어떻게 해야할까요? 이럴 때에는 훈련 MSE를 최소화 시키는 학습 방법을 고를수도 있겠습니다. 훈련 MSE와 테스트 MSE는 서로 크게 연관 되어 있으니까요. 하지만 이 방법은 근본적인 문제점이 있는데, 가장 낮은 훈련 MSE를 얻을 수 있는 학습 방법, 모델이라고 해서 가장 낮은 시험 MSE를 얻을수 있다고 보장할수 없거든요. 이렇게 하는 경우 우리가 추정한 모델이 너무 훈련 셋의 MSE를 최소화 시키는 방향으로 계수들을 추정하다 보니, 과적합 문제로 시험 MSE가 커질수도 있습니다.

 

그림 2.9 좌측 그림 : 검은 색으로 그려진 함수 f로 생성한 데이터들과 함수 f를 추정한 3가지 모델을 보여주고 있습니다. 주황색 곡선은 선형 회귀 모델, 파란색과 녹색은 스플라인 학습 모델을 보여주고 있습니다. 우측 그림 : 회색 커브는 훈련 MSE를 보여주고, 빨간 커브는 시험 MSE를 보여주고 있습니다. 모든 방법을 사용해서 도달 가능한 시험 MSE의 최저점은 회색 직선으로 그려져있습니다. 그리고 사각형의 점이 있는데 좌측 그림에 나오는 3 모델의 훈련/시험 MSE를 의미합니다.  

 그림 2.9는 과적합 문제를 보여주고 있습니다. 그림 2.9의 좌측면에서는 실제 함수 f(검은 곡선)로 생성시킨 데이터, 관측치들이 있습니다. 주황색과 파란색, 녹색 커브는 실제 함수 f를 추정한 모델들로 유연성, 복잡도를 증가시킨 차이가 있겠습니다. 주황색 선은 선형 회귀 모델을 나ㅏ내며 다른 모델에 비해 덜 유연한 편입니다. 파란과 녹색 커브는 7장에서 볼 스플라인으로 학습한 모델인데, 다른 복잡도를 가지고 있습니다. 복잡도가 증가 할수록 곡선이 데이터에 더 가까워져 있는것을 볼수 있겠습니다. 녹색 커브는 가장 복잡하고 데이터에 너무 가깝다보니 실제 함수 f를 잘 학습하였다고 할수는 없습니다. 이런식으로 스플라인 모델의 복잡도를 조정해서 학습하면, 이 데이터에 대한 다양한 모델을 얻을수가 있겠습니다.

 

 이제 그림 2.9의 우측을 살펴봅시다. 여기서 회색 커브는 모델의 유연성, 자유도 degree of freedom, 스플라인의 완곡도?에 따른 훈련 MSE를 보여주고 있습니다. 주황색, 파란색, 녹색 사각형들은 좌측 그림의 커브의 MSE를 의미하는데, 커브가 부드러울 수록 자유도가 낮다고 할수있습니다. 선형 회귀 모델은 자유도가 2로 가장 굳은 모델이라 할수 있는데, 훈련 MSE를 보면 유연성 flexibility, 복잡도가 커짐에 따라 MSE가 주렁드는 것을 보실수 있습니다.

 

 실제 함수 f가 비선형인 이 예제에서는 주황색 선형 회귀 모델은 실제 함수 f를 가장 잘 설명한다고 하기는 어렵습니다. 녹색 선의 경우 너무 데이터들에 맞춰져있다보니 가장 낮은 훈련 MSE를 가지게 됩니다.

 

 현실에서는 훈련 MSE를 계산하는건 쉽지만 시험 MSE를 구하는건 데이터가 없을 수도 있다보니 어렵다고 할수 있습니다. 조금전에 본 예시들 처럼 모델의 복잡도에 따라 최소 훈련 MSE가 크게 바뀔수도 있습니다. 그래서 앞으로 이 책에서는 이 최저점을 찾는 좋은 방법들을 배울것인데, 가장 대표적으로 교차 검증(5장)이 있는데, 훈련 데이터를 훈련셋과 검증셋으로 나누어 검증MSE를 평가하는 방법입니다.

 

 

 

그림 2.10 선형에 가까운 함수 f로 생성한 데이터와 이를 적합한 모델들. 모델들의 복잡도와 MSE. 선형 회귀 모델이 주어진 데이터를 잘 적합하고 있다.

 

 

 

 

 

2.2.2 편향 분산 트레이드 오프 The Bias Variance Trade Off

 

  시험 MSE 곡선의 U자 형태가 통계적 학습 방법들의 복잡도에 의한 특성임을 살펴봤습니다. 수학적 증명은 이 책의 범위를 넘어가지만, $x_{0}$가 주어질때 예상/기대 되는 시험 MSE expected training MSE를 세 항의 합으로 나누어서 볼수 있겠습니다. 이 세 항으로 $\hat{f}(x_{0})$의 분산, $\hat{f}(x_{0})$의 제곱 편향, 오차항 $\epsilon$의 분산이 있습니다.

 

 

 여기서 E$(y_{0} - \hat{f}(x_{0}))^{2}$을 기대 시험 MSE expected training mean squared error라고 부르는데, 이 식은 시험 MSE를 훈련 데이터로 f를 학습하고, 시험 데이터로 구합니다. 이전의 MSE와 차이점은 학습된 모델에 시험 데이터를 넣어 구한것이라고 할 수 있을것 같아요.

 

 위 식은 기대 시험 오차를 줄이기 위한 것으로 이 오차를 줄이려면, 분산이 작고, 편향도 작은 통계적 학습 모델을 골라야 합니다. 분산은 0이 음수가 될 수 없고, 제곱 편향 또한 음수가 될 수 없다보니 이전에본 제거 불가 오차이다 보니 기대 시험 MSE은 Var($\epsilon$)보다 작아질 수는 없습니다.

 

 그러면 통계적 학습 방법, 모델에서 편향과 분산이 무엇을 의미하나요? 분산은 학습한 모델 $\hat{f}$가 얼마나 크게 변할수 있는 양, 정도를 의미한다고 할수 있습니다. 다른 훈련 데이터셋을 학습시킨다면 서로 다른 $\hat{f}$가 나오겠죠. 이상적으로 생각해보면 f를 추정한 모델은 훈련 데이터셋에 따라 달라져서는 안되지만 훈련 데이터셋에 약간의 변화로 인해 추정한 모델 $\hat{f}$가 크게 바뀔수도 있습니다. 일반적으로 복잡도가 큰 모델일수록 더 큰 분산을 가지게 되요. 

 

 한번 위의 그림 2.9의 녹색과 주황색 커브를 생각해보면, 녹색 커브는 데이터에 매우 가까이 있는데, 데이터 하나가 바뀐다면 이 모델 자체는 크게 바뀌다 보니 분산, 변동성이 큰 편입니다. 반대롤 주황색 최소 제곱법으로 구한 직선의 경우 덜 유연한 모델이며, 관측치 하나가 바뀐다해도 직선이 조금만 움직이면 되니 분산 정도가 작다고 할수 있겠습니다.

 

 편향을 예를 들어 소개하자면 선형 회귀 문제에서 Y와 $X_{1}, X_{2}, , , ,, X_{p}$는 선형 관계를 가지고 있다고 가정하고 있습니다. 하지만 현실에서는 그렇게 단순한 선형 관계를 가진 경우가 잘 없다 보니 선형 회귀에서는 어쩔수 없이 편향이 생기게 됩니다.

 

그림 2.11  다른 함수 f로 복잡도와 MSE를 살펴봅시다. 여기서 선형 모델은 실제 함수 f와 많이 다르며, 데이터들을 잘 적합하지 못하고 있습니다.

 

 함수 f는 비선형 함수로 훈련 데이터가 얼마나 많던지 간에, 선형 회귀로는 정확한 모델을 만들수가 없습니다. 정리하자면 선형 회귀에서는 큰 편향이 생기게 됩니다. 하지만 그림 2.10에서 실제 함수 f는 주어진 선형에 가까우며 주어진 데이터도 그럴때, 선형 회귀로 정확한 모델을 구하는게 가능합니다. 일반적으로 더 복잡한 모델일수록 적은 편향을 가지게 되요.

 

 지금까지 한걸 정리해보면 복잡한 모델을 사용할때 분산은 커지고, 편향은 줄어드는것을 봤습니다. 이 값들의 변화가 시험 MSE가 증가할지 감소할지를 결정하게 되요. 만약 우리가 모델 복잡도를 늘린다면, 편향은 감소할것고, 분산은 증가하게 될겁니다. 그러면 시험 MSE는 줄어들겠죠.

 

 하지만 모델의 유연성/복잡도를 증가시킨다는게, 편향에는 적게 영향을 준다하더라도 분산에는 큰 영향을 줄수도 있습니다. 이 떄 MSE가 크게 증가하게 되요. 이미 시험 MSE가 줄어들다가 증가하는 패턴들을 지금까지 그림 2.9 - 2.11에서 계속 봐왔습니다.

 

 

 

그림 2.12 위 그래프들은 그림 2.9-2.11에서 사용한 세 데이터셋들의 제곱 편향(파란 곡선), 분산(주황 곡선), 오차항 분산(점선), 시험 MSE(빨간 곡선)입니다. 수직 점선은 최소 시험 MSE의 복잡도를 나타냅니다.

 

 

 그림 2.12에서 세 그림은 그림 2.9- 2.11 데이터를 이용하여 기대 시험 MSE의 값들을 보여주고 있습니다. 파란 곡선은 복잡도에 따른 제곱편향을, 주황색 곡선은 분산을, 수평방향의 점선은 제거 불가 오차인 오차항 분산을 보여주고 있습니다. 마지막으로 빨간 곡선은 시험 데이터셋의 MSE로 세 값의 합이 되겠습니다. 

 

 모든 경우 복잡도가 증가할수록 분산이 증가하고, 편향이 줄어들고 있습니다. 하지만 최적 시험 MSE에서의 복잡도 정도가 데이터셋에 따라 크게 다른데, 각 데이터 셋에 따라 제곱 편향과 분산 변화율이 다르기 때문입니다. 왼쪽 그래프에서는 편향이 처음에 빠르게 감소하여 시험 MSE가 크게 줄어든느것을 볼수 있습니다.

 

 반면에 중간 그래프의 경우 시험 f가 선형에 가깝다보니, 복잡도가 증가해도 편향이 크게 감소하하지 않으며 시험 MSE가 분산이 크게 증가하기 전까지 약간씩 감소하는것을 볼수 있습니다. 마지막으로 오른쪽 그림은 복잡도가 증가할때 편향이크게 감소하는데, 실제 함수 f가 비선형이기 때문이며, 복잡도가 증가해도 분산의 증가가 크지 않고 결과적으로 시험 MSE는 분산이 증가하기 전까지는 감소하는것을 볼 수 있겠습니다.

 

 

 

 

2.2.3 분류 문제

 

 으아 지금까지 회귀 문제에서 모델 정확도를 어떻게 늘릴수 있는가를 위주로 봤는데, 우리가 보아왔던 편향, 분산 트레이드오프 같은 개념들이 분류 문제에서도 동일하게 적용됩니다. 분류 문제에서 다른점은 $y_{i}$는 수치데이터가 아니라는 점이죠.

 

  다음의 훈련 데이터가 주어질때 {$(x_{1}, y_{1})$, ($x_{2}$, $y_{2}$), . . ., ($x_{n}$, $y_{n}$)}로 실제 함수 f를 추정해 봅시다. 그런데 여기서 $y_{1}$, . . ., $y_{n}$은 질적 변수에요. 분류 문제에서 우리가 추정한 모델 $\hat{f}$의 정확도를 정량화 시키는 가장 일반적인 방법은 훈련 에러율 training error rate인데, 이 값은 훈련 데이터를 우리가 추정한 모델 $\hat{f}$에 넣었을때 잘못 예측한 비율을 말하며 아래와 같이 식을 정리할수가 있어요.

 

 

 위 식에서 $\hat{y_{i}}$는 i번째 관측치에 대한 예측 라벨로 I($y_{i} \neq \hat{y_{i}}$)는 $y_{i} \neq \hat{y_{i}}$인 경우 1, $y_{i} = \hat{y_{i}}인 경우(예측 라벨과 실제 라벨이 같을때 => 올바르게 예측한 경우) 0이 되는 지시 변수 indicator variable라고 합니다. 그래서 I($y_{i} \neq \hat{y_{i}}$) = 0이라면 i 번째의 관측치가 올바르게 분류된 것이고, 그렇지 않다면 잘못 분류되었다고 볼수있어요. 위의 식은 오분류 비율을 계산한다고 할 수 있겠습니다.

 

 그리고 위 식을 훈련 에러율이라고 부르는 이유는 우리가 학습 시킨 분류기를 사용해서 계산하기 때문입니다. 또 회귀 문제의 경우에서처럼 우리는 학습시킨 분류기가 테스트 데이터를 분류했을때 에러율도 매우 중요한데, 이를 테스트 에러율 test error rate는 시험 데이터가 ($x_{0}, y_{0}$)과 같은 형테로 주어질때 아래의 식으로 구할수가 있겠습니다.

 여기서 $\hat{y_{0}}$는 테스트 관측치의 $x_{0}$를 주었을때 얻은 예측 라벨로 좋은 분류기의 경우 에러율이 낮겠죠.

 

 

 

베이즈 분류기 The Bayes Classifier

 

 각 관측치에 가장 가능성 높은 클래스로 분류하는 단순한 분류기를 사용하면 위에서 본 훈련 에러율이 어떻게 최소화 되는지를 볼수 있습니다. 이걸 보려면 테스트 관측치 $x_{0}$가 주어질때, 가장 가능성이 높은 카테고리 j를 주어야 합니다.

 

 위 식을 조건부 확률 conditional probability라고 부르는데, 입력 벡터 $x_{0}$가 주어질때, Y = j일 확률을 의미합니다. 이 간단한 분류기를 베이즈 분류기 Bayes Classifier라고 불러요. 한번 반응 변수의 값이 2개인 그러니까 클래스 1, 클래스 2로 분류되는 이진 분류 문제를 예를 든다면, 베이즈 분류기는 Pr(Y=1 | X= $x_{0}$) >= 0.5라면 클래스 1로 판단하고, 아닌 경우 클래스 2로 판단한다고 할 수 있겠습니다.

 

그림 2.13 두 그룹에 대한 100개의 관측치 데이터셋으로, 파란색과 주황색으로 어디에 속하는지 나타내고 있습니다. 보라색 점선은 베이즈 분류기 경계를 나타내며, 주황색 배경은 시험 관측치가 주황색 클래스로 할당하는 영역이고, 테스트 관측치가 파란색 그리드 배경에 속하는 경우 파란색 클래스로 판단하게 됩니다.

 

 그림 2.13은 $X_{1}, X_{2}$로 이루어진 2차원 공간에서의 예시를 보여주고 있는데, 주황색, 파란색 원은 서로 다른 클래스에 속하는 관측치들을 의미하고 있습니다. $X_{1}, X_{2}$의 값들은 주황색에 속하는지 파란색에 속하는지에 대한 서로 다른 확률을 가지고 있습니다. 이 데이터들은 시뮬레이션 한거다 보니 어떻게 생성되었는지 알 수 있고, $X_{1}$, $X_{2}$에 대한 조건부 확률들을 계산할 수가 있습니다.

 

 

 주황색 배경 영역은 Pr(Y = 주황색 | X) = 50%인 데이터들을 반영한 곳이고, 파란색 배경 영역은 X가 주어질때 Y=주황색일 확률이 50%보다 낮은 공간을 의미합니다. 여기서 보라색 점선이 정확하게 50%가 될 확률을 이 됩니다. 이 선을 베이즈 결정 경계 bayes decision boundary라고 부르며, 베이즈 분류기의 분류 예측은 베이즈 결정 경계로 수행되겠습니다. 관측 치가 주황색쪽에 속한다면 주황색 클래스로 판별할 것이고, 파란색 공간에 속한다면 파란색 클래스로 판별 할 것입니다.

 

 베이즈 분류기로 베이즈 에러율 Bayes error rate라고 부르는 가능한 가장 낮은 시험 에러율을 구할 수 있는데, 베이즈 분류기는 가장 큰 확률을 가진 클래스를 선택하기 때문에 X = $x_{0}$에서의 에러율은 1 - $max_{j}$ Pr(Y=j|X=$x_{0}$)이 됩니다. 일반적으로 베이즈 에러율은 아래의 식으로 구하는데, X가 주어질때 확률이 가장 큰 모든 경우들의 평균으로 구해지게 되비다.

 

 여기서 사용한 시뮬레이션 데이터의 경우 베이즈 에러율은 0.1304로 0보다 크게 되는데, 실제 분포 데이터들을 보면 일부 클래스들이 겹쳐 있다보니, 이런 일부 데이터 $x_0$들은 $max_{j}$Pr(Y=j|X=$x_0$) < 1이 되기 때문입니다.

 

 

 

 

K 최근접 이웃 K Nearest Neighbors

 

 이론 적으로는 베이즈 분류기로 질적 반응변수, 그냥 카테고리 변수라고 할께요. 카테고리를 예측 할수 잇었지만, 실제 데이터의 경우 X가 주어질때 Y의 확률에 대한 조건부 확률 분포를 모릅니다. 그래서 베이즈 분류기를 사용하는게 불가능 해요. 그래서 베이즈 분류기는 실제로 사용하기는 힘드나 다른 방법들의 기본 틀로서 사용되고 있습니다. 이 경우 사용하는 다른 방법들은 X가 주어질때 Y에 대한 조건부 확률 분포를 추정해내고, 그 다음 주어진 관측 데이터가 어디에 속하는지 확률로 분류하게 되요.

 

 그러한 방법중 하나로 최근접 이웃 분류기 K nearest neighbors classifier가 있습니다. 양의 K 값과 시험 관측치 $x_{0}$가 주어질 때, KNN 분류기는 우선 $x_{0}$에 가장 가까운 훈련데이터셋에서 K개의 점들을 찾아냅니다. 이 점들을 $N_{0}$이라고 할게요. 그리고 $N_{0}$ 중에 클래스 j에 속하는 비율로, 그러니까 입력 데이터에 최근접인 K개의 점들이 클래스 j에 얼마나 속하는지로 클래스 j에 대한 조건부 확률을 추정해요. 이를 식으로 표현하면 아래와 같습니다. KNN에 베이즈 정리를 이용하여 관측 데이터 $X_{0}$를 가장 큰 확률에 속하는 클래스로 분류하게 됩니다.

 

 

 

 

그림 2.14 K = 3인경우의 KNN. 6개의 파란 데이터와 6개의 주황색 데이터가 있는 공간. 좌측 그림 : 테스트 데이터는 검은색 원 안에 속한 데이터로 클래스 라벨을 예측합니다. 테스트 데이터에 가장 가까운 세 점을 보고 이 데이터가 어디에 속하는지를 판단하는데 이 경우 파란색 데이터가 많으므로 파란색으로 판단하게 됩니다. 우측 그림 : 이 예제의 KNN 결정 경계를 검은 선으로 보여주고 있습니다. 파란 그리드 공간은 테스트 데이터가 파란색 클래스로 판단되는 공간이며, 주황색 그리드는 오랜지색 클래스로 분류도ㅚ는 공간입니다.

 

 그림 2.14는 KNN 방법의 KNN에 대한 예시를 보여주고 있습니다. 왼쪽 그림에서는 6개의 파란, 6개의 주황색 훈련 데이터 셋을 보여주고 있습니다. 여기서 우리들의 목표는 검은 원안에 있는 점이 어디에 속하는지 예측하는 것인데요. K =3으로 가정을 하면 KNN 알고리즘은 테스트 관측치/데이터 $x_{0}$에 가장 가까운 세점을 찾습니다. 그래서 이 이웃점들이 원안에 들어있어요.

 

 이 원을 보면 2개의 파란색 점과 한개의 주황색 점이 있는데, 이걸로 확률을 추정하면 그러면 파란 클래스에 속할 확률은 2/3, 주황색 클래스에 속할 확률은 1/3이 됩니다. 그림 2.14의 오른쪽을 보면 K = 3인 경우 KNN의 결정 경계들을 보여주고 있습니다.

 

그림 2..15 (그림 2.15)의 데이터와 K=10일 때 KNN 알고리즘의 결정 경계를 검은색 커브로 그렸습니다. 여기서 베이즈 결정 경계는 분홍색 점선입니다. KNN과 베이즈 결정 경계 둘다 매우 비슷한 형태를 띄고 있는걸 볼수 있겠습니다.

 

 이 방법은 매우 단순하지만 KNN은 최적의 베이즈 분류기라고 할수 있겠으며, 그림 2.15에서는 그림 2.13의 데이터셋을 이용하여 K = 10인 경우의 KNN 결정 경계를 보여주고 있습니다. 실제 분포 true distribution을 모르더라도 KNN 분류기로, 베이즈 분류기에 거의 가까운 KNN 결정 경계를 구할수 있는걸 볼수 있어요. KNN을 사용하였을때 시험 에러율도 0.1363으로 베이즈 에러율 0.1304에 매우 가까웠습니다.

 

 KNN 분류기의 성능은 K를 어떻게 설정하느냐에 따라 달리는데 이 내용까지 정리하기는 힘들고 이번 주 정리는 요기까지

 

 

 

300x250
728x90

An Introduction to Statistical Learning with Application in R

 

2.1 통계적 학습이란 무엇일까요?

 

 지금부터 통계적 학습에 대해 배워볼건데, 우리가 상품의 판매량을 늘릴수 있는 방향을 조언해주기 위해 고용된 통계 컨설턴트라고 해봅시다. 그리고 아래의 그림과 같은 광고와 판매량을 보여주는 데이터 셋이 있다고 해 봅시다. 이 데이터는 3개의 미디어 tv, 라디오, 신문 매체 별 광고 예산에 따라 200곳의 마켓에서 상품의 판매량이 어떻게 되는지를 보여줍니다.

 

그림 2.1 광고 판매량 데이터셋. 이 그래프에서는 TV, 라디오, 신문 광고 예산을 썻을때 판매량을 보여주고 있습니다. 각 그래프에서 보여주고 있는 직선은 판매량을 이용하여 최소 제곱법으로 적합시켜 구한 것인데요. 이 내용은 3장에서 다뤄보겠으나 파란 직선들은 각 매채 광고비를 입력으로 주었을때, 판매량을 예측하는 간단한 모델이라 할수 있습니다.

 

 고용주가 직접적으로, 원하는데로 상품 판매량을 바로 늘리기는 힘들겠지만, 각 매체별 광고 지출은 조절할수 있겠죠. 아무튼 상품 판매량을 늘릴 수 있도록 우리가 광고비용과 판매량의 관계를 잘 분석해서 고용주에게 광고 예산을 늘리거나 줄이도록 얘기하면 될거에요. 하지만 우리가 원하는 실제 목표는 이런 매체 별 광고 예산에 따라 판매량을 예측할 수 있는 정확한 모델을 구하는 것이겠습니다.

 

 이를 정리하기 위해서, 여기서 광고 예산을 입력 변수 input variables, 상품 판매량 output variable이라 하겠습니다. 그리고 입력 변수는 X로 표기할 건데, 여러 입력들이 있으니 구분할수 있도록 아래첨자를 사용하겠습니다. $X_{1}$은 TV 광고비, $X_{2}$는 라디오 광고비, $X_{3}$은 신문 광고비라고 합시다. 그리고 입력 변수를 또 따른 이름으로 부를수도 있는데요. 예측 변수 predictors, 독립변수 independent variable, 특징 features 등 이런 이름으로도 부를수 있습니다.

 

 출력변수 output variable의 경우 이 예시에서는 판매량이라고 할수 있겠죠. 아무튼 출력 변수는 반응 변수 response variable 혹은 독립 변수 dependent variable 이라고 부를수 있겠습니다. 그리고 이를 Y로 표기할게요. 앞으로 볼 내용들에 이런 변수 혹은 항들을 계속 사용하게 되게습니다.

 

 조금 더 일반화를 시키자면 양적/반응 변수인 Y와 p개의 독립 변수 $X_{1}, X_{2}, . . ., X_{p}$를 관측했다고 했을때, X($X_{1}, X_{2}, . . ., X_{p}$)와 Y 사이의 관계는 아래와 같은 일반화 된 형태로 정리할 수 있습니다.

 

 

여기서 f는 아직은 알수 없지만 $X_{1}, X_{2}, . . ., X_{p}$를 입력으로 받는 함수이며, $\epsilon$는 임의의 오차를 의미하는 오차항 error term이라고 부릅니다. 이 오차 항은 X에 독립(X의 값에 영향을 받지 않음)이며, 평균이 0입니다. 이 수식에서 f는 X가 주어졌을때 Y를 어떻게 구하는지에 대한 정보이자 함수라고 할수 있겠습니다.

 

그림 2.2 학업 기간과 소득의 관계에 대한 데이터셋으로. 빨간 점은 관측/측정 된 소득(수만 달러정도의)과 학업 기간을 보여주고 있으며 30개가 있습니다. 우측 그림 : 파란색 곡선은 소득과 학업 기간의 관계를 보여주고 있습니다. 이 관계(파란색 선 모델)는 원래는 알수없지만 주어진 데이터로 추정해낼 수 있겠습니다. 그리고 검은 선들은 관측된 데이터와 추정 모델 사이 오차를 나타내고 있어요. 어떤 오차는 양의 값을 가지기도 하고(모델의 위에 빨간 점이 있는 경우), 어떤 오차는 음의 값을 가지기도 합니다(모델보다 아래에 있는 경우). 그리고 전반적으로 보면 모든 오차의 평균은 0에 가깝다고 할수 있겠습니다.

 

 다른 예시로 그림 2.2의 왼쪽 면을 한번 봅시다. 이 그래프는 학업 기간과 수입 사이의 관계를 나타내는 빨간 점으로 이루어져 있으며, 어떤 사람의 학업 기간 years of education에 대한 정보가 주어질때, 이 사람의 수입이 얼마나 될지 예측하는데 사용할 수 있겠습니다. 하지만 입력 변수와 출력 변수 사이 관계를 나타내는 함수 f는 일반적으로 알수 없다보니, 우리는 f를 알고싶지만 데이터만 있고 f는 모르는 경우 관측한 데이터(빨간점)을 이용하여 이 데이터를 가장 잘 나타내는 함수, 모델 f를 추정해 내어야 합니다. 다시 말하면 주어진 데이터로 실제 함수 f에 가까운 추정 함수/모델 estimate $\hat{f}$를 구하여야 하는 문제가 됩니다.

 

 하지만 여기 있는 수입 데이터들은 실제 함수 true function f로 부터 생성한 데이터인데, 이 함수를 그려보면 그림 2.2의 오른쪽에 있는 파란 선과 같은 형태가 되겠습니다. 이 말이 조금 햇갈리실수 있어서 첨언 하자면  y = $x^{2}$라는 식을 알고 있을때, 이 식으로부터 생성한 데이터라고 할수 있겠습니다.

 

 하지만 일반적인 경우 그림 2.2같은 실제 함수/모델 f는 모르고 이 모델로부터 구한, 측정한 데이터만 있다보니 이 데이터를 가장 잘 표현하는/오차가 가장 적은 식, 모델 f을 구하는 문제가 되겠습니다. 추가로 파란선 주위에 수직으로된 검은 선들이 있는데 이 선들은 오차항 $\epsilon$을 표현하고 있어요. 이 오차항들은 근사적으로 평균이 0이 됩니다.(모든 오차들을 더해서 평균 내면 0에 가깝다.)

 

 하지만 일반적인 경우 함수 혹은 모델 f에는 입력 변수가 하나(위에서는 학업 기간을 입력 변수로하여 수입에 대한 출력을 구함)만 사용되는게 아니라 여러 개가 사용됩니다. 아래의 그림 2.3은 보면 학업 기간 years of education과 연차 seniority에 따른 수입 income에 대한 함수를 그린 결과를 보여주고 있습니다. 아무튼 f는 주어진(혹은 관측한) 데이터로 추정해서 구하여야 합니다.

 

 통계적 학습은 여러 방법을 사용하여 모델 f를 추정해 내는것이라고 할 수 있겠습니다. 이번 장에서는 f를 추정하는데 사용되는 핵심 이론 개념들과 추정하는데 필요한 도구들을 살펴봅시다.

 

 

 

그림 2.3 수입 데이터셋의 학업 기간과 연차가 주어질 때 수입에 대한 함수/모델을 보여주고 있습니다. 파란 면은 수입과 연차, 학업 기간에 대한 실제 관계, 모델(참 함수 f(x)=y)를 나타내고 있으며, 빨간 점들은 관측된 데이터로 30개가 있습니다.

 

2.1.1 왜 f를 추정해야하나요?

 f를 추정해야하는 이유는 예측과 추론문제 2가지가 있겠습니다. 이제 이에 대해서 한번 살펴봅시다.

 

예측 Prediction

 

 입력 X들이 쉽게 얻을수 있는 상황들이 많이 있지만 출력 Y의 경우 쉽게 얻기는 어렵습니다. 오차가 평균적으로 0이 된다고 가정을 할때 우리는 Y를 아래의 식을 이용해서 예측 할수가 있어요.

 여기서 $\hat{f}$는 f를 추정해서 구한 함수를 말하며, $\hat{Y}$는 예측한 결과 입니다. $\hat{f}$는 블랙박스 black box라고 부르기도 하는데, 정확환 형태도 없고 예측한 결과가 정확하다고 확신할수 없기 때문입니다.

 

 

 한번 예를 들자면 $X_{1}$, $X_{2}$, . . ., $X_{p}$를 한 환자의 혈액 샘플의 특성, 특징이라고 하겠습니다. 이런 혈액에 대한 데이터는 쉽게 얻을수 있을 겁니다. Y는 특정 약에 대해 거부 반응이 일어날 위험도를 의미하는 변수라고 합시다. 그럼 X로 Y를 예측하고 환자에게 위험한 약을 주는 경우를 피할수 있을 겁니다. 만약 환자에게 위험하다면 추정한 Y의 값이 크게 나오겠지요.

 

 Y를 예측한 값이라고 할수 있는 $\hat{Y}$의 정확도는 제거 가능한 오차 reducible error와 제거 불가능 오차 irreducible error의 영향을 받습니다. 일반적으로 $\hat{f}$는 함수 f를 완벽하게 추정할 수 없다보니, 올바른 함수 f와 추정한 함수 $\hat{f}$의 차이가 존재하는 만큼 예측 오차가 발생하게 됩니다. 이 오차는 제거 가능한 것인데 더 나은 통계적 학습 기법을 사용해서 더 좋은 f를 구하면 $\hat{f}$의 정확도를 개선 시킬수 있기 때문입니다.

 

 하지만 함수 f를 완벽하게 추정, 모델링했다고 하더라도 우리가 추정한 결과/예측치 $\hat{Y}$ = f(X)는 여전히 오차를 가지고 있습니다. 왜냐면 Y의 정의 자체에 오차 항 $\epsilon$이 존재하다보니 X를 가지고 아주 정확하게 예측하는게 불가능 합니다. 그래서 이런 오차를 제거 불가 오차 irreducible error라고 부릅니다. f를 얼마나 잘 추정해서 구하던 간에, 오차 항에 의한 오차는 없앨수 없거든요.

 

 다시 정리하면 제거 가능한 오차는 더 좋은 모델을 추정해서 줄여 나갈수 있지만, 제거 불가 오차의 경우 모델 자체가 가지고 있는 오차 항에 의한 것이라 줄일수가 없습니다.

 

 그러면 왜 제거 불가 오차를 0보다 크게 설정할까요? 왜냐면 $\epsilon$은 관측/측정 할수 없는 다양한 경우들을 나타낼 수 있다보니 Y를 예측하는데 유용하거든요. 다시 말하면 수식으로 나타낼 수 없는 값(잡음, 관측할수 없는 값)들을 오차 항으로 대신하여 표현한다고 하면 될것 같습니다.

 

 예를 들면 거부 반응 위험도는 사람에 따라 혹은 날자에 따라 혹은 약을 생산한 제조사나 환자의 감정 등과 같이 혈액의 특성 X이외의 요소에 따라 바뀔 수 있겠습습니다.

 

 한번 추정한 모델, 함수 $\hat{f}$와 입력 변수 X가 있다고 해봅시다. 그러면 $\hat{Y}$ = $\hat{f}(X)$로 예측 값을 구할수 있겠죠. $\hat{f}$와 X가 변하지 않는다고 생각하면, 실제 Y와 예측한 $hat{Y}$의 평균 제곱 오차 MSE mean squared error를 아래와 같이 정리할 수 있습니다.

 

 E$(Y - \hat{Y})^{2}$는 실제 Y와 예측한 Y의 차이(오차)를 제곱한 값들의 평균, 기대값을 나타냅니다. 그리고 Var($\epsilon$)은 오차항 $\epsilon$의 분산 정도를 나타내고 있습니다.

 

 이 책의 목표는 제거 가능한 오차를 최소화 하는 함수/모델 f를 구하는 기술들을 배우는게 되겠습니다. 명심해야할 점은 제거 불가능한 오차으로 인해 Y를 예측한 값의 정확도가 더 이상 커지지 않는 상한 선이 있겠습니다. 

 

 

 

 

추론 Inference

 

 그리고  $X_{1}, X_{2}, . . ., X_{p}$의 값이 변할때 Y에 얼마나 영향을 주는지를 알고 싶을 때도 있습니다. 이런 상황에서는 f를 추정할 거지만, Y를 예측하는것보다 X와 Y사이의 관계를 이해하는데에 집중해서 봐야되겠습니다. 이제 $\hat{f}$가 어떻게 동작하는지 알아야 되니 블랙 박스가 아니라 좀 자세히 보겠습니다. 이와 관련한 질문들과 대답들을 한번 볼까요.

 

- 어떤 입력 변수가 반응 변수에 영향을 줄까요?

 입력 변수 여러개 중에 일부만 Y를 구하는데 큰 영향을 줄수 있습니다. 데이터셋이 큰 경우 그래서 중요한 입력 변수, 특징들을 찾아내는게 매우 유용할수 있어요.

 

- 각 입력 변수와 반응 변수 사이 관계는 어떻게 되나요?

 어떤 입력 변수, 특징들은 Y와 양의 상관관계 그러니까 특징 값이 증가할때 Y도 증가하는 관계를 가지고 있고, 음의 상관관계를 갖는 경우 반대로 영향을 줍니다. 모델 f이 복잡한 경우에는 입력 변수의 Y에 대한 영향력이, 다른 입력 변수의 크기/값에 따라 변할수도 있어요.

 한번 어떤 모델 f로 키와 몸무게로 사람의 나이를 예측한다고 해 볼게요. 이 모델이 몸무게가 70kg이고, 키가 180cm로 주었을때 사람의 나이를 30대로 예측을 했어요. 하지만 몸무게는 그대로인 상태에서 키가 160cm인 경우 사람의 나이를 10대로 예측 할수도 있겠지요. 이 경우 몸무게는 그대로지만 키라는 다른 입력 변수의 영향을 받아 모델은 다른 나이를 예측하게 되었습니다.

 

- Y와 각 예측 변수 사이 관계를 선형 함수나 다른 형태로 정리하는게 가능한가요? 

 역사적으로 모델 f를 선형의 형태로 추정해 왔습니다. 어떤 경우에는 이 모델이 선형이라는 가정이 옳을수도 있겠지만, 입력과 출력 사이의 실제 관계가 너무 복잡해서 선형 모델이 좋은 정확도를 주지 않을 수도 있어요.  아까 본 그림 2.2의 경우 선형으로도 주어진 데이터를 잘 나타낼수 있겠지만, 곡선 모델이 데이터들을 더 정확하게 표현하고 있었죠.

 

 이 책에서는 앞으로 여러가지의 예측과 추론, 이들을 혼합한 예시들을 보겠습니다. 한번 예를 들어보면 직접적인 마케팅 활동을 준비하는 회사가 있다고 해봅시다. 이 회사의 목표는 인구 통계학적 데이터들을 이용해서 메일을 보냈을때 긍정적으로 응답해주는 사람들을 찾으려고 합니다. 이 경우 인구 통계학적 데이터가 입력 변수이고, 마케팅 활동(메일링)에 대한 반응을 출력 변수라고 해봅시다. 하지만 이 회사는 입력 변수들과 반응 변수 간의 상관관계에는 크게 관심은 없고, 대신 가장 잘 예측하는 정확한 모델을 구하기를 원한다고 합시다. 이게 예측 모델링의 예시라고 할수 있을것 같아요.

 

 

 그러면 반대로 아까 그림 2.1에서 본 광고와 판매량에 대한 경우를 생각해봅시다. 이런 질문들을 한다면

 

- 어떤 매체가 판매량에 기여를 했을까요?

- 어떤 매체가 판매량 증가에 가장 크게 도움되었나요?

- TV 광고량을 증가시킨것과 판매량 증가가 얼마나 관련되어 있을까요.

 

 이 상황을 추론 문제로 본다고 할 수 있겠습니다. 다른 예시로 가격과 상점 위치, 할인율, 경쟁사 제품 가격 등을 고려해서 고객들이 구입할만한 상품을 만든다고 해봅시다. 그럼 제조사는 사람들의 제품 구입에 가장 큰 영향을 줄만한 요소, 특징이 무엇인지 알고 싶을 수도 있습니다. 예를 들면, 제품 가격 변화가 판매량에 어떤 영향을 주는가? 같이요. 이런 경우를 추론을 위한 모델링의 예시라 할 수 있겠습니다.

 

 목표가 예측인지 추론인지, 이 둘을 혼합한 경우인지에 따라 f를 추정하는데 다른 방법들을 사용할수도 있겠습니다. 예를 들면 선형 모델은 다른 모델과 비교해서 간단하고 해석하기 쉬운데, 예측 정확도는 떨어지는 편입니다. 하지만 뒷 챕터에서 배울 비선형 방법들은 더 정확한 예측을 할 수 있겠지만 모델을 이해, 추론하기는 더 힘들 수 있습니다.

 

 

 

 

 

 

 

2.1.2 그래서 어떻게 f를 추정하나요?

 

 이 책 전체에서 앞으로 f를 추정하는 많은 선형, 비선형 방법들을 살펴볼겁니다. 하지만 이런 방법들은 일반적으로 어떤 특징이 있는데요. 모델 추정 방법들이 가지고 있는 특성들을 간단하게 봅시다. 그리고 이때 n개의 데이터가 있다고 가정할게요. 아까 그림 2.2의 경우 데이터가 30개, 그러니까 n = 30이라고 봤듯이요.

 

 이런 관측 데이터를 훈련 데이터 training data라고 부릅니다. 왜냐면 이 관측치들은 훈련 과정, 그러니까 f를 추정하는 과정에서 사용되거든요. $x_{ij}$는 i번째 관측 데이터의 j번째 특징, 변수를 의미합니다. 그러니까 i = 1, 2, . . ., p이고, j = 1, 2, . . ., p가 됩니다. 이와 동일하게 $y_{i}$는 i번쨰 관측된 반응 변수를 의미합니다. 그러면 우리들의 훈련 데이터셋은 {($x_1$, $y_1$), ($x_2$, $y_2$), . . ., ($x_n$, $y_n$)}이 되며 $x_{i}$ = $(x_{i1}, x_{i2}, . . ., x_{ip})^{T}$의 형태가 되겠습니다.

 

 우리들의 목표는 알수 없는 함수 f를 추정하기 위해서 통계적인 학습 방법으로 이 훈련 데이터를 학습시키면 되겠습니다. 다시 말하자면, 관측치 (X, Y)가 있을때 Y$\approx \hat{f}(X)$가되는 함수 $\hat{f}$를 찾는 것이라고 할 수 있겠습니다.

 

 일반적으로 이 작업을 하는 대부분의 통계적 학습 방법들은 모수적인 parametric 방법과 비모수적인 non-parametric 방법으로 나눌수 있습니다. 간단하게 이 두 방법에 대해서 살펴봅시다.

 

모수적 방법 Parametric Methods

 

 모수적 방법은 아래의 2 단계로 이루어진 모델 기반 방법을 말합니다.

 

1. 첫번째로 추정하고자 하는 f에 대한 함수의 형태를 가정 합니다. 예를 들어 가장 간단한 가정을 한다면 f를 X에 대해 선형적이라고 가정할 수 있겠죠.

 

 

 이것을 선형 모델이라고 부르며 3장에서 상세히 설명하겠습니다. 이렇게 f가 선형이라고 가정을하면 f를 추정하는건 매우 간단한 문제가 됩니다.  p차원의 함수 f(X)를 추정해야하는 경우에는 p + 1개의 계수들($\beta_{0}$, $\beta_{1}$, . . ., $\beta_{p}$)만 추정하면 됩니다.

 

 

2. 그래서 모델 가정을 하고 나면, 이제 훈련 데이터로 이 모델을 학습 시키면 됩니다. 위 식에서 본 선형 모델로 가정한다면 $\beta_{0}$, $\beta_{1}$, . . ., $\beta_{p}$ 파라미터들을 추정하여 찾아야 합니다. 

 

 모델을 학습 시키는 가장 자주 사용되는 방법으로 최소제곱법 (ordinary) least squares가 있는데, 이에 대해서는 3장에서 배워봅시다. 하지만 최소 제곱법은 선형 모델을 학습시키는 가장 간단한 방법들 중 하나이고, 6장 쯤에서 다른 파라미터 추정 방법들을 배워봅시다.

 

 이러한 모델 기반 방법을 모수적 parametric방법이라고 부르며, f를 추정하는 문제를 데이터를 잘 정확하게 표현하는 특정 모델의 파라미터 집합을 추정하는 것으로 바꾼것이로 볼수도 있겠습니다.

 

 

 

 

비모수적 방법 Non-parametric Methods

 

 비모수적 방법은 f가 어떤 함수적인 형태를 가지고 있는지 예를 들어 선형 모델이다, 비선형 모델이다 같은 가정을 하지 않는 방법을 말합니다. 대신 데이터들에 가장 가까운 f를 찾는 방법으로, 모수적 방법보다 몇 가지 장점이 있는데 특정 함수의 형태를 따른다는 가정을 하지 않음으로서 다양한 형태의 경우에도 정확하게 학습을 시킬수 있습니다.

 

 그리고 모수적 방법은 모델 f를 추정하는데 어떤 함수 형태를 사용하느냐에 따라 크게 달라질수 있지만(선형 모델로 가정하여 파라미터를 추정한 경우와 비선형 모델로 가정하여 파라미터를 추정한 경우 정확도는 달라질수 있겠죠.), 비모수적 방법은 어떤 함수를 사용한다는 가정 자체가 없기 때문에 이런 문제를 피할수가 있겠습니다.

 

 하지만 비모수적 방법의 단점으로는 모수적 방법처럼 파라미터 몇 개를 추정하는 문제로 줄일수가 없어, 정확한 추정 모델을 얻으려먼 많은 데이터 관측 치들이 필요합니다.(일반적으로 모수적 방법에서 필요한 수보다 훨씬)

 

그림 2.5. 그림 2.3에서 봤던 수입 데이터들을 적합, 학습하여 위의 부드러워진 노란 얇은 판 스플라인을 얻었습니다. 관측치는 빨간색이고, 스플라인에 대해서는 7장에서 살펴보겠습니다. (스플라인 : 간단하게 곡면 정도로 이해하면 될것같아요..?)

 

 

 비모수적인 방법의 예시로 수입 데이터를 학습한 결과는 위 그림 2.5가 되겠습니다. 여기에 얇은 판 스플라인이 f를 추정하기 위해서 사용되는데요. 이 방법에서는 모델에 특정한 함수적 가정을 두지 않으며, 대신 관측된 데이터와 가장 가까운 f를 구하려고 시도합니다. 그래서 그림 2.5의 노란 표면이 그림 2.3보다 더 부드러워집니다. 

 

 

그림 2.6 거친 얇은판 스플라인. 그림 2.3의 수익 데이터를 학습하였으나, 과적합하여 오차가 사라졌다.

 

 비모수적 방법으로 학습을 함으로서 그림 2.3의 실제 f에 더 가깝고 정확한 추정치를 얻을수가 있었습니다. 이 앏은 판 스플라인을 학습 하기 위해서는 얼마나 부드러워질지의 정도를 정하여야 하는데, 그림 2.6의 경우 같은 얇은 판 스플라인을 덜 부드럽게해서 학습을 시킨결과 더 거칠게 되었습니다. 이 경우 관측 데이터를 완벽하게 학습했다고 할수 있겠죠.

 

 하지만 그림 2.6의 스플라인 모델의 경우 오버피팅 되었기 때문에 더 좋은 모델이라고 할수는 없고, 이렇게 얻은 학습 모델은 새로운 관측 치가 들어올때 정확한 결과를 못내다 보니 좋다고 할수 없겠습니다. 나중에 5장에서 부드러운 정도를 어떻게 찾아야될지에 대해 다루고, 스플라인에 대해서는 7장에서 보겠습니다.

 

 

 

 

 

 

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

the trade off between prediction accuracy and model interpretability

 

 이 책에서는 앞으로 많은 방법들을 볼거지만, 어떤 방법은 덜 유연할수도 있고, 제한적이여서 다양한 형태로 f를 추정하지 못하는 경우가 있습니다. 예를 들면 유연하지 않은 방법으로 선형 회귀가 있는데, 왜냐면 그림 2.1에서 본 직선이나 그림 2.4에서 본 평면 같은 직선에 대한 함수만 만들어 내다보니 다양한 경우에 대처하기는 힘들거든요. 하지만 그림 2.5나 그림 2.6에서 본 앏은판 스플라인 같은 방법들은 더 다양한 형태로도 f를 추정할 수 있다보니 더 유연하다고 볼 수 있겠습니다.

 

 그러면 이런 질문을 해볼수 있겠습니다. "왜 유연한 방법을 하지 않고 제한적인 방법을 사용하려고 할까요?" 이 질문에 우리가 제한적인 모델을 사용하려는 이유들로 여러개가 있겠는데, 만약 우리가 추론(특징과 출력간의 관계에 관심을 갖는 문제)에 관심 있는 경우 제한적인 모델이 훨신 이해하기가 편하겠죠.

 

 예를 들면 우리가 추론을 하려고 할때, 선형 모델은 Y와 입력 변수 $X_{1}, X_{2}, . . ., X_{p}$사이 관계를 이해하는데 훨씬 쉬울겁니다. 하지만 스플라인 처럼 7장에서 다뤄볼건데, 그림 2.5와 2.6같은 혹은 8장에서 다뤄볼 부스팅 방법 같은 것들은 f를 추정한 모델이 너무 복잡해서 각 입력 변수들과 출력 변수 사이에 얼마나 연관성이 있는지 이해하기가 힘든 문제가 있습니다.

 

 

그림 2.7 다양한 통계적 학습 방법을 사용할때 유연함과  이해 난이도. 일반적으로 추정 모델의 유연성이 클수록, 복잡해져 해석하기 힘들어 집니다.  

 

 그림 2.7은 유연성 flexibility와 이해 난이도 interpretability 사이의 트레이드 오프(상쇄정도, 길항 관계)를 보여주고 있습니다. 3장에서 다룰 최소 제곱 선형 회귀는 상대적으로 덜 유연하지만 이해하기는 쉽습니다. 하지만 6장에서 볼 라쏘 같은 경우에는 선형 모델을 기반으로 하나 계수들 $\beta_{0}, \beta_{1}, . . ., \beta_{p}$를 추정하는데 조금 다른 다른 피팅 과정, 학습 과정을 사용하고 있습니다. 이 방법은 계수 추정에 더 제한을 두는데, 상당 수의 계수들을 0으로 설정함으로서 그러니까 전체 계수를 추정하는게 아니라 일부를 추정하는 문제라고 볼수 있을거같아요. 그래서 라소는 선형 회귀보다 덜 유연하지만, 특징의 수가 줄었으므로(계수를 0으로 설정한 특징들은 제외됨) 일부 특징과 Y의 관계만 보면 되어 해석하기 쉬워졋다고 할수 있겠습니다.

 

 이전에 본 선형 모델을 비선형 관계에서도 사용할수 있도록 확장시키기 보다는, 일반화 가법 모델 generalized additive models(GAMs)에 대해서 7장에서 보겠습니다. GAMs는 선형 회귀 모델보다 더 유연하다고 할수 있으나, 특징과 반응 사이 관계를 선형이 아닌 비선형/커브로 모델링하다보니 이해하기는 더 어렵다고 할수 있습니다.

 

 마지막으로 배깅, 부스팅, 비선형 커널을 사용한 서포트벡터 머신같이 완전 비선형 방법들에 대해서는 8, 9장에서 볼 것이며 매우 우연한 방법들이지만 이해하기는 더 어렵습니다.

 

 지금까지 추론을 한다고 할때, 단순하거나 덜 유연한 통계적 학습모델을 사용했을때의 장단점들을 배웠습니다. 하지만 우리가 예측을 한다고 하는 경우 예측 모델의 이해 난이도는 중요한 문제는 안됩니다. 예를들면 주가를 예측하는 알고리즘을 만들건데, 내가 원하는 요구사항이 그냥 정확하게 예측하기만 해도된다면 이해 나이도는 중요하지 않겠죠.

 

 하지만, 이게 항상 옳다고는 할순 없습니다. 우리가 덜 유연한 방법으로 높은 정확도를 얻는다해도, 그림 2.6에서 본것 처럼 오버피팅의 가능성을 고려해서 해야할것입니다. 이건 되게 중요한 개념인데 2.2장에서 보고 이 책 전반으로도 다루겠습니다.

 

 

 

 

2.1.4 지도 학습 대 비지도 학습

 

 통계적 학습 문제는 크게 두 카테고리로 나눌수 있습니다. 지도 학습과 비지도 학습인데요. 이번 장에서 본 모든 예시들은 지도 학습의 영역에 속해있다고 할수 있습니다. 각 입력 관측치 $x_i$, i = 1, 2, . . ., n가 있을때, 이에 대한 반응 관측치 $y_i$가 존재하는 경우의 문제를 말합니다. 우리는 새로운 관측치을 입력으로 하여 정확한 예측치를 만드는 모델(예측) 혹은 입력 치와 예측 결과 사이 관계를 더 이해할 수 있는 모델(추론)이 되도록 학습해야 합니다.

 

 선형 회귀나 로지스틱 회귀(4장) 많은 고전적은 학습 방법들과 GAM, 부스팅, 서포트 백터 머신 같은 많은 근대적 방법들까지 지도 학습이라고 할수 있습니다. 이책의 대부분은 이런 지도 학습들을 다룬다고 할수 있을것같아요.

 

 하지만 반대로 비지도 학습은 i번째 관측 i = 1, . . ., n할 때, i번째의 관측치 벡터 $x_{i}$가 있지만 이에 대한 반응인 $y_{i}$가 없는 경우를 다룹니다. 예측을 할 반응 변수, 출력 변수가 없다보니 선형 회귀 모델로 학습 시킬수가 없어요. 이 경우를 학습/분석 과정에서 올바른지 틀린지 지도해줄수 있는 반응 변수가 없다보니 비지도 학습이라 부르고 있습니다.

 

 그러면 어떤 통계적 분석이 가능한가요? 한번 변수들끼리의 관계 혹은 관측치들끼리의 관계에서 찾아볼수도 있습니다. 이런 비지도 학습의 한 통계적 학습 방법으로 클러스터링, 클러스터 해석이 있습니다. 클러스터링의 목표는 $x_{1}, x_{2},. . ., x_{n}$의 관측치들이 있을때 이들을 서로 구분가능한 그룹으로 나누는 것이 되겠습니다.

 

 예를들어 소비자 구분 연구를 할때, 잠재적 소비자에 대한 특징들(우편 번호, 가족 수입, 쇼핑 습관)을 가지고 있다고 해봅시다. 그러면 아마 이 소비자들을 많이 구입하는 소비자와 적게 구입하는 소비자로 나눌수 있을것 같아요.  만약 각 소비자들의 소비 패턴 정보가 있다면, 이건 지도 학습이 될수도 있겠죠. 하지만 이런 정보는 없다 보니 이 소비자가 많이 구입하는지 적게구하는지 알 수가 없습니다.

 

 이 상황에서 가지고 있는 데이터들로 고객들을 클러스터링을 시키면, 이 잠재적인 고객들은 서로 구분되는 그룹에 속하게 될겁니다. 이렇게 그룹 식별의 흥미로운 점으로 소비 습관같은 관심 변수(사용하는 변수들)에 따라서 클러스터링하여 구한 그룹들이 바뀔수도 있습니다.

 

그림 2.8 세 그룹으로 데이터를 클러스터링 한 결과. 각 그룹은 서로 다른 색상으로 분할됩니다. 좌측의 그림에서 세 그룹은 잘 분할되어 있습니다. 우측 그림에서는 그룹들 간에 일부 데이터가 겹쳐져 있습니다. 이 경우 클러스터링을 어떻게 해나가야 될까요.

 

** 관측치 observation : 특징 벡터, 변수 벡터 하나

** 측정치 measurement : 특징, 변수 값 하나

 

 그림 2.8은 클러스터링 문제의 간단한 예시를 보여주고 있습니다. 이 그림에서 150개의 두 변수 $X_{1}$, $X_{2}$를 가진 관측치들을 보여주고 있습니다. 각 관측치들은 세 그룹 중 하나에 속하는데, 서로 다른 색상과 심볼로 각 그룹의 맴버들을 표현하고 있습니다. 하지만 관측치들이 어느 그룹에 속하는지에 대한 정보가 없을 때, 한 관측치(데이터)가 어디에 속하는지를 결정하여야 합니다.  그림 2.8의 왼쪽을 보면 그룹들이 잘 분리되었고 쉬워 보입니다. 하지만 우측의 경우 그룹 사이 겹친게 있다보니 더 힘든 문제로 보입니다.

 

 클러스터링 방법은 겹쳐진 부분들을 올바른 그룹에 속하도록 해준다고 할수는 없습니다.그림 2.8에서 본 예시의 경우 겨우 변수가 2개 뿐이었고, 산점도로 바로 클러스터들을 식별할수 있는 매우 간단한 경우입니다. 하지만 현실에서 데이터들은 훨씬 복잡합니다. 이 경우 이런 경우에는 지금처럼 쉽게 관측치를 시각화 할수도 없습니다. 만약 한 관측치에 변수가 p개가 있으면 이를 산점도로 어떻게 표현할가요. 아무튼 지금까지의 이유들로 클러스터링도 중요한 방법이며, 클러스터링과 비지도 학습에 대해 10장에서 배워봅시다.

 

 많은 문제들은 지도 학습과 비지도 학습으로 나누어집니다. 하지만 어떤 경우 지도적으로 할지 비지도적으로 해야되는지는 덜 명확한 경우도 있습니다. 관측 치, 입력 변수는 쉽게 구할수 있지만, 반응 변수는 구하기 더 힘든 경우를 세미 지도 학습이라고 부릅니다. 

 

 

 

300x250
728x90

 today i watched very funny video clips of friends. it's topic was  about joey's perverted tailer. i didn't know what the word perverted means before watching that i founds the meanings. but, i could not predict how story will be going on. before i found the learning english with tv series, i tried to understant the speaking without subtilte i think they are not helpful for me to imporve my listening skills. but after watching several videos in the channel, i realize i have to change my english practice methods. so, i watched it with subscription first and serveral times until i can hear the words without it.

 

 finally, i could listen and understand most of what the actor's is saying. plus, i tried to understand ameraicna culture and expressions. today's expressions that i didn't know the meaning was "crack the codes", "no way", "stop the q tips when there are registance", "peverted" like that. anyway this trainig is very good for me and i recall what we have to do thing when we want improve our english skills was to make bigger circles about speaking and linstening vocabulary not, the big vocabulary circle that means we already knows.

 

 yesterday, i could not write down anything because there was no time. today, it seems that i wrote more sentences comparing with before. i'm so proud of my archievements that i wrote down until now. and i hope i can understand and hear the natives speaking more and more. 

 

 

 

 

300x250

'그외 > 로그' 카테고리의 다른 글

2021.01.29 이번주 정리  (0) 2021.01.29
2021.01.28 daily english study log  (0) 2021.01.28
2021.01.26daily english study log  (0) 2021.01.26
2021.01.25 daily english study log  (0) 2021.01.25
2021.01.22 daily english study log  (0) 2021.01.22
728x90

 

2. 두 수의 합

21. 두 연렬 리스트를 병합 후 정렬하기

24. 쌍으로 바꾸기

92. 역 연결리스트2

206 : 역 연결리스트

234 : 팰린드롬 연결리스트

328 홀수, 짝수 연결리스트

 

 

 

300x250

'수학 > 알고리즘' 카테고리의 다른 글

그래프 정리 2  (0) 2021.02.24
그래프 정리 1  (0) 2021.02.23
[리트코드 문제 풀기] 배열  (0) 2021.01.20
알고리즘설계기법 - 7. 근사해법  (0) 2020.08.09
알고리즘설계기법 - 6. 백트래킹  (0) 2020.08.09
728x90

wa wa wa 

 i should hurry write today's log because i just make a phone call to let go chicken. anyway todays video clip i wathced is joey vs thanksgivingday. in that video, i could learn about some expressions of joeys challenge and american traditions. but sadly, it's too hard for me to understand the many words they are speaking.

 

 but after have a training, i could imporve my comprehension about that. nevertheless, without subscription or any comment it was not easy yet. what expressiosn i haver leanered? there were some expresseions like "that's what i do", "that's it" etc.

 

 in the video, she says they will not cook for thanksgiving day because they are still on diet and pheby? could not eat turkey the reason is turkey is anima and wise. most funny seen was here. and then joey's answer was turkey is ulgy and delicious!!

 

 um.. i want to write something more here. but i'm running out of time. so i have to go to get my chicken don't to be late. i don't wanna eat freezed chicken. anyway i solve many coding problems and finished my homework, so after eating that i will prepare my presetation for computervision with deeplearning

 

 

 

300x250

'그외 > 로그' 카테고리의 다른 글

2021.01.28 daily english study log  (0) 2021.01.28
2021.01.27 daily english study log  (0) 2021.01.27
2021.01.25 daily english study log  (0) 2021.01.25
2021.01.22 daily english study log  (0) 2021.01.22
2021.01.22 이번주 정리  (0) 2021.01.22

+ Recent posts