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)
R语言:k近邻
最新推荐文章于 2023-09-18 09:33:44 发布