我正在使用 kmean 函数将 8-D 向量聚类为一组簇:
kmeans(Vectors, clusterCount, labels, TermCriteria(CV_TERMCRIT_EPS+CV_TERMCRIT_ITER, 100, 2), 10, KMEANS_PP_CENTERS, centers);
对我来说,最成功的集群是包含更多向量的集群。所以我的问题是如何找到人口最多的集群?label param是每个向量所属的指标,我感觉如果用它来查找频率会消耗时间。有没有人可以提出一个想法?
传统上,我执行以下任务:
int max = -1;int index = -1;
vector<int> classes;
classes.resize(clusterCount);
for (int i=0;i<labels.rows;i++)
{
int idx = labels.at<int>(i,0);
classes[idx]++;
if (classes[idx] > max)
{
max = classes[idx];
index = idx;
}
}
有比这更快的解决方案吗?