algorithm - KNN 算法如何工作

标签 algorithm machine-learning knn

当我开始理解这个算法时,我不太明白它应该如何工作。我有一个数据集,并且有需要分类的新数据。 数据集:

2   2   a
3   5   a
1   8   b
3   16  b
4   12  a
5   20  a

还有一个新数据:

1   2

现在我需要将新集合分类为“a”或“b”。 我可以计算每个数据集的距离。sqrt((aNew-Ai)^2+(bNew-Bi)^2) 每个数据集。 对于距离,我有该数据:

    a   b   dist    class
new 1   2   ?       ?
old 2   2   1,0     a
old 3   5   5,8     a
old 1   8   8,1     b
old 3   16  16,3    b
old 4   12  12,6    a
old 5   20  20,6    a

例如。 K 等于 6。 我应该如何对新数据进行分类?

最佳答案

您需要找到新数据点与数据集中所有点之间的距离。

  1. 按升序排列这些距离。
  2. 从列表中选取前 K 个距离。
  3. 从选定的距离获取类(class)。
  4. 现在检查哪个类别的重复次数或得票数最多。

有关 Java 中的实现,请参阅 here

关于algorithm - KNN 算法如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50133901/

相关文章:

optimization - 动态变量的背包优化

algorithm - 找到总和最高的第 n 个组合

algorithm - 给定一棵二叉树,计算其中存在的二叉搜索树的数量

python - 如何实现子串算法

python-3.x - 没有名为 NaiveBayes 的模块

python - 为什么 xgboost.cv 和 sklearn.cross_val_score 给出不同的结果?

c - 3d 空间中 n 个最近邻的 knn 实现

Python在函数中导入包

java - 组合算法

javascript - JavaScript 最近邻库