我有一个示例表,我想进行KKNN分类.变量V4
是响应,我希望分类器查看新的数据点是分类为0
还是1
(实际数据有12列,第12列是响应,但我还是会简化该示例
library(kknn)
data <- data.frame(
V1=c(1.2, 2.5, 3.1, 4.8, 5.2),
V2=c(0.7, 1.8, 2.3, 3.9, 4.1),
V3=c(2.3, 3.7, 1.8, 4.2, 5.5),
V4= c(0, 1, 0, 1, 0)
)
现在,我想通过LOOCV使用for
循环构建一个kknn
分类.假设kknn=3
for (i in 1:nrow(data)) {
train_data <- data[-i, 1:3]
train_data_response <- data.frame(data[-i, 4])
colnames(train_data_response) <- "Response"
test_set <- data[i, 3]
model <- kknn(formula=train_data_response ~ ., data.frame(train_data),
data.frame(test_set), k=3, scale=TRUE)
}
现在我收到这个错误,上面写着:
Error in model.frame.default(formula, data = train) :
invalid type (list) for variable 'train_data_response'
有没有办法解决这个错误?我以为kknn
可以接受矩阵或矩阵.我的训练和测试数据确实是嵌套的,那么是什么呢?
另外,我的LOOCV做得对吗?