K均值和K最近的邻居之间的主要区别是什么?


Answers:


106

这些是完全不同的方法。他们俩的名字中都带有字母K的事实是一个巧合。

K均值是一种聚类算法,它试图将一组点划分为K个集(簇),以使每个簇中的点趋于彼此靠近。它是无监督的,因为这些点没有外部分类。

K最近邻是一种分类(或回归)算法,为了确定点的分类,将K最近点的分类合并在一起。之所以受到监督,是因为您试图基于已知的其他点分类来对点进行分类。


6
我认为比这家伙给予的赞誉更多。他们都使用距离方法分别对输入进行聚类和分类。这通常是为什么将它们一起教的原因,以及为什么要讨论与它们有关的尺寸问题。各种距离方法都可以应用于两者。实际上有很多相似之处。
eljusticiero67

@ eljusticiero67当然,它们用于对输入进行分类,这在OP中已提及。而且大多数经典的学习方法都是基于距离的,因此这也不足为奇。请注意,OP对这些差异感兴趣。我也理解它,好像OP暗示由于两个名称中的K可能存在相似性。
按位

12

正如Bitwise其答案中指出的那样,k均值是一种聚类算法。如果涉及k最近邻(k-NN),则该术语有点模糊:

  • 在分类的上下文中,它是一种分类算法,如上述答案中所述

  • 通常,这是一个问题,为此存在各种解决方案(算法)

因此,在第一种情况下,说“ k-NN分类器”实际上可以表示解决k-NN问题的各种底层具体算法,并且将其结果解释为分类目的。

这是两件事,但您可能会发现k均值算法是解决k NN问题的多种可能方法之一(Marius Muja和David G. Lowe,“具有自动算法配置的快速近似最近邻居”,国际计算机视觉理论与应用会议(VISAPP'09),2009 PDF


0

您可以有监督的k均值。您可以根据标记的数据构建质心(如k均值)。没有什么能阻止你。如果您想改善这一点,欧几里德空间和欧几里德距离可能无法为您提供最佳结果。您将需要选择空间(例如,可以是黎曼空间)并定义点之间的距离(甚至定义一个“点”)。最后两个是研究主题,它们还取决于您拥有的数据(信号)的类型(属性)。


-2

K均值可以为邻居节点创建群集信息,而KNN找不到给定邻居节点的群集。


-2

在实际分类阶段部署knn之前,可以将k均值用作训练阶段。K表示创建由属于每个类别的样本的质心和类别标签表示的类别。knn使用这些参数以及k号对一个看不见的新样本进行分类,并将其分配给由K Mean 算法创建的k个类别之一

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.