728x90

KNN 은 군집분석(Cluster Analysis)의 응용되는 개념입니다. 군집분석은 비지도학습이고, KNN 는 지도학습입니다.

군집분석은 집단을 구분하는 분류변수가 없이 그냥 독립변수들만 가지고, 어느 관측치들이 가까운가?를 (군집으로) 분류하는 기법입니다.

KNN 은 새로운 관측치가 들어오면, 관측치가 갖고 있는 변수들(독립변수들)을 가지고 기존의 관측치와 얼마나 가까운가를 계산한 다음, 가까운 몇 개의 기존의 관측치를 선택합니다.(k=3 과 같이)

이 때 이들 관측치들이 이미 어떤 그룹에 속하는 것인지를 알고 있으므로, 가장 많이 속한 그룹에 해당되는 것으로 결론을 내리는 기법이 KNN 입니다.

 

install.packages("class")  # 패키지 class 설치
library(class)                # 패키지 class 로딩
model_knn <- knn(train = iris[,1:4], test = iris[,1:4], cl = iris$Species, k=3)

                               # iris 데이터의 4개 변수이용, 클래스는 Species,  k=3 으로 지정) 
model_knn                 # KNN 예측 결과
summary(model_knn)

c.table <- table(model_knn,iris$Species) # 예측치와 실제치의 Confusion Matrix
c.table

 

+ Recent posts