【问题标题】:K nearest neighbor pseudocode?K最近邻伪代码?
【发布时间】:2014-05-12 21:00:14
【问题描述】:

所以我正在尝试编写 k 最近邻算法。我的函数的输入将是一组数据和一个要分类的样本。我只是想了解算法的工作原理。你们能告诉我我正在尝试做的这个“伪代码”是否正确?

kNN (dataset, sample){

   1. Go through each item in my dataset, and calculate the "distance" from that data item to my specific sample.
   2. Out of those samples I pick the "k" ones that are most close to my sample, maybe in a premade array of "k" items?

}

当我说“遍历我的数据集中的每个项目”时,我会感到困惑。我应该遍历数据集中的每个 CLASS 并找到 k 最近的邻居吗?然后从那里找到最接近我的样本的那个,然后告诉我类?

第 2 部分问题(ish)正在使用此算法,但没有样本。我将如何计算数据集的“准确度”?

我真的在寻找宽泛的答案而不是具体的答案,但是任何有助于我理解的东西都会受到赞赏。我正在 R 中实现这个。

谢谢

【问题讨论】:

  • “准确度”到底是什么意思?否则对于第一部分,这个想法似乎是正确的,相当蛮力,效率不高但正确
  • 老实说,我不知道,只是我试图解决的硬件问题并不清楚。感谢您在第一部分的回答。我是否正确地说我需要遍历每个类并找到每个类的 k 最近邻居,而不仅仅是在整个数据集中?

标签: r algorithm data-mining nearest-neighbor


【解决方案1】:

你的伪代码应该这样改变:

kNN(数据集,样本){ 1.遍历我数据集中的每个项目,并计算“距离” 从该数据项到我的特定样本。 2.将样本分类为K个样本之间的多数类 与样本距离最小的数据集。 }

此伪码已在下图中进行了说明。

假设数据集由两个类 A 和 B 组成,分别显示为红色和蓝色,我们希望将 K=5 的 KNN 应用于样本,显示为绿色和紫色星。
KNN计算每个测试样本到所有样本的距离,并找到与测试样本距离最小的五个邻居,并将多数类分配给测试样本。

准确度:1 -(错误分类的测试样本数/测试样本数)

对于“R”中的实现,您可能会看到thisthis

【讨论】:

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