K-NN 알고리즘이 단순하고 효율적임에도 불구하고 잘 사용되지 않는 이유는 해당 알고리즘이 가진 한계 때문이다.
- 모델을 생성하지 않는다
클래스간 관계를 이해하는데 제한적이다. - 적절한 K 값을 찾기 어렵다
- 데이터가 많아지면 분류 단계가 느리다
특히, 차원이 증가함에 따라 필요한 연산량이 기하급수적으로 많아진다 - 누락 데이터를 위한 추가 처리가 필요하다
그렇다면 K-NN 알고리즘은 오늘날 어떤 경우에 사용되고 있는가?
- 단기 교통 상황 예측 (참고 : https://scienceon.kisti.re.kr/srch/selectPORSrchArticle.do?cn=JAKO201616853627138&dbt=NART)
- 유해 이미지 차단 기술 (참고 : https://brunch.co.kr/@kakao-it/336)
하지만 위 사례들도 연구나 초기 설계에 K-NN 알고리즘이 사용되었을 뿐, K-NN 알고리즘이 최적격인 상황이라고 해석할 수는 없다.
내 생각에 K-NN 알고리즘은 여러 다른 알고리즘의 기반이 되었고, 딥러닝을 이해할 때 거쳐가는 하나의 개념이 된 것 같다.