kNN 이란?
k Nearest Neighbors (kNN) 알고리즘이란, 새로운 데이터의 분류를 알기위해 사용하는 최근접 이웃 알고리즘입니다. 예를 들면 새로운 음악이 발표되었을 때, 기존의 데이터를 사용해서 해당 음악의 장르를 분류하기 위해 사용합니다.
새로운 데이터가 입력되었을 때, 기존의 데이터와 새로운 데이터를 비교함으로써 새로운 데이터와 가장 인접한 데이터 k개를 선정합니다. 이어서, k 값에 의해 결정된 분류를 입력된 데이터의 분류로 확정합니다. 즉, 새로 입력된 데이터와 기존 데이터를 비교함으로써 새로운 데이터를 유사하게 판단된 기존 데이터로 분류하는 것입니다.
1. 새로운 데이터와 가장 인접 데이터 k개 선정
2. k개의 데이터가 가장 많이 속한 분류를 선택
kNN 장점
kNN을 사용하면 여러가지 장점이 있습니다. 기존 분류 체계 값을 모두 검사하여 비교하므로 정확도가 높으며, 비교하여 가까운 상위 k개의 데이터만 활용하기 때문에 오류 데이터는 비교 대상에서 제외됩니다. 따라서, 오류 데이터가 결과값에 크게 영향을 미치지 않습니다. 또한, 기존 데이터를 기반으로 하기 때문에 데이터에 대한 가정이 없습니다.
- 높은 정확도
- 오류 데이터가 결과에 영향을 미치지 않음
- 데이터에 대한 가정이 없음
kNN 단점
하지만, kNN에도 단점이 존재 합니다. 먼저, 기존의 모든 데이터를 비교해야 하기 때문에 데이터가 많으면 많을 수록 처리시간이 증가합니다. 또한, 많은 데이터 활용을 위해 메모리를 많이 사용하게 되어 고사양의 하드웨어가 필요합니다. 따라서, 고차원의 데이터에 대해선 '차원의 저주'라고 불리는 현상을 피하기 위해서 kNN을 수행하기 전에 차원 축소를 수행합니다.
- 느린 속도
- 고용량 메모리 사용
마무리
이번 포스팅에서는 머신러닝 데이터 분류 기법 중 하나인 kNN에 대해서 알아보았습니다. kNN은 높은 정확도를 가진다는 장점이 있으나, 높은 컴퓨팅 파워를 요한다는 단점을 가지고 있습니다. 다른 머신러닝 알고리즘도 소개할테니 적절히 알고리즘을 선택하여 사용하면 되겠습니다.
댓글