Knn算法如何工作

时间:2018-05-02 11:44:27

标签: 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)。 与distanse我有这些数据:

    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。 我该如何对新数据进行分类?

2 个答案:

答案 0 :(得分:1)

在您的示例中,它是a,因为它是k(6)最近邻居列表中最常见的值。
但是K应该是一个不均匀的数字,以防止模糊分类。

答案 1 :(得分:1)

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

  1. 按升序排列这些距离。
  2. 从列表中选取前K个距离。
  3. 从挑选的距离上课。
  4. 现在检查哪个班级的重复次数或投票次数最多。
  5. 要在Java中实现,请参阅here