k 表示产生空簇
k means produces empty clusters
我已经实现了 http://faculty.uscupstate.edu/atzacheva/SHIM450/KMeansExample.doc
中描述的 k 均值聚类算法
对于某些数据集,我发现生成的簇数并不总是等于初始 k。这是意料之中的事吗?
我认为这是意料之中的,因为在每次迭代之后,每个数据点都会添加到最近的集群中,但这并不能保证所有集群都会被填充。每个集群在每次迭代后都会重新初始化,因此某些集群可能离点不够近,无法向其添加任何点。
本文描述了可能出现 k 均值的空簇 http://www.academypublisher.com/ijrte/vol01/no01/ijrte0101220226.pdf
One of the major problems of the k-means algorithm is that it may
produce empty clusters depending on initial center vectors. For static
execution of the k-means, this problem is considered insignificant and
can be solved by executing the algorithm for a number of times.
我在图像处理方面遇到了与您相同的问题。我希望我的经历能给你一些提示......
我正在尝试对原始大小为 720*1280 且簇数为 10 的图像进行 kmeans 算法。
不过,我觉得这个太大了,所以我(愚蠢地)用高斯金字塔把这个图像压缩成144*256。
然后,运行 kmeans 和 reach 收敛后,我发现几乎还有 5 个簇集是空的。
我尝试修改我的算法:如果簇为空,那么我将分配一个新像素作为中心并重试,或者划分最大的簇集。
最后,我意识到如果有空簇,它只意味着簇号是否不正确(正如你所看到的,与基于密度的聚类不同,k-means 需要你分配簇号作为参数,并且这个值很重要。)或者你使用的数据集不够大。
所以我使用原始图像作为输入,现在我发现簇已满。
总而言之,我建议您尝试更大样本量的数据,或者,只需更改您分配的聚类编号即可。
我已经实现了 http://faculty.uscupstate.edu/atzacheva/SHIM450/KMeansExample.doc
中描述的 k 均值聚类算法对于某些数据集,我发现生成的簇数并不总是等于初始 k。这是意料之中的事吗?
我认为这是意料之中的,因为在每次迭代之后,每个数据点都会添加到最近的集群中,但这并不能保证所有集群都会被填充。每个集群在每次迭代后都会重新初始化,因此某些集群可能离点不够近,无法向其添加任何点。
本文描述了可能出现 k 均值的空簇 http://www.academypublisher.com/ijrte/vol01/no01/ijrte0101220226.pdf
One of the major problems of the k-means algorithm is that it may produce empty clusters depending on initial center vectors. For static execution of the k-means, this problem is considered insignificant and can be solved by executing the algorithm for a number of times.
我在图像处理方面遇到了与您相同的问题。我希望我的经历能给你一些提示......
我正在尝试对原始大小为 720*1280 且簇数为 10 的图像进行 kmeans 算法。
不过,我觉得这个太大了,所以我(愚蠢地)用高斯金字塔把这个图像压缩成144*256。
然后,运行 kmeans 和 reach 收敛后,我发现几乎还有 5 个簇集是空的。
我尝试修改我的算法:如果簇为空,那么我将分配一个新像素作为中心并重试,或者划分最大的簇集。
最后,我意识到如果有空簇,它只意味着簇号是否不正确(正如你所看到的,与基于密度的聚类不同,k-means 需要你分配簇号作为参数,并且这个值很重要。)或者你使用的数据集不够大。
所以我使用原始图像作为输入,现在我发现簇已满。
总而言之,我建议您尝试更大样本量的数据,或者,只需更改您分配的聚类编号即可。