k-meansに最適なkがない場合はありますか?


11

これは少なくとも数時間は私の心の中にありました。(平均余弦類似度メトリックを使用して)k平均アルゴリズムからの出力に最適なkを見つけようとしていたため、クラスターの数の関数として歪みをプロットすることになりました。私のデータセットは、600次元空間にある800個のドキュメントのコレクションです。

私が理解していることから、この曲線のニーポイントまたはエルボーポイントを見つけると、少なくともデータを入れる必要があるクラスターの数がほぼわかります。下にグラフを載せます。赤い縦線が引かれた点は、最大二次導関数検定を使用して取得されました。これをすべて行った後、私はもっと単純なものに行き詰まりました。このグラフはデータセットについて何を教えてくれますか?

クラスタリングする価値がないこと、ドキュメントの構造が不足していること、または非常に高いkを設定する必要があることを教えてくれますか?奇妙なことの1つは、kが低い場合でも、同様のドキュメントがクラスター化されているので、なぜこの曲線が得られるのかわかりません。何かご意見は?

ここに画像の説明を入力してください


2
私が正直に理解していないのは、近接行列入力でk平均クラスタリングをどのように使用できたかです(そしてそれは余弦です!)。K平均クラスタリングは生データ(オブジェクトX変数)入力を必要とし、内部的にユークリッド距離を操作します。
ttnphns 2011

2
@ttnphns:私はあなたのポイントを理解したことを願っていますが、私の知る限りでは、k-meansで任意の距離メトリックを使用できますよね?私はこれをPythonで行っていますが、Rで使用できるライブラリさえあるようです:cran.r-project.org/web/packages/skmeans/index.html入力は近接行列ではなく、terms x document特異ベクトルの実行後に取得されました分解。間違えたら訂正してください。
レジェンド

余弦測度に基づく球形k平均クラスタリングは私にとって初めてのことですが、認めざるを得ません。いつかもっと読んでみたいです。
ttnphns 2011

@ttnphns:お返事ありがとうございます。リンゴとオレンジを一緒に使用していないことを確認したかっただけです:)
Legend

変更されていないk-meansは、 -Norms に対してのみです。平均ベクトルを計算するため、他の距離関数の適切なML推定ではありません。Lp
QUITあり-Anony-Mousse

回答:


12

ほとんどの場合、このようなプロットは基本的にデータにクラスター構造がないことを意味すると考えていました。ただし、ユークリッド距離メトリックの場合、次元数が増えるとすべての距離が同じになる傾向があるため、このような非常に高い次元でのクラスタリングは注意が必要です。このトピックに関するいくつかの論文への参照については、このウィキペディアのページを参照してください。つまり、問題となっているのはデータセットの高次元性だけかもしれません。

これは本質的に「次元の呪い」です。このウィキペディアのページも参照しください。

興味深いと思われる論文は、Sanguinetti、G.の「クラスター化されたデータセットの次元削減」、IEEE Transactions on Pattern Analysis and Machine Intelligence、vol。30いいえ。3、pp。535-540、March 2008(www)。これは、クラスター構造を強調する低次元の空間を探すLDAの監視なしバージョンに少し似ています。おそらく、k平均法を実行する前に、それを特徴抽出方法として使用できますか?


おっと、ごめんなさい。私はコサイン類似度を使用していると述べたはずです。
レジェンド

次元の呪いが余弦の類似性にも当てはまる可能性はかなり高いと思います。それは基本的に、次元の数が増えるにつれて、分布を定義するために指数関数的により多くのパターンが必要であると言います(最悪の場合)。クラスタリングで効果的に行っているのは、サブ母集団を表す分布を特定することであるため、高次元でのクラスタリングは本質的にトリッキーになる可能性があります。
Dikran Marsupial 2011

+1リンクありがとうございます。私はそれを通って戻ります。次元数を減らすためにk平均法を適用する前に、元の行列にSVDを適用しました。
レジェンド

3

どのように正確にコサイン類似度を使用しますか?これは球形K平均法と呼ばれるものですか?あなたのデータセットは非常に小さいので、ネットワークとして視覚化してみます。このため、類似性(実際にはコサイン類似性やピアソン相関など)を使用し、カットオフを適用し(特定の類似性以上の関係のみを考慮)、CytoscapeやBioLayoutなどのネットワークとして結果を表示します。これは、データの感覚をつかむのに非常に役立ちます。次に、データマトリックスの特異値、または適切に変換および正規化されたマトリックス(何らかの形式で取得されたドキュメント-ドキュメントマトリックス)の固有値を計算します。クラスター構造は、固有値または特異値の順序付きリストのジャンプとして(再び)表示されるはずです。


+1ポインタをありがとう。Cytoscapeを知りませんでした。やってみます。そして、はい、それは余弦の類似性を持つk平均が球面k平均と呼ばれるように見えます。SVDを適用し、次元数を減らした後で、このk-meansを適用しました。次元数を減らした方法は、分散ルールを使用することでした(元のデータの分散の95%に寄与する特異値を選びます)。
レジェンド

よろしければ、これを行う方法を説明するチュートリアル(または少なくともこのようなもの)を紹介していただけませんか。マトリックスを生成したら、それをエクスポートしてからCytoscapeにインポートして、提案したことを実行しますか?Cytoscapeにコサイン類似度の組み込みメソッドがあるのか​​、それともいくつかのデータ形式を事前計算してそれを入力として与えなければならないのか、私が気になります。
レジェンド

これらのプログラムを操作するときは、すべてのペアワイズ類似度を外部で計算し、しきい値でフィルタリングして、<label1> <label2> <similarity>という形式のファイルを作成します。どちらもその入力を読み取ることができるはずです。BioLayoutでは、.txtというサフィックスが必要です。CytoScapeでは、「テーブルからインポート」を使用します。
micans 2011

わかった。私はそれを行い、すぐに戻ります。もう一度ありがとうございます。
レジェンド

ばかげた質問で申し訳ありませんが、データを<label1> <label2> <similarity>としてフォーマットしましたが、正確にインポートする方法を理解できません。「ファイル」->「インポート」->「テーブルからのネットワーク」を実行し、ソース列とターゲット列を選択しました。インタラクションはデフォルトのままにしました。しかし、エッジの重みをエッジとともにインポートするにはどうすればよいですか?何か提案はありますか?
レジェンド

2

一般的にはい、k-meansは、不適切と判断される可能性のある非常に異なるソリューションに収束する可能性があります。これは特に、不規則な形状のクラスターで発生します。

さらに直観的になると、別の可視化アプローチを試すこともできます。k-meansの場合、グラフグラムを使用してk-meansでいくつかの実行を可視化できます(WEKAグラフグラムパッケージを参照してください-パッケージマネージャーまたはここから入手できます。概要と例は、ここで見つかりまし


1

私がグラフを正しく理解している場合、それはクラスターの数、x軸のKとy軸のクラスター内の距離のプロットですか?

K平均の目的関数はWCSSを最小化することなので、このプロットは常に単調減少しているはずです。クラスタを追加すると、クラスタ内のポイント間の距離は常に減少します。これはモデル選択の根本的な問題なので、もう少し高度な方法を採用する必要があります。

おそらくギャップ統計を試してください:www-stat.stanford.edu/~tibs/ftp/gap.psまたは他の同様のもの。

さらに、K-meansはその仕事に適したツールではないかもしれません。クラスターはいくつ見つかりますか?クラスタリングの次元削減に分散ルールを使用することは適切ではありません。最初のK-1 PCに投影することが適切な前処理手段である場合は、このペーパーを参照してください。http//people.csail.mit.edu/gjw/papers/jcss.ps

最初の2つの主成分に投影をプロットすることで、これが正しいことかどうかをすばやく確認できます。明確な分離がある場合は、K-meansは大丈夫です。そうでない場合は、他のものを調べる必要があります。おそらく、K部分空間または他の部分空間クラスタリング手法。これらの方法はユークリッド距離に適用されます。これがコサインでどのように変わるかわかりません。

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