K-近邻

时间:2016-10-02 00:27:10

标签: r dataset

我正在尝试使用R的knn库中的class函数。它给出了一个错误,“train”与“class”的长度不同。

分别打印火车和班级的长度时,我发现火车的长度为100(根据需要),班级的长度为2(如预期的那样)。如果我理解正确,cl或类,则意味着标签的因素向量。我的标签只是“橙色”和“蓝色”。我按照文档中的示例进行操作,但错误仍然存​​在。我的代码有什么明显的错误吗?任何帮助表示赞赏。

library(class)

x <- runif(100, 1, 100)
y <- runif(100, 1, 100)
train.df <- data.frame(x, y)

x.test <- runif(100, 1, 100)
y.test <- runif(100, 1, 100)
test.df <- data.frame(x.test, y.test)

cl <- factor(c(rep("orange", 100), rep("blue", 100)))

knn(train.df, test.df, cl, k=3, prob=TRUE)

1 个答案:

答案 0 :(得分:0)

cl长度为200个元素。请尝试为每个班级调用rep 50次。

library(class)

x <- runif(100, 1, 100)
y <- runif(100, 1, 100)
train.df <- data.frame(x, y)

x.test <- runif(100, 1, 100)
y.test <- runif(100, 1, 100)
test.df <- data.frame(x.test, y.test)

cl <- factor(c(rep("orange", 50), rep("blue", 50)))

knn(train.df, test.df, cl, k=3, prob=TRUE)