[ML] Nearest Neighbor Method
데이터의 유사도로 Classification을 수행한다. 그냥 말 그대로 거리를 기준으로 분류하는 알고리즘.

일단 데이터를 좌표평면에 다 찍어두면 뭔가 Cluster를 이루는걸 확인할 수 있다.
비슷한것들끼리 하나로 묶어서 분류한다.
일단 거리를 정의해야 한다.
Manhattan Distance
백준 풀면 맨날 나오는 그 거리 계산법이다. 각 변수에서 절댓값 차이 합을 의미함.
수식은 latex 쓰면 참 좋은데 너무 귀찮다;; 이미지로 첨부.

Minkowski Distance 에서 k=1
Euclidian Distance
고등수학에서 점과 점 사이의 거리를 구할 때 사용하는 공식이다.

Minkowski Distance 에서 k=2
Manhalanobis Distance
유킬리드 거리는 모든 방향으로 같은 Scale을 가정하니 데이터가 원형으로 퍼져 있을 때만 제대로 작동한다.

데이터의 분포를 고려한 거리로, 물리적 거리만 고려하지 않고 분포와 방향성을 고려할 때 얼마나 이상한 위치에 있는지를 측정.
분산과 연관된다.
Distance Metric
두 점이 주어졌을 때 이 점들이 얼마나 다른가? 얼마나 멀리 떨어져있는가? 를 수치로 표현하는 개념이다.
나이나 시험점수같은건 수치 값이니까 크고 작음을 비교할 수 있다.
영화 평점 기술 능숙함 수준은 순서만 있고 간격은 일정하지 않다
VARCHAR로 입력하는 설명은 순서가 없다.
그러니, 변수의 타입에 맞춰서 거리 계산 방식을 다르게 설정해야 한다.
수치형은 유클리드 거리 써도 된다.
순서가 있는 타입에서는 정규화가 필요하다.
Nominal은 순서가 전혀 없으니까 같으면 0 다르면 1로 처리하자.
거리를 계산할 때 변수마다 단위가 다르다.
이건 Mahalanobis Distance에서 다룬 얘기랑은 좀 다른데..

겉보기에는 A랑 X가 더 가까워보이지만 정규화되지 않아서 그렇다. 사실 X와 B가 더 멀다.
그러니 Normalization이 필요하다.
변수의 스케일을 같게 만들어 거리 계산 시 공평하게 반영해야 한다.
Z-Normalization / Min-Max Normalization 등 여러 정규화 기법을 사용함.
K-NN
데이터 준비 및 클래스 라벨링 -> input에 대해서 모든 test data간 거리 계산 -> 가장 가까운 k개의 이웃 선택 -> 클래스 라벨링
k가 너무 크면 데이터에 대한 민감도가 떨어진다.
k가 너무 작으면 overfitting 가능성이 높다.
'Computer Science > Machine Learning' 카테고리의 다른 글
| [ML] Ensemble Method (0) | 2025.12.05 |
|---|---|
| [ML] Decision Tree (0) | 2025.10.18 |
| [ML] Logistic Regression (0) | 2025.10.17 |
| [ML] Regression (0) | 2025.10.17 |
| [ML] Bayesian Classifier (0) | 2025.09.22 |
댓글
이 글 공유하기
다른 글
-
[ML] Ensemble Method
[ML] Ensemble Method
2025.12.05 -
[ML] Decision Tree
[ML] Decision Tree
2025.10.18 -
[ML] Logistic Regression
[ML] Logistic Regression
2025.10.17 -
[ML] Regression
[ML] Regression
2025.10.17