距離行列のみでPCAを実行する


12

ペアワイズ距離しかない大規模なデータセットをクラスター化したい。k-medoidsアルゴリズムを実装しましたが、実行に時間がかかりすぎるため、PCAを適用して問題の次元を減らすことから始めたいと思います。ただし、この方法を実行するために知っている唯一の方法は、私の状況にはない共分散行列を使用することです。

ペアワイズ距離のみを知っているPCAを適用する方法はありますか?


1
したがって、クラスター化するポイント間の距離の大きな正方行列があります。(ところで距離は?ユークリッド?)クラスタリングを妨げるのは、ポイント自体の数(カーディナリティ)ではなく、これらのポイントがまたがる次元の数であると考える理由は何ですか。
ttnphns 14

1
ポイントの数は「非常に大きい」(数千)ではありません。私が使用していた距離は、これらの点の間のピアソン相関である
bigTree

2
しかし、私の質問は次のとおりです。本当に次元数(およびそうである場合、なぜですか)またはカーディナリティ(ポイント数)を削減しますか?あなたの質問が不明瞭だからです。
ttnphns 2014

1
@ttnphns:もちろん、私は以前のコメントを間違って入力しただけです。考えられる混乱を取り除くために、ここでそのコメントを削除し、ここで私が言ったことを正しい表現で繰り返します。「この場合、カーディナリティを減らすと、距離行列を小さくする(減らす)ことになります。を変更せずに下位ランク。PCAは後者に相当し、前者の目標には実際には役立ちません。」N NN×NNN
アメーバはモニカを復活させる14

1
あなたにとって最も簡単な方法は、そのような(a)クラスタリング方法または(b)その実装、または(c)6000個のオブジェクトを取得して分類する強力な(十分なRAM)コンピュータを使用することだと思います(なぜあなたの理由はわかりません) medoidプログラムはそれを困難に感じます。6000は大きいですが、それほど大きくありません。一部のメソッド(K-meansなど)では、オブジェクトX機能データが必要です。メトリックMDSを介してオブジェクトの距離行列からこのようなデータを作成できます(ここでも、コンピューター/ MDSプログラムで6000個のオブジェクトが許可されている場合)。
ttnphns 2014

回答:


8

更新:ユークリッド距離とスカラー積の間の混乱に基づいていたので、元の答えを完全に削除しました。これは私の回答の新しいバージョンです。謝罪。

ペアワイズ距離がユークリッド距離を意味する場合、はい、PCAを実行して主成分を見つける方法があります。次の質問に対する答えでアルゴリズムについて説明します。主成分分析と多次元スケーリングの違いは何ですか?

非常に簡単に言えば、ユークリッド距離の行列は、中心分解されたグラム行列に変換できます。これは、固有分解を介してPCAを実行するために直接使用できます。この手順は、[クラシック]多次元スケーリング(MDS)と呼ばれます。

ペアワイズ距離がユークリッド距離でない場合、PCAは実行できませんが、MDSは実行できますが、これはPCAと同等ではなくなります。ただし、この状況では、MDSは目的にとってさらに優れている可能性があります。


私が使用している距離は相関(ピアソン相関)であるため、ユークリッド距離ではありません。それは同じように機能しますか?
bigTree 2014

1
@bigTree:ユークリッド距離でない場合、PCAを実行する方法はありません。ただし、ペアワイズ距離のマトリックス(任意の距離にすることができます)を正確に使用する次元削減手法である多次元スケーリングを使用できます。もう1つの注意:元のデータポイント(持たない)に関する特定の仮定の下で、相関はユークリッド距離に変換できます。仮定は次のとおりです:(1)平均がゼロである、(2)固定された、たとえば単位の長さがある。たまたまあなたのデータに当てはまりますか?
アメーバはモニカを

これらのいずれも該当しないか、私のデータが、私はMDSのおかげみます
bigTree

1
カーネルPCAを使用できませんか?ペアワイズドット積のみが必要になると思いますが、問題についてはあまり知らないので、それが理にかなっているかわかりません
rep_ho

4

距離行列を持つPCAが存在し、多次元スケーリング(MDS)と呼ばれます。詳細については、ウィキペディアまたはこの本を参照してください

あなたはそれRをmds関数で行うことができますcmdscale。サンプルのx場合、それを確認して同じ結果prcomp(x)cmdscale(dist(x))得ることができます(prcompPCA distはxの要素間のユークリッド距離を計算するだけです)


3

これは、スペクトルクラスタリングを適用できる問題のようです。ペアワイズ距離マトリックスがあるので、グラフ内の他のすべてのノードからの距離に対応して、各ノードにN個の接続がある完全に接続されたグラフを定義できます。これから、グラフラプラシアンを計算し(これが怖いように聞こえても心配しないでください-簡単な計算です)、次に最小の固有ベクトルを取得します。固有値(これがPCAと異なる場所です)。たとえば、3つの固有ベクトルを使用すると、Nx3行列になります。この空間では、クラスター間のフロー(またはこの場合は距離)を最大化するための最適なカットであることを示唆するきちんとしたグラフ理論のため、ポイントは(うまくいけば)うまく分離されているはずです。そこから、k平均法または同様のアルゴリズムを使用して、3空間にクラスター化できます。詳細については、この素晴らしいチュートリアルを確認することをお勧めします。

http://arxiv.org/abs/0711.0189


0

ペアワイズ距離も、共分散行列と同様に正方行列を形成します。PCAは、共分散行列に適用されるSVD(http://en.wikipedia.org/wiki/Singular_value_decomposition)です。データに対してSVDを使用して次元削減を行うことができるはずです。私はあなたの出力をどのように解釈するか正確にはわかりませんが、それは間違いなく試みるべきものです。k-meansや階層的クラスタリングなどのクラスタリング手法を使用できます。また、多次元スケーリングなどの他の次元削減手法も見てください。クラスターから抜け出そうとしていますか?


アンドリュー・キャシディの答えは実際に有効です。距離の測定値がピアソン相関である場合は、共分散行列を実際に持っていることから「遠すぎる」という標準化因子にすぎません。したがって、SVDを適用することは、基本的にPCAを実行することと同じです。
Matthew Anthony、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.