# K-최근접 이웃(K-Nearest Neighbor, KNN)
# 분류와 회귀 모두 더 가까운 이웃일수록 더 먼 이웃보다 평균에 더 많이 기여하도록 이웃의 기여에
# 가중치를 주고 분류 및 회귀를 하는 모델
install.packages("ggvis")
library(ggvis)
library(class)
# 랜덤을 위한 시드 값 세트
set.seed(1234)
# 트레이닝-테스트로 67%, 33%씩 나눈다.
random_samples <- sample(2, nrow(iris), replace=TRUE, prob=c(0.67,0.33))
# 트레이닝 데이터 세트
iris.training <- iris[random_samples == 1, 1:4]
# 트레이닝 라벨
iris.trainLabels <- iris[random_samples == 1, 5]
# 테스트 데이터 세트
iris.test <- iris[random_samples == 2, 1:4]
# 테스팅 라벨
iris.testLabels <- iris[random_samples == 2, 5]
# k = 3에 대해 KNN실행
iris_model <- knn(train = iris.training, test = iris.test,
cl = iris.trainLabels, k = 3)
iris_model
pred <- predict(model, test, type='class')
t <- table(pred, test$Species)
t
sum(diag(t)) / nrow(test)