스크래치부터 구현한 KNN 알고리즘 - 파이썬으로 고양이 vs 개 이미지 분류 (전체 실험)
발행: (2026년 1월 7일 오전 07:35 GMT+9)
3 min read
원문: Dev.to
Source: Dev.to
🎯 이 프로젝트가 보여주는 것
- 처음부터 구현하는 머신러닝
- KNN 알고리즘 구현
- 원시 픽셀 벡터를 이용한 이미지 분류
- 지도 학습 기본 개념
- 잡음, 거리, 이웃이 예측에 미치는 영향
- 실제 실험에서 드러나는 차원의 저주
🧪 핵심 실험
모델을 학습시킨 뒤, 각 클래스에서 노이즈 이미지 5장만 제거해도 예측 정확도가 크게 향상되는 것을 발견했습니다.
왜 이런 현상이 일어날까:
- KNN은 특징을 추상화하거나 학습하지 않습니다.
- 모든 지능은 데이터의 기하학에서 비롯됩니다.
- 몇 개의 나쁜 샘플이 전체 결정 경계를 왜곡할 수 있습니다.
🧬 왜 중요한가
대부분의 튜토리얼은 KNN에 대한 불편한 진실을 넘깁니다:
- 데이터가 많다고 해서 항상 성능이 좋아지는 것은 아닙니다.
- 거리 측정 방식이 모델의 지능을 정의합니다.
- 고차원 데이터는 매우 직관에 반하는 행동을 합니다.
이러한 점들을 이해하면 훨씬 강력한 머신러닝 엔지니어가 될 수 있습니다.
📦 전체 소스 코드
(여기에 소스 코드 또는 저장소 링크를 삽입하세요)
🏁 마무리 생각
신경망이 시각을 배우기 전에, 거리 개념이 어떻게 거짓을 배우는지 이해해야 합니다.
머신러닝을 배우고 있다면, 이 실험을 탐구해 볼 가치가 있습니다.