我对KNN使用了以下代码
jd <- jobdata
head (jd)
jd$ipermanency rate= as.integer(as.factor(jd$ipermanency rate))
jd$`permanency rate`=as.integer(as.factor(jd$`permanency rate`))
jd$`job skills`=as.integer(as.factor(jd$`job skills`))
jd$Default <- factor(jd$Default)
num.vars <- sapply(jd, is.numeric)
jd[num.vars] <- lapply(jd[num.vars], scale)
jd$`permanency rate` <- factor(jd$`permanency rate`)
num.vars <- sapply(jd, is.numeric)
jd[num.vars] <- lapply(jd[num.vars], scale)
myvars <- c("permanency rate", "job skills")
jd.subset <- jd[myvars]
summary(jd.subset)
set.seed(123)
test <- 1:100
train.jd <- jd.subset[-test,]
test.jd <- jd.subset[test,]
train.def <- jd$`permanency rate`[-test]
test.def <- jd$`permanency rate`[test]
library(class)
knn.1 <- knn(train.jd, test.jd, train.def, k=1)
knn.3 <- knn(train.jd, test.jd, train.def, k=3)
knn.5 <- knn(train.jd, test.jd, train.def, k=5)但每当我计算k= 1,3和5的正确分类比例时,我总是得到100%的正确。这是正常的吗?还是我哪里出错了?
谢谢
发布于 2018-04-04 13:36:25
我们不能说knn分类器总是产生错误的results.Actually,它是基于数据集的。在最好的情况下,训练数据可以等于测试数据,其中它总是产生100%的结果。
训练数据==测试数据-在所有情况下均可实现100%的效率
发布于 2019-12-07 07:16:52
仅当模型为过拟合情况时。这意味着模型不能捕获随机性,因此在训练数据上100%进行预测
https://stackoverflow.com/questions/45382194
复制相似问题