【问题标题】:K-Nearest-NeighbourK-最近邻
【发布时间】:2016-10-02 00:27:09
【问题描述】:

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

分别打印 train 和 class 的长度后,我发现 train 的长度为 100(根据需要),而 class 的长度为 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)

【问题讨论】:

  • cl 的长度为 200 个元素。尝试为每个班级拨打rep 50 次。
  • 成功了。如果您想发表您的评论作为答案,我可以将其选中。谢谢!
  • 关于如何使用 R / 错误消息的问题不在此处讨论。这将在Stack Overflow 上讨论。如果您可以等待,我们会为您迁移到那里。

标签: r dataset


【解决方案1】:

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-12
    • 2018-04-08
    • 2014-05-14
    • 2011-12-06
    • 1970-01-01
    • 2013-03-21
    • 2014-05-12
    • 1970-01-01
    相关资源
    最近更新 更多