执行k意味着使用数据样本进行聚类

时间:2013-06-08 17:27:41

标签: image-processing computer-vision cluster-analysis k-means

我是医学物理硕士生,我正在研究论文。这项工作包括从内窥镜图像中提取特征并使用SVM进行分类。我有4种类型的图像。 1型是非癌症图像,2型,3型和4型是癌前图像。我将问题简化为两类系统。 C1类,1类图像和C2类。

我用来做这个的方法如下: 我使用密集的SIFT从每个图像中提取特征。所以我获得了描述符,例如每张图像128x1000。所以我在128维空间里有1000分。每个图像的点数不同,但为简单起见,假设每个图像1000个点。我使用50个C1类图像和50个C2类图像对数据集进行了划分以进行训练。

如果我使用100张训练图像,我将获得128x100000的数据。如果我使用例如400个簇对该数据执行k均值聚类,则这是一个非常长的过程。所以我想要对这些数据进行采样,例如选择均匀间隔的10000个点,以便每个图像均匀地表示。实际上我在分类过程中取得了相当不错的成绩,但我怀疑是否可以做到这一点。

如果我使用所有数据点来计算中心,或者我可以将这些数据用于计算吗?它会产生很大的不同吗?对于使用的数据部分,什么值是合理的?

1 个答案:

答案 0 :(得分:1)

通常在样本上运行k-means

这将为您提供对最终聚类中心的良好估计,并且通过将它们用作完整k-means运行的种子,您可能之后只需要一次迭代。

K-means有许多问题(维数的诅咒,通常没有意义的结果,选择k),但可伸缩性不是其中之一。它可以非常快地运行,除非你使用非常慢的编程语言,否则100k对象应该只需要一分钟。