|||
KNNperfor<-function(trainX, trainy, testX, testy,k)
{##build KNN classification model
## example of euclidean distances.
M=length(trainX[,1])
Xt=rbind(trainX, testX)
Dtest=as.matrix(dist(Xt, method = "euclidean"))
Tsort=sort(Dtest[M+1,1:M], method = "qu", index.return = TRUE)
Vote=trainy[Tsort$ix[1:k]]
PreY=as.numeric(names(table(Vote))[table(Vote)==max(table(Vote))])
Error=PreY!=testy
Predict=c(PreY,Error)
return(Predict)
}
KNN分类时确定k后得到投票向量Vote,用以下可求出预测分类
PreY=as.numeric(names(table(Vote))[table(Vote)==max(table(Vote))])
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-4-29 22:04
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社