调用iris数据集,并划分训练集测试集
library(datasets)
library(class)
n<-dim(iris)[1] #样本数
p<-dim(iris)[2]-1 #特征数
index<-sample(1:n,round(0.8*n)) #取80%的样本为训练集,20%样本为测试集
1.kknn包
library(kknn)
train<-iris[index,]
test<-iris[-index,]
#测试集上的预测
pre_test<-kknn(Species~.,train, test)
fit_test<- fitted(pre_test) #分类结果
t<-table(test$Species, fit_test)
accu_test<-sum(diag(t))/sum(t) #测试集准确率
#训练集上的预测
pre_train<-kknn(Species~.,train, train)
fit_train <- fitted(pre_train) #分类结果
t<-table(train$Species, fit_train)
accu_train<-sum(diag(t))/sum(t) #训练集准确率
2.class包
train<-iris[index,-5]
test<-iris[-index,-5]
cl<-iris[index,5]#设置类别变量
k<-7#以最近的几个点来投票
#测试集上的预测
pre_test<-knn(train=train,test=test,cl=cl,k=k,pro=T) #分类结果
t<-table(iris[-index,5],pre_test)
accu_test<-sum(diag(t))/sum(t) #测试集准确率
#训练集上的预测
pre_train<-knn(train=train,test=train,cl=cl,k=k,pro=T) #分类结果
t<-table(iris[index,5],pre_train)
accu_train<-sum(diag(t))/sum(t) #训练集准确率
1272

被折叠的 条评论
为什么被折叠?



