我想用 kmeans2 算法量化一些图像。我的问题是找到(接近)最佳集群数。
有人知道如何估计集群的数量吗?我的想法是在 hsv-color-space 中创建色调的累积直方图。但我不知道如何使用这些信息来估计计数。
问候
我想用 kmeans2 算法量化一些图像。我的问题是找到(接近)最佳集群数。
有人知道如何估计集群的数量吗?我的想法是在 hsv-color-space 中创建色调的累积直方图。但我不知道如何使用这些信息来估计计数。
问候
我个人使用以下方法:
伪代码:
int k = 1;
double oldCompactness = std::numeric_limits<double>::max();
double compactness = kmeans(data, k);
while( compactness/oldCompactness < threshold ) {
oldCompactness = compactness;
k = k + 1;
compactness = kmeans(data, k);
}
紧凑性随着集群数量的增加而降低(如果集群与数据点一样多,它应该变为零)。
我应该指出,集群的最佳数量非常依赖于应用程序。例如,在您的应用程序中,我不知道您是否更喜欢高数据缩减(低 k)或良好的视觉表示(高 k)或折衷(介于两者之间)。