当我开始理解这个算法时,我并不完全理解它应该如何工作。我有一个数据集,我有新的数据需要分类。 数据集:
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。 我该如何对新数据进行分类?
答案 0 :(得分:1)
在您的示例中,它是a
,因为它是k(6)最近邻居列表中最常见的值。
但是K应该是一个不均匀的数字,以防止模糊分类。
答案 1 :(得分:1)
您需要找到新数据点与数据集中所有点之间的距离。
要在Java中实现,请参阅here