가장 가까운 데이터로 분류하는 K-최근접 이웃
K-최근접 이웃(K-Nearest Neighbors, KNN)
은 새로운 데이터가 들어왔을 때 주변에 있는 K개의 가장 가까운 데이터를 참고하여 분류하는 머신러닝 알고리즘입니다.
여기서 가깝다는 것은 데이터의 특징을 숫자로 변환해 좌표처럼 표현한 후, 거리를 계산하는 것을 의미합니다.
예를 들어 어떤 과일이 사과인지 배인지 판단하려면, 해당 과일이 기존 데이터에서 어떤 과일들과 가까운지 확인하면 됩니다.
📌 과일 데이터에 좌표를 만드는 방법
우리는 사과, 바나나, 오렌지 같은 과일을 다음과 같은 특징 으로 표현할 수 있습니다.
과일 | 색(빨강=1, 노랑=2, 주황=3) | 크기(cm) | 무게(g) |
---|---|---|---|
사과 | 1 | 8 | 180 |
바나나 | 2 | 15 | 120 |
오렌지 | 3 | 10 | 200 |
이제, 각 과일을 (색깔, 크기, 무게)
라는 3차원 좌표(x, y, z)로 표현할 수 있습니다.
- 사과 → (1, 8, 180)
- 바나나 → (2, 15, 120)
- 오렌지 → (3, 10, 200)
이제 새로운 과일의 특징이 (색깔=1, 크기=9, 무게=170)라면 좌표 상 가장 가까운(거리가 짧은) 과일은 사과
이므로, 이 과일도 사과일 가능성이 높다고 판단할 수 있습니다.
K-최근접 이웃 알고리즘은 주변에서 몇개의 데이터와 비교할지를 나타내는 K
값을 조절하여 분류를 수행합니다.
만약 K=3
이라면, 새로운 데이터와 가장 가까운 3개
의 데이터를 참고하여 분류하게 됩니다.
이렇게 K-최근접 이웃
알고리즘은 개념이 단순하면서도 강력한 예측 성능을 보이며, 지도 학습
에서 주로 사용됩니다.
K-최근접 이웃의 동작 방식
KNN 알고리즘은 다음과 같은 순서로 작동합니다.
1. 새로운 데이터가 입력되면 거리 계산
새로운 데이터가 주어지면, 기존 데이터들과의 거리를 계산하여 가까운 K개의 데이터를 찾습니다.
가장 많이 사용되는 거리 계산 방법은 유클리드 거리
입니다.
아래는 2차원(x, y) 좌표에서 두 점 사이의 거리를 계산하는 유클리드 거리 공식입니다.
K-최근접 이웃 알고리즘은 이 거리를 기준으로 가장 가까운 데이터 K개
를 선택합니다.
2. 다수결 투표
K개의 이웃 중 가장 많이 등장하는 클래스를 새로운 데이터의 클래스로 예측합니다.
예를 들어 K=5
라면 주변 5개의 데이터 중 가장 많은 클래스를 최종 예측값으로 선택합니다.
새로운 데이터: ? K=5 기준 가장 가까운 데이터: [사과, 배, 사과, 사과, 배] 결과: 사과 3개, 배 2개 → 사과로 분류
이러한 방식으로 K-최근접 이웃 알고리즘은 단순하지만 직관적인 방식으로 데이터를 분류합니다.
K-최근접 이웃의 장점과 한계
K-최근접 이웃 알고리즘은 데이터가 추가될 때마다 즉시 반영할 수 있으며, 이상치에도 상대적으로 강한 모습을 보입니다.
또한 분류(Classification)뿐만 아니라 회귀(Regression) 문제까지 범용적으로 사용할 수 있습니다.
하지만 새로운 데이터가 들어올 때마다 모든 기존 데이터를 비교해야 하므로 계산량이 많아질 수 있으며, 데이터가 많아질수록 속도가 느려지는 문제가 발생할 수 있습니다.
또한, K 값의 선택이 결과에 큰 영향을 미치며, 데이터가 밀집되어 있지 않으면 성능이 떨어질 수 있습니다.
다음 수업에서는 서포트 벡터 머신(Support Vector Machine, SVM)
에 대해 알아보겠습니다.
다음 중 빈칸에 가장 적절한 단어는 무엇일까요?
Lecture
AI Tutor
Design
Upload
Notes
Favorites
Help