K-최근접 이웃(KNN)
- 지도 학습 알고리즘 중 하나, 굉장히 직관적이고 간단하다.
- 어떤 데이터가 주어지면 그 주변(이웃)의 데이터를 살펴본 뒤 더 많은 데이터가 포함되어 있는 범주로 분류하는 방식
- KNN은 분류와 회귀 문제 둘다 사용할 수 있다.
KNN Classification
- 새로운 데이터(빨간 점) 이 주어졌을 때 이를 A로 분류할지, B로 분류할지 판단하는 문제
- k=3(안쪽 원)일 때, 노란색 점(Class A) 1개와 보라색 점(Class B) 2개가 있다. 따라서 k=3일 때 빨간 점은 B로 분류 된다.
- k=6(바깥쪽 원)일 때, 노란색 점 4개와 보라색 점 2개가 있으므로 노란색 점으로 분류된다.
- K의 값에 따라 결과가 달라지므로 너무 작아서도 안되고 너무 커서도 안된다.
- 보통 K 값은 홀수를 사용한다. 짝수일 경우 동점이 발생할 수가 있어 결과를 도출할 수 없기 때문이다.
거리 계산
- KNN 에서는 데이터와 데이터 사이의 거리에 따라 결과가 달라질 수 있다.
- 데이터의 스케일에 따라 큰 영향을 받기 때문에 데이터 전처리가 필요함
1. Euclidean Distance
일반적인 점과 점사이의 거리를 구하는 방법이다.
3차원에서 유클리드 거리 구하는 예시
2. Manhattan Distance
점과 점 사이의 직선 거리가 아니라 X축과 Yㅊ푹을 따라 간 거리를 의미한다.
아래 예시의 Route 1, Route 2, Route 3은 서로 다른 길이지만 맨해튼 거리로는 같다.
KNN Regression
- KNN 회귀 모델은 분류와 동일하게 가까운 k개의 이웃을 찾는다.
- 그 다음 이웃 샘플 타깃값의 평균을 구하여 예측값으로 사용한다.
- Scikit Learn은 회귀 모델의 점수로 결정계수 값을 반환한다.
'ML & DL > Machine Learning' 카테고리의 다른 글
[ML] Logistic Regression (0) | 2023.01.10 |
---|---|
[ML] 선형 회귀(Linear, Polynomial, Multiple) (0) | 2022.12.19 |
[ML] Encoding : Label & One Hot (0) | 2022.12.16 |
[ML] Data Pre-processing : Scaling (0) | 2022.12.16 |
[ML] 지도 학습, 비지도 학습, 강화 학습 (3) | 2022.12.09 |
댓글