Data Science & AI/Machine Learning

[ML]KNN 알고리즘

skwkiix 2024. 4. 7. 11:09
728x90

K-Nearest Neighbor : KNN , 최근접 이웃

개요

휘귀와 분류 모두 가능한 Memory-Based Learning 지도학습 알고리즘이다. (분류에 더 많이 사용)

이 알고리즘은, 유사한 데이터 포인트는 유사한 레이블이나 값을 갖는 경향이 있다는 아이디어에 의존한다.

즉, 새로운 데이터가 주어졌을 때, 거리 기반으로 가장 가까운 K개의 이웃 데이터들을 찾아서 이 데이터의 클래스 또는 값을 예측하게 된다.

 

 

 

출처 : Analytics Vidhya

 

가운데 동그라미(새로운 데이터 포인트)가 네모 카테고리로 분류되어야 하는 것인지,

세모 카테고리로 분류되어야 하는지 k개의 이웃 개수에 따라 결정된다.


Memory-Based Learning(Instance - Based - Learning)

K-Nearest Neighbors(KNN)는 메모리 기반 학습 알고리즘 중 하나이다.

훈련 데이터셋을 메모리에 저장하고, 새로운 데이터 포인트를 분류할 때 저장된 데이터 포인트들과의 유사도를 측정하여 예측하는 방식이다. 메모리 기반 학습 알고리즘은 다음과 같은 특징을 가진다.

 

1. 학습 단계(Learning Phase) 없음: Memory-Based Learning은 훈련 데이터를 단순히 저장하기 때문에, 별도의 학습단계가 없다(바로 적용 가능)

2. 단순한 모델 : 모델 자체가 간단하며, 복잡한 파라미터 조정이나 튜닝 과정이 필요하지 않음(유사도 측정 방법과 이웃의 수(K)만 조절)

3. 데이터 의존적: Memory-Based Learning은 저장된 데이터에 직접적으로 의존한다(데이터의 품질과 양이 예측 성능에 직접적인 영향을 미침) > 데이터 품질 향상이 중요

 

따라서, Memory-Based Learning은 간단하고 직관적이기 때문에, 특히 데이터셋이 작고 노이즈가 적을 때 효과적인 방법이다.


K 값  결정

K 값을 통해 각 클래스에 대한 경계를 설정한다.

K 값에 따라 변하는 결정경계는 K ​​값이 증가함에 따라 경계가 더 부드러워진다.

 

 

너무 큰 K값 설정 시

  • 미세한 경계 값을 잘 분류하지 못한다
  • 모델이 너무 단순해지고 편향이 높아진다(결정 경계가 더 부드러워짐 >  일반화 능력이 저하 )

너무 작은 K값 설정 시

  • 패턴이 직관적이지 않고, 이상치의 영향을 크게 받는다.
  • 모델이 복잡해지고 분산이 높아진다(결정 경계가 더 복잡해짐 >  과적합 가능성 증가 > 일반화 능력 저하)

거리 계산 방법 

독립변수/ 종속변수의 유형에 따라 거리 계산 / 방법이 달라진다.

 

독립변수 거리
범주형 $$ HammingDistance(x,y)= \sum_{i = 1}^{n} |x\underset{i}{} - y\underset{i}{}|$$
연속형 $$ EuclideanDistance(x,y)= \sqrt {\sum_{n=1}^{i}({x_{i}}^{} - {y_{i}}^{})^2} $$
$$ ManhattanDistance(x,y)= \sum_{n=1}^{i}​\left|{x_{i}}^{} - {y_{i}}^{}\right| $$

알고리즘 예측 방법

 

종속변수 설명
범주형 근처 k 개 중에 가장 많은 범주 선택(Majority Voting))
연속형  근처 k개의 평균 선택

 

*데이터가 불균형 하다면?

각 이웃의 예측에 가중치를 부여 > 가중 다수결 투표(Weighted Majority Voting)

 

주변 이웃들의 예측 및 가중치 계산: 주변 이웃들의 예측을 수집하면서, 각 이웃의 예측에 가중치 부여(일반적으로 더 가까운 이웃에 더 높은 가중치를 할당하거나, 이웃의 중요도를 고려하여 가중치를 조절)

 

 
 
 
 
728x90