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

+ Recent posts