IE가 어른이 되기까지

[Machine Learning] KNN (지도학습 / 예측 & 분류) 본문

ML/Algorithms

[Machine Learning] KNN (지도학습 / 예측 & 분류)

기모랑의 초코 2023. 1. 12. 23:12

 

https://piscesue0317.tistory.com/27
 

[Data Science] 지도학습과 비지도학습이란 ?

데이터 마이닝이란 대량의 데이터를 탐색하고 분석하여 의미 있는 패턴과 규칙을 발견하는 것입니다. 또한, 예측이 주된 목적입니다. 이러한 데이터 마이닝에는 다양한 기법들이 존재합니다.

piscesue0317.tistory.com

 

 

 

지도학습이란 y = f(x) 에 대해

입력변수 (X) 와 출력변수 (Y)의 관계에 대하여 모델링하는 것입니다.

 

즉, Y에 대해 예측하거나 분류하는 문제를 다룹니다.

 

 

 


 

 

 

 

친한 친구들을 보면

대부분 나와 비슷한 점이 많습니다.

 

우리는 이것을

"끼리끼리"라고 합니다.

 

데이터 분석에서도 친한 친구들을 통해

데이터를 예측하는 기법이 있습니다.

 

그것이 바로 이 글에서 다룰

'KNN'이라는 알고리즘입니다.

 

 

 

KNN 이란 ?

 

 

KNN은 k-nearest neighbor의 약자로

즉, 예측하고자 하는 데이터로부터 근접한 

k개의 데이터들로 묶어 예측하거나 분류하는 기법입니다.

 

 

 

 

근접한 이웃의 정량적 정의

 

 

그런데 근접하다는 것을 어떻게 정의할 수 있을까요 ?

 

 

 

 

이때 우리는 정량적 수치인

'유클리드 거리'를 사용하게 됩니다.

 

예를 들어, (3,4)와 (5,6)의 유클리드 거리를 계산하면

가 됩니다.

 

 

 

최적의 K 값 찾기

 

 

KNN에서는 무엇이 가장 중요할까요 ?

 

이름에서도 알려져 있다시피

데이터를 예측 혹은 분류하기 위해 필요한 최적의 k,

즉 이웃의 수를 찾아야 합니다.

 

 

 

만약 k가 2이면 

두 개의 가장 유사한 데이터를 사용한다는 의미입니다.

 

보통 k의 값은 검증 데이터에서

가장 낮은 오류율을 가진 것을 선택합니다.

 

 

 

* k : 새로운 데이터를 분류하는 데 사용되는 유사한 이웃의 수

 

 

 


 

 

 

그렇다면 k가 작은 게 좋을까요, 큰 게 좋을까요?

 

예시를 통해 알아보겠습니다.

 

 

먼저 k가 2인 경우로 비교적

 k가 작을 때입니다.

 

빨간색이 대부분 분류하고자 하는 점과 멀지만

우연히 가까이 있는 2개 때문에 빨간색으로 분류되었습니다.

 

이렇게 이상치를 반영하기도 합니다.

 

 

 

반대로 k가 7인 경우로 비교적

k가 클 때입니다. 

 

k가 큰 경우엔 

지역적 구조가 주는 정보를 놓칠 수도 있습니다.

 

 

 

 


 

 

 

KNN 분류 문제 예시

 

 

종속변수가 범주형인 경우, 

다수결의 원칙을 이용해 분류합니다.

 

 

KNN의 개념을 대입해

위 그림에 나타나있는 데이터를 분류해 보겠습니다.

 

최적의 근접한 이웃의 수가 3일 때, 근접한 3개의 데이터들을 이용해

해당 데이터는 빨간색이라고 분류할 수 있습니다.

 

 

 

 

 

KNN 예측 문제 예시

 

 

종속변수가 수치형인 경우 평균을 통해

예측합니다.

 

 

 

최적의 근접한 이웃의 수가 3일 때, 근접한 3개의 데이터들을 이용해

해당 데이터는 200이라고 분류할 수 있습니다.

 

 

 

 

하지만 경우에 따라

예측하고자 하는 데이터와 거리는 멀지만,

큰 수치로 인해 왜곡될 수 있으므로 유사도에 따라 가중치를 부여하는

가중평균값을 사용하기도 합니다.

 

 

 

 


 

 

 

KNN의 장단점

 

 

장점

 

1. 간단한 모델

2. 분포 가정 불필요

3. 통계적 모델을 정의하지 않았음에도 정확한 성능

 

 

단점

 

1. 독립변수의 수가 증가함에 따라 학습 데이터로 필요한 데이터 수가 기하급수적으로 증가 (차원의 저주)

    →  차원 축소 방법, 변수 선택방법 등을 통해 독립변수 수 감소 필요

2. 대용량 데이터가 있는 경우, 모든 이웃까지의 거리를 계산하는 데에 많은 시간 소요

3. 데이터가 새롭게 추가될 경우, 재계산 필요

 

 

 

* 차원의 저주 : 차원이 증가하면서 학습데이터 수가 차원 수 (변수 수) 보다 작아져서 성능이 저하되는 현상

                         ex ) 학습 데이터 : 200개 , 차원 수 (변수 수) : 250개

 

 

 

 

 

Comments