私はBOWオブジェクト検出に取り組んでおり、エンコード段階に取り組んでいます。エンコーディング段階で使用するいくつかの実装を見てきましたが、ほとんどの文章は、クラスタリングが進むべき道であるkd-Tree
ことを示唆しています。K-means
2つの違いは何ですか?
私はBOWオブジェクト検出に取り組んでおり、エンコード段階に取り組んでいます。エンコーディング段階で使用するいくつかの実装を見てきましたが、ほとんどの文章は、クラスタリングが進むべき道であるkd-Tree
ことを示唆しています。K-means
2つの違いは何ですか?
オブジェクト検出では、k-meansを使用して記述子を量子化します。kdツリーを使用して、量子化の有無にかかわらず記述子を検索できます。それぞれのアプローチには長所と短所があります。具体的には、記述子の次元数が20を超える場合、kdツリーはブルートフォース検索よりもはるかに優れています。
kd-tree
AFAIKはラベリングフェーズに使用されます。これははるかに高速で、数千とまではいかなくても数百の多数のグループにクラスター化する場合、各グループまでのすべての距離のargminを単純に取得するという単純なアプローチです。k-meanshttp://en.wikipedia.org/wiki/K-means_clustering
は実際のクラスター化です。アルゴリズムは高速ですが、常に正確であるとは限りません。一部の実装はグループを返しますが、他の実装はグループとトレーニングデータセットのラベルを返します。これは私が通常使用するものですhttp://docs.scipy.org/doc/scipy/reference /generated/scipy.spatial.cKDTree.htmlとhttp://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.vq.kmeans2.html
kd-Tree
とK-means
アルゴリズムは、2つの異なるタイプのクラスタリング手法です。
クラスタリング手法には、次のようなものがあります。
kd-Tree
階層的クラスタリング手法(中央値ベース)です。K-means
は手段ベースのクラスタリング手法です。GMM
(ガウス混合モデル)は、確率ベースのクラスタリング手法(ソフトクラスタリング)です。[アップデート]:
一般に、クラスタリング手法には、ソフトクラスタリングとハードクラスタリングの2種類があります。GMMのような確率的クラスタリングは、確率のあるクラスターにオブジェクトを割り当てるソフトクラスタリングタイプであり、他のクラスタリングは、オブジェクトをクラスターに絶対的に割り当てるハードクラスタリングです。