SurfinData
로그인
SurfinData
로그인
[KNN: K-Nearest Neighbor] 이론
Surf in Data
·
2022년 4월 3일
팔로우
0
KNN
machine learning
0
machine learning
목록 보기
5/7
KNN(K-Nearest Neighbors)
별도의 모델 생성 없이 인접 데이터를 분류/예측에 사용하는 기법, 새로운 데이터가 들어왔을때 해당 데이터에 근접 한 K개의 데이터를 통해 예측한다.
Instance-based Learning: 각각의 관측치(instance)만을 이용하여 새로운 데이터에 대한 예측을 진행
Memory-based Learning: 모든 학습 데이터를 메모리에 저장한 후, 이를 바탕으로 예측 시도
Lazy Learning: 모델을 별도로 학습하지 않고 테스트 데이터가 들어와야 비로소 작동하는 게으른(Lazy) 알고리즘
classification일 경우 k개의 이웃중에 가장 많이 나타나는 범주로 해당 class를 추정한다. tie문제를 막기 위해 K는 홀수로 정하는것이 좋다.
regression일 경우 k개의 이웃들의 대표값(평균)으로 추정한다.
K를 정하는 방법
k는 1부터 전체 데이터의 개수만큼 가능하다.
너무큰 k는 underfitting
너무작은 k는 overfitting
적당한 k를 구하는 방법: cross validation을 통하여 error가 제일 작은 최적의 k를 구하면된다.
KNN의 error function
여러가지 거리의 측정 방법
거리를 계산하기전의 데이터 내 변수들이 각기 다른 데이터 범위, 분산등을 가질 수 있으므로, 데이터 정규화를 통해 이를 맞추는것이 중요하다.
Euclidean Distance:
가장 흔히 사용되는 거리측도
두 관측치 사이의 직선 거리
Manhattan Distance:
x 에서 y로 이동 시 각 좌표축 방향으로만 이동할 경우에 계산 되는 거리
Mahalanobis Distance:
변수 내 분산, 변수 간 공분산을 모두 반영하여 x,y간 거리를 계산하는 방식
데이터의 covarinace matrix가 identity matrix인 경우는 Euclidean Distance와 동일하다.
KNN의 학습
KNN은 모델을 생성하는 것이 아니여서 최적의 k 와 distance 측정 방법을 알아내는것이 KNN을 학습하는 과정이다.
Weighted KNN
일반적인 KNN과는 달리 새 데이터와 기존 학습 관측치 간의 거리를 가중치로 하여 예측결과를 도출한다.
KNN의 장점
데이터 내 노이즈에 영향을 크게 받지 않으며, 특히 Mahalanobis distance와 같이 데이터의 분산을 고려할 경우 강건하다.
학습 데이터의 수가 많을 수록 효과적이다.
KNN의 단점
파라미터 K의 값을 설정해야한다.
어떤 거리 척도가 분석에 적합한 지 불분명하며, 따라서 데이터의 튿성에 맞는 거이측도를 임의로 선정해야한다.
새로운 관측치와 가각의 학습 데이터 간 거리를 전부 측정해야 하므로, 계산시간이 오래 걸리는 단점이 있다.
고차원의 데이터에는 KNN이 잘 작동하지 않는다.
Surf in Data
study blog
팔로우
이전 포스트
교차 검증(Cross Validation)
다음 포스트
PCA (Principle Component Analysis), 주성분 분석
0개의 댓글
댓글 작성