핵심 인사이트 (3줄 요약)
- 본질: K-NN(K-Nearest Neighbors)은 새로운 데이터가 들어왔을 때, 기존 데이터 중에서 "가장 가까운 거리에 있는 이웃 K명"을 찾은 뒤 그 이웃들이 가장 많이 속한 정답(다수결)으로 자신의 정답을 결정하는 가장 단순한 지도 학습(Supervised Learning) 알고리즘이다.
- 가치: 수학적인 예측 공식($Y=aX+b$)을 미리 학습(Train)하지 않고 그냥 데이터만 다 들고 있다가, 질문이 들어오는 순간에 거리를 계산하여 대답하므로, 모델 학습 시간이 '0초(Zero)'라는 압도적인 게으른 학습(Lazy Learning)의 장점을 갖는다.
- 판단 포인트: '거리'가 모든 것을 결정하므로, 데이터의 크기 단위(Scale)가 다르면 스케일링(정규화)이 절대적으로 필수이며, 데이터 차원이 커지면 이웃 간의 거리가 모두 멀어지는 '차원의 저주'에 가장 취약하다는 점을 인지하고 아키텍처를 설계해야 한다.
Ⅰ. 개요 및 필요성
어떤 학생이 문과에 갈지 이과에 갈지 고민이다. 이때 가장 확실한 예측 방법은 무엇일까? 복잡한 심리 테스트(수학 공식)를 돌리는 대신, 그 학생과 성적이나 성향이 '가장 비슷한(가까운) 선배 5명'을 찾는 것이다. 만약 그 선배 5명 중 4명이 문과에 갔다면, 이 학생도 문과에 갈 확률이 압도적으로 높다.
"유유상종(끼리끼리 모인다)"이라는 인간 사회의 가장 직관적인 법칙을 머신러닝으로 가져온 것이 바로 **K-NN (K-Nearest Neighbors)**이다. K-NN은 똑똑한 수학 공식을 만들어두는 다른 AI들과 달리, 그냥 과거의 데이터를 통째로 외우고만 있다가 새로운 문제가 들어오면 그때서야 주변을 두리번거리며 답을 찾는다.
📢 섹션 요약 비유: 이사 갈 동네가 안전한지 알아보려면, 복잡한 범죄율 통계를 내는 대신 그 동네에 살고 있는 가장 가까운 이웃 5명(K=5)의 직업과 성향을 물어보는 것이 가장 빠르고 확실한 방법이다.
Ⅱ. 아키텍처 및 핵심 원리
K-NN 알고리즘의 심장부는 **'거리(Distance) 계산'**과 'K의 개수 결정' 두 가지다.
┌────────────────────────────────────────────────────────┐
│ [ K-NN의 거리 척도 (Distance Metrics) ] │
├────────────────────────────────────────────────────────┤
│ 1. 유클리디안 거리 (Euclidean, L2 Norm) │
│ - 두 점 사이를 잇는 '가장 짧은 직선 거리' (피타고라스 정리) │
│ - 일상적인 공간(2D, 3D)에서 가장 널리 쓰이는 디폴트 거리 │
│ │
│ 2. 맨해튼 거리 (Manhattan, L1 Norm) │
│ - 직선으로 못 가고 격자(블록)를 따라 걸어갈 때의 거리 │
│ - 택시 캡 거리라고도 부르며, 고차원 데이터에서 유리함 │
│ │
│ 3. 마할라노비스 거리 (Mahalanobis Distance) │
│ - 데이터가 흩어진 방향(공분산)까지 고려한 우아한 거리 │
│ - (예: 타원형으로 퍼진 데이터의 무게중심을 반영함) │
└────────────────────────────────────────────────────────┘
- Lazy Learning (게으른 학습): K-NN은 사전에 모델 파라미터(가중치 $W$)를 튜닝하지 않는다. 학습 단계에서는 연산이 0이고, 오직 램(RAM)에 데이터를 올려두기만 한다. 하지만 새로운 데이터 1개가 들어오면 기존의 100만 개 데이터와 일일이 거리를 다 재야 하므로 예측(Inference) 시간이 극악으로 느리다.
- K의 선택: K가 1이면 나랑 가장 가까운 단 한 명만 보고 정답을 찍는다. 이는 노이즈(이상한 놈)에 휘둘릴 위험(Overfitting)이 매우 높다. 반대로 K가 너무 크면, 동네 전체 사람에게 물어보는 꼴이 되어 가장 흔한 정답으로 쏠려버린다(Underfitting).
📢 섹션 요약 비유: 낯선 길을 갈 때 나침반을 보며 최단 거리(유클리디안)로 갈지, 건물들을 굽이굽이 돌아서(맨해튼) 갈지를 결정하고, 내 주변에 있는 행인 3명(K=3)에게 다수결로 길을 물어보는 가장 인간적인 내비게이션이다.
Ⅲ. 비교 및 연결
머신러닝의 분류(Classification)를 대표하는 두 알고리즘, K-NN과 로지스틱 회귀를 비교한다.
| 비교 항목 | K-NN (K-최근접 이웃) | 로지스틱 회귀 (Logistic Regression) |
|---|---|---|
| 학습 방식 | 메모리에 데이터만 저장 (게으른 학습) | 최적의 가중치($W$)를 수학적으로 찾음 (Eager Learning) |
| 결정 경계 (Boundary) | 데이터 분포에 따라 구불구불한 비선형 모양 | 무조건 **직선(선형)**으로만 쪼갬 |
| 데이터 스케일링 | 거리 기반이므로 정규화(Standardization) 필수 | 크게 신경 쓰지 않아도 학습됨 |
| 추론 속도 (Inference) | 매우 느림 (매번 모든 데이터와 거리 재야 함) | 매우 빠름 (수식에 대입하면 끝) |
| 차원의 저주 | 차원이 커질수록 빈 공간이 많아져 치명적 독이 됨 | 피처 선택으로 어느 정도 방어 가능 |
K-NN은 비지도 학습인 K-Means 클러스터링과 이름이 비슷해 헷갈리기 쉽다. K-Means는 정답이 없는 상태에서 끼리끼리 묶어 K개의 덩어리로 나누는 것이고, K-NN은 정답(Label)이 있는 상태에서 새로운 데이터의 정답을 K명의 이웃에게 물어보는 지도 학습이다.
📢 섹션 요약 비유: 로지스틱 회귀가 교실 바닥에 흰색 페인트로 직선을 쫙 그어서 합격/불합격을 가른다면, K-NN은 학생들 사이를 구불구불하게 걸어 다니며 울타리를 치는 방식이다.
Ⅳ. 실무 적용 및 기술사 판단
실무 적용 시나리오: 넷플릭스나 유튜브의 '사용자 기반 협업 필터링(User-based CF)'에서 "나와 가장 영화 취향이 비슷한 유저 10명"을 찾을 때, 이 K-NN(K=10)의 거리 계산 로직이 정확히 쓰인다. 또한 불량 데이터(결측치)가 생겼을 때 단순히 평균으로 채우는 대신, 가장 비슷한 속성을 가진 데이터 5개를 찾아 그들의 평균값으로 빈칸을 꿰매는 'KNN Imputer'는 전처리 파이프라인의 최고급 스킬이다.
기술사 판단 포인트 (Trade-off): K-NN 아키텍처 설계 시 기술사는 **'스케일 단위(Unit)의 지배 현상'**을 반드시 차단해야 한다.
- 연봉(단위: 천만 원)과 나이(단위: 살)를 가지고 K-NN을 돌린다고 치자. 연봉은 5000(만 원), 나이는 30(살)이다. 유클리디안 거리를 계산하면 숫자가 압도적으로 큰 '연봉'만이 거리를 지배해 버리고 나이의 차이는 무시된다.
- 따라서 K-NN, K-Means, SVM 등 **'거리'를 재는 모든 알고리즘 앞에는 무조건 Min-Max Scaler나 Standard Scaler를 두어 모든 변수의 크기를 0~1 사이로 평등하게 맞춰주는 파이프라인(Pipeline)**이 결합되어야만 모델이 망가지지 않는다.
📢 섹션 요약 비유: 코끼리(연봉)와 개미(나이)의 발걸음 거리를 그냥 비교하면 코끼리만 100% 이긴다. 거리를 비교하기 전에는 반드시 코끼리와 개미의 크기를 똑같이 만들어주는 마법 약(스케일링)을 먹여야 공평한 달리기 시합이 된다.
Ⅴ. 기대효과 및 결론
K-NN은 복잡한 딥러닝이 세상을 지배하기 전, 수학적 공식 없이도 "가장 가까운 것이 가장 정답에 가깝다"는 우주의 진리를 증명해 낸 가장 낭만적인 알고리즘이다.
결론적으로 K-NN은 대규모 상용 서비스의 메인 예측 엔진으로 쓰기엔 추론 속도($O(N)$)가 너무 느려 부적합하다. 하지만 데이터의 군집 모양이나 이상치(Outlier)를 탐색할 때 훌륭한 베이스라인(Baseline) 벤치마크 모델이 된다. 미래의 기술사는 K-NN의 맹점인 속도 문제를 극복하기 위해, 모든 거리를 재지 않고 공간을 나무처럼 쪼개서 찾는 KD-Tree나 Ball-Tree 같은 고도화된 자료구조를 접목하여 K-NN을 검색 엔진(Vector Search)의 핵심 모듈로 부활시키고 있다.
📢 섹션 요약 비유: K-NN은 수학 공식을 외우지 못해 매번 책을 다 뒤져서 정답을 찾는 멍청하지만 정직한 학생이다. 속도는 느리지만 세상의 모든 편견(수학적 가설) 없이 눈앞에 있는 팩트(이웃 데이터)만 보고 판단하는 가장 투명한 재판관이다.
📌 관련 개념 맵
- 상위 개념: 지도 학습 (Supervised Learning), 분류 (Classification)
- 하위 개념: 유클리디안 거리 (L2 Norm), 맨해튼 거리 (L1 Norm), KD-Tree
- 연결 개념: 스케일링 (정규화/표준화), 차원의 저주, 결측치 대치 (KNN Imputer)
👶 어린이를 위한 3줄 비유 설명
- 내가 사과를 좋아하는지 바나나를 좋아하는지 모를 때, 컴퓨터는 나랑 제일 친한 베프 5명(K=5)을 불러와요.
- 그 베프 5명한테 "너희들은 과일 뭐 좋아해?" 물어봤더니 4명이 사과라고 대답했어요.
- 컴퓨터는 "끼리끼리 노니까 너도 분명히 사과를 좋아할 거야!"라고 척척 맞춰내는 거랍니다!