我已将以下代码用于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&amp;的正确分类比例时5我总是100%正确。这是正常的还是我在某处出错了
谢谢
答案 0 :(得分:0)
我们不能说knn分类器总是会产生错误的结果。实际上它是基于数据集的。在最好的情况下,列车数据可以等于测试数据,它总是产生100%的结果。
训练数据==测试数据 - 在所有情况下100%效率
答案 1 :(得分:0)
仅当模型为过拟合案例时。这意味着模型无法捕获随机性,因此可以对训练数据进行100%的预测