大きな配列内のデータ項目間の関係を調べたい。多次元ベクトルで表されるすべてのデータ項目。まず、クラスタ化を使用することにしました。クラスター (データ ベクトルのグループ) 間の階層関係を見つけることに興味があります。ベクトル間の距離を計算できます。したがって、最初のステップで、最小限のスパニング ツリーを見つけています。その後、スパニング ツリーのリンクに従ってデータ ベクトルをグループ化する必要があります。しかし、このステップで私は邪魔されます.異なるベクトルを階層クラスターに結合する方法は? 私はヒューリスティックを使用しています: 2 つのベクトルがリンクされていて、それらの間の距離が非常に小さい場合、つまり、それらが同じクラスターにあることを意味します。2 つの wector がリンクされているが、それらの間の距離がしきい値よりも大きい場合 - これは、それらが共通のルート クラスター を持つ異なるクラスターにあることを意味します。
しかし、おそらくより良い解決策がありますか?
ありがとう
PS みんなありがとう!
実際、k-means と CLOPE のいくつかのバリエーションを使用しようとしましたが、良い結果が得られませんでした。
これで、データセットのクラスターが実際には複雑な構造を持っていることがわかりました (n 球体よりもはるかに複雑です)。
それが、階層的クラスタ化を使用したい理由です。また、クラスターは n 次元の連結(3d または 2d チェーンなど) のように見えると思います。そのため、私はシングルリンク戦略を使用しています。しかし、私は邪魔されています-異なるクラスターを互いに結合する方法(どの状況で、共通のルートクラスターを作成する必要があり、どの状況ですべてのサブクラスターを1つのクラスターに結合する必要がありますか? )。私はそのような単純な戦略を使用しています:
- クラスター (またはベクトル) が互いに近すぎる場合 - それらのコンテンツを 1 つのクラスターに結合します (しきい値によって調整されます)。
- クラスター (またはベクトル) が互いに離れすぎている場合 - ルート クラスターを作成し、その中に入れます。
しかし、この戦略を使用すると、非常に大きなクラスター ツリーが得られます。私は満足のいくしきい値を見つけようとしています。しかし、クラスター ツリーを生成するためのより良い戦略があるのではないでしょうか?
ここに簡単な写真があります、私の質問を説明します: