r - 尝试在 R 中实现 K 最近邻,不知道从这里到哪里去

标签 r machine-learning classification nearest-neighbor

我正在尝试在 R 中实现 KNN 算法。

这是我正在处理的数据集(其中前 2 列是属性,第三列是标签):

2, 3, 1
4, 5, 1
6, 7, -1
8, 9, 1
5, 6, 1
7, 8, -1

我的训练集train.X是前4个属性:

2, 3
4, 5
6, 7
8, 9

我的测试集test.X是最后2个属性:

5, 6
7, 8

train.Y 表示训练集的标签,test.Y 表示测试集的标签(我将很快尝试预测以验证)这套)。

该算法的第一步是计算 test.Xtrain.X 之间的欧几里德距离,我知道如何计算。但是,我不确定如何存储距离,以便我可以按升序对它们进行排序。例如,我如何将它们存储在表中?

欣赏任何见解

最佳答案

看看this example - 这非常简单。以下是要点:

  • 对于每个测试点:

    • 初始化一个向量来存储到火车实例的距离:

      dsq <- numeric(nrow(train.X))

    • 存储在dsq到训练点的距离
    • 排序 dsq按升序排列:

      ord <- order(dsq)

    • 然后,特定测试点的输出为

      p.test <- mean(train.Y[ ord[1:k] ])

哪里k是您选择的最近邻居数。

希望这有帮助...

关于r - 尝试在 R 中实现 K 最近邻,不知道从这里到哪里去,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33331080/

相关文章:

r - r中计算样本相关性的困惑

r - 在 R 中使用 rpart() 时实际使用的字符 (0)

machine-learning - Theano 支持 GPU 无法在 google Colab 上运行

python - 预测类别或类别概率?

machine-learning - 为分类问题生成假数据的最佳方法是什么?

machine-learning - Weka 分类器不接受字符串值

r - ggplot2中的两列分组

推荐使用相同索引向量对两个向量进行子集化的方法

r - 用索引将xts/zoo对象写入csv

python - 如何给keras一个恒定的输入