미누에요

[Machine Learning] KNN(K-nearest Neighbor) 본문

AI

[Machine Learning] KNN(K-nearest Neighbor)

미누라니까요 2024. 12. 13. 11:56
728x90
반응형
SMALL

분류를 할 때 사용하는 알고리즘 중 주변 데이터에 따라 분류를 하는 방법이 존재한다.

 

예시를 들자면 공부 잘하는 놈 주변에는 다 공부 잘하는 놈들이 모여있을거라는 생각을 하듯 이 KNN도 근처에 있는 데이터가 비슷한 양상을 띌거라는 이론에서 시작된 분류 알고리즘이다.

 

 

 

KNN(K-nearest Neighbor)

쉽게 말해서 근처에 있는 K개의 데이터를 보고 이 데이터를 판별하는 방식이다.

 

출처 - https://www.google.com/url?sa=i&url=https%3A%2F%2Fai.plainenglish.io%2Fintroduction-to-k-nearest-neighbors-knn-algorithm-e8617a448fa8&psig=AOvVaw2Fc-pD_ZE8Jexo6z24KqlJ&ust=1734144454806000&source=images&cd=vfe&opi=89978449&ved=0CBcQjhxqFwoTCNCihNTdo4oDFQAAAAAdAAAAABAE

 

위 사진을 보면 이해가 빠를 것이다.

 

위 사진에서 ? 라는 데이터가 ★에 속하는지, 혹은 ▲ 에 속하는지 분류하는 경우이다.

만약 K=3으로 둔다면 주변의 가장 가까운 3개의 데이터를 골라보니 ★이 1개, ▲가 2개이다. 

K=3으로 KNN 알고리즘을 통해 분류하면 결과적으로 ? 데이터는 ▲라고 판별하게 된다.

 

반면에, K=7으로 두고 KNN 알고리즘을 사용한다면, ★이 4개, ▲가 3개이다. 

결론적으로 K=7으로 KNN 알고리즘을 사용하면 ?는 ★이라고 모델이 판단하게 된다.

 

이렇듯 KNN 알고리즘은 K의 크기에 따라 분류 결과가 다르게 나올 수 있다.



 

 

 

KNN 의 장점

  • 복잡한 수학적 식이 없어, 단순하고 직관적이다.
  • 근처의 데이터를 가지고 판단하기 때문에 학습 단계가 거의 없다.
  • 데이터가 선형적이지 않더라도 근처의 데이터를 가지고 판단하기에 상관이 없다.

 

 

KNN 의 단점

  • 가까운 데이터를 찾을 때 전체 데이터와의 거리를 계산해야하므로 데이터 양이 많아질수록 속도가 느려진다.
  • 거리 기반 알고리즘으로, 정규화가 필수적이다.
  • 적절한 K값을 설정하는 것이 어렵다.
  • 고차원 데이터에 취약하다.
  • 이상치에 매우 민감하다.

 

 

결론적으로 KNN은 소규모 데이터셋에서 단순한 문제를 처리하는 데 매우 효과적이지만, 대규모 데이터셋이나 복잡한 문제에서는 효율적이지 않아 보통 다른 알고리즘과 함께 사용하게 된다.

728x90
반응형
LIST