1. 程式人生 > >R語言:k近鄰

R語言:k近鄰

head(iris)##該資料集都是連續變數的

#資料標準化處理
normalize = function(x){
  (x-min(x))/(max(x)-min(x))
}
iris_norm = as.data.frame(lapply(as.list(iris[,1:4]),normalize))

#構造訓練集合測試集
set.seed(1234)
ind=sample(2,nrow(iris),replace=TRUE,prob=c(0.67,0.33))
iris_train = iris[ind==1,1:4]
iris_test = iris[ind==2,1:4]
train_label = iris[ind==1,5]
test_label = iris[ind==2,5]


#利用class包,構建KNN模型
iris_knn_pred = knn(train=iris_train,test=iris_test,cl=train_label,k=3)#給出的是預測結果

#用交叉連表觀察一下結果
table(test_label,iris_knn_pred)