数据挖掘---KNN(K-Nearest Neighbor)分类

文章目录

    • 1.构建检验集和训练集
    • 2.kknn包
    • 3.class包

使用kknn包的kknn函数或者class包的knn函数

1.构建检验集和训练集

data(iris)m <- dim(iris)[1]
val <- sample(1:m, size =round(m/3), replace = FALSE, prob=rep(1/m, m)) 
##size:产生50个随机数trainSet <- iris[-val,]
testSet <- iris[val,]

2.kknn包

kknn(formula = formula(train),train,test,na.action=na.omit(),k=7,distance=2...)

在这里插入图片描述

#————————kknn包————————————
library(kknn)
iris.kknn <- kknn(Species~.,trainSet, testSet, distance = 2)
#默认邻居数为7,因为一共3类,所以要避免取3或3的倍数#以下两个函数功能相同
Fit.kknn <- fitted(iris.kknn)#针对testSet
fit.kknn <- predict(iris.kknn,newdata=testSet)
#或者直接在列表中提取
iris.kknn[["fitted.values"]]  #提取预测结果table(testSet$Species, fit.kknn)

3.class包

kknn与knn的区别:前者在预测类别时有距离加权,而后者没有。

knn(train,test,class,k)

在这里插入图片描述

#————————class包——————————
library(class)
fit.knn <- knn(train=subset(trainSet,select=-Species),test=subset(testSet,select=-Species),cl=trainSet$Species)  
##cl即class
##train和test要去掉类别信息,使用subset去掉去后一列
table(fit.knn, testSet$Species)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部