전공/머신러닝
[ML] K-NN(K-Neighbor Nearest)이란?
mhiiii
2024. 4. 2. 21:55
728x90
KNN, K-최근접 이웃 알고리즘
KNN은 새로운 입력과 현재 데이터 중 가장 가까운 K개의 데이터를 찾아 가장 많은 분류 값으로 분류
특징
- 지도학습
- 유클리디안 거리 사용
- k는 보통 홀수를 많이 사용
"가장 가까운"이라는 개념은 현실의 3차원이 아닌 그 이상의 N차원의 일반적인 데이터에서 어떻게 정의할까?
우리의 눈으로 확인할 수 없을 뿐, 거리 계산은 동일하게 벡터 공간에서 두 벡터의 유클리디안 거리를 기반으로 계산
$$ dist = \sqrt{(x_1-y_1)^2 + (x_2-y_2)^2 + ... + (x_n-y_n)^2 }$$
장점
- 이중, 다중 분류 다 적용 가능
- 수치형 레이블에 대해서 높은 정확도
단점
- 속도가 느림
- 하나의 예측을 진행할 때마다 전체 데이터와 비교하기 때문에 연산 횟수 증가
- 이상치에 민감
예시 코드
from sklearn.neighbors import KNeighborsClassifier
from sklearn.neighbors import KNeighborsRegressor
knn = KNeighbors(n_neighbors=k) #객체 생성
knn.fit(xdata,ylabel)
knn.predict(xtest) #최빈 or 과반수 이상인 레이블 값 하나 반환
knn.predict_proba(xtest) #각 분류 카테고리에 속할 확률들을 반환
Reference
https://ineed-coffee.github.io/posts/KNN/
KNN 개념 정리 및 활용 (sklearn)
:mag: Index
ineed-coffee.github.io
https://computer-science-student.tistory.com/56
kNN(k Nearest Neighbor) 알고리즘
kNN 알고리즘이란? kNN 알고리즘은 데이터로부터 거리가 가까운 'k'개의 다른 데이터의 레이블을 참조하여 분류하는 알고리즘으로 거리를 측정할 때 유클리디안 거리 계산법을 사용한다. kNN 알고
computer-science-student.tistory.com
728x90