我是一名医学物理学硕士学生,目前正在写论文。该工作包括从内窥镜图像中提取特征并使用支持向量机进行分类。我有4种类型的图像。类型1是非癌症图像,类型2、3和4是癌前图像。我将问题简化为一个两级系统。C1类,输入1图像,C2类所有其他的。
我使用的方法如下:我使用密集SIFT从每个图像中提取特征。因此,我获得的描述符是,假设每个图像为128x1000。所以我在128维空间中有1000个点。每个图像的点数是不同的,但为了简单起见,我们假设每个图像有1000个点。我使用C1类的50幅图像和C2类的50幅图像来划分我的数据集进行训练。
如果我使用100个训练图像,我将得到128x100000的数据。例如,如果我使用400个聚类对此数据执行k-means聚类,这将是一个非常漫长的过程。因此,我想对这些数据进行采样,例如,选择均匀分布的10000个点,这样每幅图像都可以相等地表示。实际上,我在分类过程中获得了相当好的结果,但我怀疑这是否可以做到。
如果我使用所有数据点来计算中心,会有很大的不同吗?或者我可以在计算中采样这些数据吗?对于要使用的部分数据,什么值才是合理的?
发布于 2013-06-09 18:25:51
首先对样本运行k-means是一种常见的做法。
这将给你一个很好的最终聚类中心的估计,通过使用这些作为完整k均值运行的种子,你可能只需要一次迭代。
K-means有许多问题(维度的诅咒,通常没有意义的结果,选择k),但可伸缩性不是其中之一。它可以运行得非常快,100k对象应该只需要一分钟,除非你使用的是非常慢的编程语言。
https://stackoverflow.com/questions/17002039
复制相似问题