類似性スコアに基づくクラスタリング


17

要素Eのセットと、2つの要素ei、ej∈E間の類似性(距離ではない)関数sim(ei、ej)があると仮定します。

simを使用して、Eの要素を(効率的に)クラスター化するにはどうすればよいですか?

たとえば、k -meansには所定のkが必要で、Canopy Clusteringには2つのしきい値が必要です。このような事前定義されたパラメーターが必要ない場合はどうなりますか?

simは必ずしもメトリックではないことに注意してください(つまり、三角形の不等式は成り立つ場合もあれば、成り立たない場合もあります)。さらに、クラスターが互いに素(Eのパーティション)であるかどうかは関係ありません。


2
距離がないと強調したのはなぜだろうか。私はここでは専門家ではありませんが、必要に応じて、基本的にその逆を考慮することによって、そのような類似性を距離に変換することはできないのではないかと考えています。それにも関わらず、パラメーターがまったくないクラスタリングアルゴリズムがあることは疑わしいので、すべての場合に調整が必要になる可能性があります。k-Meansを検討したとき、実際の値のプロパティがあると仮定できます(特に、いくつかの要素の「平均」を取ることができます)。
Marco13

4
k手段を実行するためにkを知る必要はありません。さまざまなkでクラスタリングし、クラスター分散をチェックして最適なものを見つけることができます。あるいは、ガウス混合モデルやクラスター化に役立つその他のレストランプロセスを検討することもできます。
cwharland

2
:私は特定の理由のために質問をした場合あなたはK-手段を適用することもできますが、唯一の問題は、あなたが考えることができ、初期の「K」を見つけましたen.wikipedia.org/wiki/Self-organizing_mapの代替としての。いくつかの優れたプロパティがあり、基本的にk-Meansに「似た」動作をしますが、初期の「k」を設定する必要はありません。追加の調整パラメーターがあるため(おそらくトレーニングには計算コストがかかる可能性があるため)、すぐに使用できるソリューションではないかもしれませんが、それでも一見の価値があります。
Marco13

2
kの最初の選択はクラスタリング結果に影響しますが、損失関数を定義するか、より可能性の高い精度関数を定義して、クラスタリングに使用するkの各値、そのクラスター内のすべての被験者の相対的な類似性を通知できます。その類似性の分散を最小化するkを選択します。GMMおよびその他のディリクレプロセスは、not-knowing-k問題を非常によく処理します。私がこれまで見た中で最高のリソースの1つは、エドウィン・チェンのチュートリアルです。
cwharland

4
考えてみてください:類似性スコアがに比べて1に正規化されている場合1-sim(ei, ej) = Distance。距離メトリックを使用すると、たとえば階層クラスタリングを適用できます。ルートから下に進むと、特定の問題に対してどのレベルの粒度クラスターが意味をなすかがわかります。
オレクサンドルイザエフ

回答:


8
  1. 通常はメトリックを使用する多くのクラスタリングアルゴリズムは、実際にはメトリックプロパティに依存していません(可換性を除き、ここにあると思います)。たとえば、DBSCANはポイントの周りにイプシロン周辺を使用します。三角形の不等式が特に重要であると言っているものは何もありません。したがって、おそらくDBSCANを使用できますが、場合によっては効率的な検索を行うために何らかの非標準の空間インデックスを作成する必要があります。epsilon-neighborhoodのバージョンは、他の方法ではなくsim> 1 / epsilonになる可能性があります。k-meansと関連アルゴリズムの同じ話。

  2. 類似性からメトリックを構築できますか?1つの可能性:すべてのkに対してdist(ei、ej)= min(sim(ei、ek)+ sim(ek、ej))...または、sim(ei、ej)<simのような上限を指定できます(ei、ek)+ sim(ek、ej)+ d、すべてのkおよびいくつかの正の定数d?直感的には、大きなsim値は互いに近いことを意味します。1/ simメトリックのようですか?1 /(sim + constant)はどうですか?すべてのkについてmin(1 / sim(ei、ek)+ 1 / sim(ek、ej))はどうですか?(最後はメトリックであることが保証されています、ところで)

  3. メトリックの代替構成は、埋め込みを行うことです。最初のステップとして、ポイントei-> xiをマップして、xiがsum(abs(sim(ei、ej)-f(dist(xi、xj)))を最小化するように、適切な関数fおよびメトリックにdist。関数fは、埋め込みの距離を類似の値に変換します;少し実験する必要がありますが、1 / distまたはexp ^ -distが出発点として適切です。そこから、xiで従来のクラスタリングを使用できます。ここでの考え方は、埋め込みの距離をほぼ(最適な意味で)類似値に変換して、正しくクラスタリングできるようにすることです。

  4. 事前定義されたパラメーターの使用に関して、すべてのアルゴリズムには調整があります。DBSCANはクラスターの数を見つけることができますが、いくつかのパラメーターを指定する必要があります。一般に、調整には、調整可能パラメーターの値が異なるアルゴリズムの複数の実行と、クラスター化の良さを評価する関数(個別に計算されるか、クラスター化アルゴリズム自体によって提供されるか、単に目玉を付ける:)が必要です。データは変更されません。一度調整してから、これらの固定パラメーターを使用できます。変化する場合は、実行ごとに調整する必要があります。実行ごとにチューニングし、ある実行のパラメーターが別の実行でどの程度うまく機能するかを、そのために特別に調整されたパラメーターと比較することで確認できます。


7

アレックスはいくつかの良い点を指摘しましたが、DBSCANがここで使用するのに最適なクラスタリングアルゴリズムであるという彼の含意を少し押し戻さなければならないかもしれません。実装、および高速インデックスを使用しているかどうかに応じて(多くの実装では使用しません)、時間とスペースの複雑さが両方ともになりますがO(n2)、これは理想からはほど遠いです。

個人的には、私の頼りになるクラスタリングアルゴリズムは、勝者勝ちのクラスタリングのためのOpenOrdと、ファジークラスタリングのためのFLAMEです。どちらの方法も、使用されるメトリックが類似性であるか距離であるかには関係ありません(特にFLAMEは両方の構造でほぼ同一です)。GephiでのOpenOrdの実装はO(nlogn)、Gephiパッケージに存在する他のクラスタリングアルゴリズムよりもスケーラブルであることが知られています。

一方、FLAMEは、ファジークラスタリング手法を探している場合に最適です。FLAMEの複雑さは反復プロセスであるため、判別が少し難しくなりますが、準2次であり、実行速度がknnに似ていることが示されています。



4

DBSCAN(一般化DBSCANも参照)は距離を必要としません。必要なのはバイナリの決定だけです。通常、「距離<イプシロン」を使用しますが、代わりに「類似性>イプシロン」を使用できないとは言いません。三角形の不等などは必要ありません。

アフィニティ伝播は、名前が示すように、類似性を使用します。

階層的なクラスタリングは、おそらくWardリンケージを除いて、仮定を行いません。多くの実装では、類似性がある場合に負の距離を使用できますが、うまく機能します。必要なのは、min、max、および<だけであるためです。

カーネルのk-meansは、類似性が優れたカーネル関数である場合に機能します。ユークリッド距離が類似度関数に対応する、異なるベクトル空間でk-meansを計算すると考えてください。ただし、kを知る必要があります。

PAM(K-medoids)が動作するはずです。各オブジェクトを最も類似したmedoidに割り当ててから、新しいmedoidとして平均類似度が最も高いオブジェクトを選択します。三角形の不等式は不要です。

...そしておそらくもっとたくさん。文字通り何百ものクラスタリングアルゴリズムがあります。ほとんどが私見で動作するはずです。実際にメトリックプロパティを必要とするものはほとんどありません。K-meansにはおそらく最も強い要件があります。分散(距離や類似性ではない)を最小化し、平均を計算できる必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.