ペアワイズ距離しかない大規模なデータセットをクラスター化したい。k-medoidsアルゴリズムを実装しましたが、実行に時間がかかりすぎるため、PCAを適用して問題の次元を減らすことから始めたいと思います。ただし、この方法を実行するために知っている唯一の方法は、私の状況にはない共分散行列を使用することです。
ペアワイズ距離のみを知っているPCAを適用する方法はありますか?
ペアワイズ距離しかない大規模なデータセットをクラスター化したい。k-medoidsアルゴリズムを実装しましたが、実行に時間がかかりすぎるため、PCAを適用して問題の次元を減らすことから始めたいと思います。ただし、この方法を実行するために知っている唯一の方法は、私の状況にはない共分散行列を使用することです。
ペアワイズ距離のみを知っているPCAを適用する方法はありますか?
回答:
更新:ユークリッド距離とスカラー積の間の混乱に基づいていたので、元の答えを完全に削除しました。これは私の回答の新しいバージョンです。謝罪。
ペアワイズ距離がユークリッド距離を意味する場合、はい、PCAを実行して主成分を見つける方法があります。次の質問に対する答えでアルゴリズムについて説明します。主成分分析と多次元スケーリングの違いは何ですか?
非常に簡単に言えば、ユークリッド距離の行列は、中心分解されたグラム行列に変換できます。これは、固有分解を介してPCAを実行するために直接使用できます。この手順は、[クラシック]多次元スケーリング(MDS)と呼ばれます。
ペアワイズ距離がユークリッド距離でない場合、PCAは実行できませんが、MDSは実行できますが、これはPCAと同等ではなくなります。ただし、この状況では、MDSは目的にとってさらに優れている可能性があります。
距離行列を持つPCAが存在し、多次元スケーリング(MDS)と呼ばれます。詳細については、ウィキペディアまたはこの本を参照してください。
あなたはそれR
をmds関数で行うことができますcmdscale
。サンプルのx
場合、それを確認して同じ結果prcomp(x)
をcmdscale(dist(x))
得ることができます(prcomp
PCA dist
はxの要素間のユークリッド距離を計算するだけです)
これは、スペクトルクラスタリングを適用できる問題のようです。ペアワイズ距離マトリックスがあるので、グラフ内の他のすべてのノードからの距離に対応して、各ノードにN個の接続がある完全に接続されたグラフを定義できます。これから、グラフラプラシアンを計算し(これが怖いように聞こえても心配しないでください-簡単な計算です)、次に最小の固有ベクトルを取得します。固有値(これがPCAと異なる場所です)。たとえば、3つの固有ベクトルを使用すると、Nx3行列になります。この空間では、クラスター間のフロー(またはこの場合は距離)を最大化するための最適なカットであることを示唆するきちんとしたグラフ理論のため、ポイントは(うまくいけば)うまく分離されているはずです。そこから、k平均法または同様のアルゴリズムを使用して、3空間にクラスター化できます。詳細については、この素晴らしいチュートリアルを確認することをお勧めします。
ペアワイズ距離も、共分散行列と同様に正方行列を形成します。PCAは、共分散行列に適用されるSVD(http://en.wikipedia.org/wiki/Singular_value_decomposition)です。データに対してSVDを使用して次元削減を行うことができるはずです。私はあなたの出力をどのように解釈するか正確にはわかりませんが、それは間違いなく試みるべきものです。k-meansや階層的クラスタリングなどのクラスタリング手法を使用できます。また、多次元スケーリングなどの他の次元削減手法も見てください。クラスターから抜け出そうとしていますか?