KNN 아이디어
- 새로운 포인트( * )에 가장 가까운 K를 찾는다.
- 새로운 포인트( * )는 주요 클래스(A)에 속하는 것으로 결정한다.
A 클래수 이웃한 수 > B 클래스 이웃한 수
알고리즘(Algorithm)
- 주어진 지점과 각 지점 사이의 거리를 계산합니다.
- 거리별 가장 가까운 K 지점을 선택합니다.
- K 포인트로부터 주요 클래스를 선택합니다. (클래스는 새로운 점을 위한 것입니다)
어떻게 두 요소 사이의 거리를 계산할까요? 유클리드 ditance 공식을 이용합니다.
K 를 얼마로 하는 것이 좋을까요?
- 크게 할 때와 작게 할 때 각각 장단점이 있습니다.
- 보통은 데이터 수가 N 이라고 할 때 K < sqrt(N) 을 권장합니다.
- k의 값에 따라 분류는 매우 달라질 수 있습니다. 아래 그림을 참조하세요.
R function: knn
knn 매개변수
- train : 훈련 데이터셋 (matrix or data frame)
- test : 테스트 데이터셋 (matrix or data frame)
- cl: 훈련 데이터셋의 그룹(class) 정보 (factor)
- k : 이웃(neighbour)의 수
- l : 명확한 결정을 위한 최소 유효 수, 그렇지 않은 경우 의심
- prob: 만약 이것이 트루라면, 프로브 속성에서 당첨된 비율을 반환한다.
- use.all: 만약 트루라면, K번째의 최대치에 해당하는 모든 거리가 포함된다. 거짓이면 k의 이웃 포인트를 정확히 사용하기 위해 K번째와 같은 거리를 무작위로 선택한다.
knn 실습
실제 데이터와 분류한 데이터를 비교해보겠습니다. 6개 데이터를 제외하고는 일치하는 것을 확인할 수 있습니다.
'SW > R' 카테고리의 다른 글
R : K-fold Cross Validation ( 개념 및 예제 ) (0) | 2019.03.22 |
---|---|
R : k-means clustering- 군집화 ( 개념 및 예제 ) (0) | 2019.03.14 |
R : 군집화-Clustering, 분류-Classification (개념 및 예제) (0) | 2019.03.13 |
R : 로지스틱 회귀 ( 개념 및 예제 ) (0) | 2019.03.12 |
R : 중선형 회귀 분석 (개념 및 예제) (0) | 2019.03.11 |