KNN (K Near Neighborhood)
태그 :
- 개념
 - - 새로운 fingerprint를 기존 클러스터 내의 모든 데이터와 Instance 기반거리를 측정하여 가장 많은 속성을 가진 클러스터에 할당하는 분류알고리즘
 
Ⅰ. 측위기반의 KNN(K-Nearest Neighbor) 알고리즘의 개요
가. KNN 알고리즘의 정의
- 새로운 fingerprint를 기존 클러스터 내의 모든 데이터와 Instance 기반거리를 측정하여 가장 많은 속성을 가진 클러스터에 할당하는 분류알고리즘
- Sample 에 주어진 x(샘플)에서 가장 가까운 k개의 원소가 많이 속하는 class로 x를 분류하는 비모수적 확률밀도 추정방법
나. KNN 알고리즘의 특징
| 
			 특징  | 
			
			 설명  | 
		
| 
			 최고인접 다수결  | 
			
			 기존 데이터중 가장 유사한 k개의 데이터를 측정하여 분류  | 
		
| 
			 유사도(거리) 기반  | 
			
			 유클리디안 거리(Euclidian's distance), 마할라노비스의 거리(Mahalanobis' distance), 코사인 유사도(cosine similarity)등을 활용  | 
		
| 
			 Lazy learning 기법  | 
			
			 새로운 입력 값이 들어온 후 분류시작  | 
		
| 
			 단순유연성  | 
			
			 모형이 단순하며 파라미터의 가정이 거의 없음  | 
		
| 
			 NN(Nearest Neighbors)개선  | 
			
			 - KNN은 가장 근접한 k개의 데이터에 대한 다수결 내지 가중합계 방식으로 분류 - NN의 경우 새로운 항목을 분류할 때 가장 유사한 instance를 찾아서 같은 class에 일방적으로 분류 시 잡음 섞인 데이터에는 성능이 좋지 못함  | 
		
다. KNN 알고리즘에 대한 거리의 개념
- 유클리디안 거리(Euclidian's distance): 점과 전간의 최단 거리
- 마할라노비스의 거리(Mahalanobis' distance): 두 모집단들을 판별하는 문제에서 두 집단 사이의 거리(확률분포를 고려한 거리- 이때 화이트닝 변환(whitening transform)을 사용)
- 코사인 유사도(cosine similarity): 내적 공간의 두 벡터간 각도의 코사인값을 이용하여 측정된 벡터간의 유사한 정도
| 
			 
  | 
		
- 유클리디안 거리는 A와 B가 가장 가까움
- 마할라노비스의 거리는 A와 C가 가장 가까움(확률분포를 고려)
확률 분포를 고려하기 위해 화이트닝 변환을 하며 오른쪽에 A,B,C만 있는 그림이 변환후 모습임
- 이외 KNN에 사용되는 유사도 측정방법: 상관계수, 마니모토점수 등
Ⅱ. KNN 알고리즘의 동작원리
가. K값 결정과 분류의 원리
- 새로운 fingerprint(원)을 네모 또는 삼각형의 클러스터에 매칭원리
| 
			 
  | 
		
1) 새로운 fingerprint입력(물음표, 동그라미) 확인
2) 거리기반 k개 데이터를 training set에서 추출
3) 추출데이터들의 클러스터, label 확인
4) 다수결(Majority voting) 의한 클러스터 매칭
- 결과 새로운 fingerprint는 K가 3인 경우 삼각형, 5인 경우 사각형 클러스터에 매칭됨
나. KNN 알고리즘의 상세 동작원리
| 
			 동작원리  | 
			
			 설명  | 
		
| 
			 fingerprint확인  | 
			
			 - 새로운 입력값 확인 - 가까운 데이터는 같은 Label(클러스터 가능성 큼) - 기존의 모든 데이터와 새로운 fingerprint와 비교준비  | 
		
| 
			 명목변수기반 그룹분류  | 
			
			 - 기존의 저장되어있는 데이터 셋의 label화 - 서로 다른 범주 데이터를 정규화 수행 - 분류기 검사 수행 예: 데이터의 90%를 훈련데이터 10%를 테스트로 활용  | 
		
| 
			 거리측정  | 
			
			 - 유클리디언 거리 - 메모리기반 fingerprint와 모든 데이터간의 거리계산 - 계산된 거리의 정렬수행  | 
		
| 
			 K 선정  | 
			
			 - 양의 정수값, 정렬된 거리중 가장 가까운 k개 데이터 선정 - 여러 k값을 모델링 후 가장 성능이 좋은 k값 선정 - 노이즈 클수록 큰 k값 선정이 좋음 - 작은 k는 극단값 및 노이즈를 허용하여 클러스터링 오류가능  | 
		
| 
			 클러스터 매칭  | 
			
			 - 명목 데이터 경우, 다수결(majority voting)기반의 클러스터 매칭 수행, k개 데이터가 많이 속해있는 클러스터로 새로운 값을 분류 - 수치형 데이터의 경우 k개 데이터의 평균(or 가중평균)을 이용하여 클러스터 매칭  | 
		
Ⅲ. KNN 알고리즘의 장단점
가. 장점
| 
			 장점  | 
			
			 설명  | 
		
| 
			 효율성  | 
			
			 훈련데이터에 잡음이 있는 경우에도 적용가능  | 
		
| 
			 결과일관성  | 
			
			 - 훈련데이터의 크기가 클 경우 효율적임 (데이터의 수가 무한대로 증가 시 오차율이 베이즈 오차율의 두배보다 항상 나쁘지 않음을 보장) - 임의의 k값에 대해 베이즈 오차율에 항상 근접함을 보장  | 
		
| 
			 학습간단  | 
			
			 - 모형이 단순하고 쉬운 구현 가능  | 
		
| 
			 유연한 경계  | 
			
			 - 거리의 변형, 가중치 적용용이 - 유클리디언,코사인유사도, 가중치 적용, 정규화적용 용이  | 
		
| 
			 모델의 유연성  | 
			
			 - 데이터에 대한 가정 반영 및 변형이 간편 - 변형데이터의 training data set 기반 분류기 검증용이  | 
		
| 
			 높은 정확도  | 
			
			 - 사례기반으로 높은 정확성 - 훈련데이터 클수록 클러스터 매칭 정확성 좋아짐  | 
		
나. 단점
| 
			 단점  | 
			
			 설명  | 
		
| 
			 성능가변성  | 
			
			 - k값 선정에 따라 알고리즘의 성능이 좌우됨 - k값 최적화, under/overfitting의 고려필요  | 
		
| 
			 높은 자원요구량  | 
			
			 - 데이터 셋 전체를 읽어서 메모리에 기억 - 새로운 개체 n을 읽어서 메모리 내의 데이터 셋과 비교  | 
		
| 
			 고비용  | 
			
			 - 모든 훈련샘플과의 거리를 계산하여야 하므로 연산비용(cost)이 높음  | 
		
| 
			 공간예측 부정확  | 
			
			 - 공간정보 예측모델에서는 영향변수 많이 적용이 어려움  | 
		
| 
			 거리계산 복잡성  | 
			
			 - 모든 데이터와의 유사도, 거리측정 수행필요  | 
		
| 
			 노이즈에 약함  | 
			
			 - 노이즈로 인해 큰 k 설정을 필요로 함 - 민감하고 작은 데이터 무시되는 under fitting 문제야기  | 
		
Ⅳ. KNN 알고리즘의 활용방안
| 
			 활용방안  | 
			
			 설명  | 
			
			 사례  | 
		
| 
			 위치측위  | 
			
			 이동객체의 위치에서 AP 신호강도를 측정하고 이를 KNN 알고리즘을 활용하여 이동객체의 위치를 최종적으로 추정  | 
			
			 MS사의 RADAR - Ekahau Inc의 Wi-Fi RLS, COMPAS  | 
		
| 
			 선호도 분류  | 
			
			 사용자의 추천정보 기반 성향/구매패턴분류  | 
			
			 내용기반 추천 시스템  | 
		
| 
			 데이터필터링  | 
			
			 포털등의 중복, 유사 게시글 필터링  | 
			
			 문서분류(빈발항목집합, 빈발단어집합 등)  | 
		
| 
			 고속도로 통행시간 예측  | 
			
			 TCS 교통량 및 DSRC 구간 통행시간의 실시간 자료를 KNN 기반으로 분석  | 
			
			 차량 근거리 무선통신(DSRC) 활용 통행시간 예측  | 
		
 
