R中k均值聚类的解释结果


12

我正在使用kmeansR 的指令在Anderson的虹膜数据集上执行k-means算法。我对我得到的一些参数有疑问。结果是:

Cluster means:
  Sepal.Length Sepal.Width Petal.Length Petal.Width
1     5.006000    3.428000     1.462000    0.246000

在这种情况下,“集群意味着”代表什么?它是集群中所有对象的距离的平均值吗?

在最后一部分中,我还有:

Within cluster sum of squares by cluster:
[1] 15.15100 39.82097 23.87947
 (between_SS / total_SS =  88.4 %)

那个88.4%的值,可能是它的解释?



不,这只是第一个群集内的所有对象的平均值(总共3个)。您可以通过iris.km $ betweenss / iris.km $ totss
dfhgfh 2013年

阅读有关k-means的任何文章。那么显而易见,clsuter的含义是……K均值不是基于距离的。它也将方差最小化:“偏差平方和”。
已退出–Anony-Mousse 2013年

假设您的平均值为0。检查以上假设是否有所不同。此后过上幸福的生活。利润!
mia

Answers:


23

如果您计算每个数据点到全局样本均值的平方距离的总和,则会得到total_SS。如果不是计算全局样本均值(或“质心”),而是每组计算一个(此处为三组),然后计算这三个均值与全局均值的平方距离之和,则得到between_SS。(在计算此值时,请将每个均值到全局均值的平方距离乘以它表示的数据点数。)

如果没有可辨别的聚类模式,则这三个组的三个均值将接近整体均值,并且between_SS将是的很小一部分total_SS。相反的情况是正确的,这表明数据点根据物种在四维空间中整齐地聚集。


14

K均值不是基于距离的聚类算法

K均值搜索最小值平方和分配,即,total_SS通过将点分配给聚类中心来最小化未归一化的方差(=)。

为了使k均值收敛,您需要两个条件:

  • 重新分配点减少了 平方和
  • 重新计算均值会减少 平方和

由于组合的数量有限,因此您无法无限减小此值,并且算法必须在某个点收敛到局部最优值。

一世X一世-μĴ一世2Ĵ。从数学上讲,至少分配平方和等于通过平方平方欧几里德距离进行分配,如果您浪费CPU周期进行计算,则sqrt等于最小欧几里德距离分配。因此,将每个点分配给最接近的平均值的直觉是正确的,但不是优化问题的作用。

between_SS 大概是两个均值之间的加权平方和,以测量聚类中心的分离程度(注意:聚类中心,它不比较实际聚类-从技术上讲,聚类Voronoi单元与相邻聚类Voronoi单元接触)。

请注意,使用k均值可以通过增加k来提高幼稚聚类质量。这里测量的质量是一个数学值,可能符合用户要求。虹膜实际上是一个很好的例子,即使给出外部信息,应该恰好有3个聚类,但k均值经常收敛到不太令人满意的结果。

如果您想要基于距离的k-means变体,请查看k-medoids。在这里,通过用均值替代均值来确保收敛:

  • 将每个对象分配给最近的群集(通过任意距离度量)
  • 群集中心更新为群集的最中心对象,即与所有其他对象的平均距离最小。

在每一步中,距离减小;组合的数量有限,因此算法必须在某个局部最小值处终止。


有趣的+1点
Cam.Davidson.Pilon

1
为什么这里没有距离计算(以kmeans为单位)?为了计算方差,有必要计算每个元素到均值的距离,因此显然涉及距离计算,不是吗?
朱利安(Julian)

方差通常不是根据距离来定义,而是“与平均值的平方偏差的期望值”。
已退出-Anony-Mousse
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.