クラスタリングの距離計算にはどのような方法がありますか?それぞれをいつ使用する必要がありますか?


7

クラスタリングの距離計算にはどのような方法がありますか?マンハッタン、ユークリッドなど?それに、いつ使うべきかわかりません。私はいつもユークリッド距離を使います。

回答:


8

さて、という本があります

デザ、ミシェルマリー、エレナデザ。
距離百科事典
スプリンガーベルリンハイデルベルク、2009年。ISBN978-3-642-00233-5

この本は私があなたの質問に私よりもうまく答えると思います...

データに最も適した距離関数を選択します。

たとえば、緯度と経度では、Haversineのような距離を使用します。CPUが十分にある場合は、Vincentyのようなより良い近似を使用できます。

ヒストグラムでは、分布基準距離を使用します。アースムーバー(EMD)、発散、ヒストグラムの交差、二次形式距離など

バイナリデータでは、たとえば、Jaccard、Dice、またはHammingは非常に理にかなっています。

テキストなどの非バイナリスパースデータでは、tf-idfの重みとコサインのさまざまなバリアントが一般的です。

おそらく、さまざまな距離関数とクラスタリングを試すのに最適なツールはELKIです。これには多くの距離があり、これらすべての距離で使用できる多くのクラスタリングアルゴリズムがあります(例:OPTICS)。たとえば、キャンベラ距離は私にとって非常にうまくいきました。それはおそらく私が「デフォルト」として選択するものです。


1

クラスタリングのドメインで距離を計算するために広く使用されている2つの方法があります。彼らです:

  • マンハッタン距離
  • ユークリッド距離

ただし、上記のどれを選択するかについて明確な指示はないため、この投稿は同じことに関して役立つかもしれません。一般に、距離の測定基準は、問題の説明とデータのタイプによって異なります。

たとえば、ユークリッド距離とコサイン距離は、それぞれデータが密で疎な場合に使用されます。

私はいつもユークリッド距離を使います。

私はあなたのせいにはしません。ただし、デカルト距離を計算する場合(推奨システムの場合など)、ユークリッド距離が推奨されます。


0

よく知られている距離に加えて、それを強調したいと思います。マンハッタン距離ユークリッド距離

分布をクラスタリングしている場合は、対称kl-dを使用できます。


0

使用する距離関数は、データジオメトリ自体によって異なります。場合によっては、データをプロットして視覚化してから決定を下すことができますが、実際の問題ではほとんど不可能です。

Kmeansのようなほとんどのクラスタリングアルゴリズムでは、距離関数がメトリックである限り、それを使用できます。データのクラスタリングに使用できるデータジオメトリに従ってメトリックを学習する方法が存在します。

メトリック学習は、次元削減と密接に関連しています。

MATLABを使用している場合は、このツールキットを確認してください。


k-means 、任意のメトリックではなく、Bregman分岐でのみ機能します。任意のメトリックを最適化しないという意味のため。
QUITあり-Anony-Mousse

あなたが言うときそれが意味すること-最適化しないことを意味しますか?ソースを追加してください。
pj

「k-meansがユークリッド距離でのみ機能する理由」を検索します。
QUITあり-Anony-Mousse
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.