我正在使用BOW对象检测,我正在编码阶段。我已经看到一些在编码阶段使用kd-tree的实现,但大多数写作都表明kmeans聚类是要走的路。两者有什么区别?
答案 0 :(得分:5)
在物体检测中,k-means用于量化描述符。可以使用kd树来搜索具有或不具有量化的描述符。每种方法都有其优点和缺点。具体来说,当描述符维度的数量超过20时,kd-tree并不比强力搜索好得多。
答案 1 :(得分:4)
kd-tree
AFAIK用于标记阶段,它更快,当聚集在大量群体上时,数百甚至数千,然后简单地将所有距离的argmin带到每个群体的简单方法,k-means http://en.wikipedia.org/wiki/K-means_clustering
是实际的聚类算法,它的快速但并不总是非常精确,一些实现返回组,而其他实现了训练数据集的组和标签,这就是我通常使用的{{ 3}}与http://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.cKDTree.html
答案 2 :(得分:0)
kd-Tree
和K-means
算法是两种不同类型的聚类方法。
以下是几种类型的聚类方法:
kd-Tree
是一种hierarchical-clustering方法(基于中位数)。K-means
是基于均值的聚类方法。GMM
(高斯混合模型)是一种基于概率的聚类方法(软聚类)。[更新]:
通常,有两种类型的聚类方法:软聚类和硬聚类。像GMM这样的概率聚类是将对象分配给具有概率的聚类的软聚类类型,而其他聚类是将对象绝对分配给聚类的硬聚类。