当我开始理解这个算法时,我不太明白它应该如何工作。我有一个数据集,并且有需要分类的新数据。 数据集:
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。 我应该如何对新数据进行分类?
最佳答案
您需要找到新数据点与数据集中所有点之间的距离。
- 按升序排列这些距离。
- 从列表中选取前 K 个距离。
- 从选定的距离获取类(class)。
- 现在检查哪个类别的重复次数或得票数最多。
有关 Java 中的实现,请参阅 here
关于algorithm - KNN 算法如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50133901/