2013-12-11 10 views
5

公式ドキュメントhereに記載されているように、sklearn.cluster.SpectralClusteringクラスの具体的な使用例を理解できません。自分のアフィニティマトリックスを使用してクラスタリングを実行したいとします。次のように私は、最初のクラスSpectralClusteringのオブジェクトをインスタンス化: sklearn.cluster.SpectralClusteringクラスをパラメータaffinity = 'precomputed'で使用する

from sklearn.clustering import SpectralClustering 

cl = SpectralClustering(n_clusters=5,affinity='precomputed') 

次のように上記affinityパラメータのドキュメントは次のとおりです。

親和性:文字列、配列状または呼び出し可能な、デフォルトの「RBF」

文字列の場合、これは 'nearest_neighbors'、 'precomputed'、 'rbf'、またはsklearn.metrics.pairwise_kernelsでサポートされているカーネルの1つです。 類似性スコアを生成するカーネル(類似性とともに増加する負でない値)のみを使用する必要があります。このプロパティはクラスタリングアルゴリズムによってチェックされません。

X:今オブジェクトclは、以下のように唯一のパラメータX約ドキュメントがされている方法fit有する

アレイ状または疎行列、形状(n_samples、n_features)を

OR、もし親和性== precomputed、形状の事前計算アフィニティーマトリックス(n_samples、n_samples)

これは混乱するところです。私自身のアフィニティマトリックスを使用しています。ここでは、0の数値は2つの点が同じであることを意味し、数値が高いほど2つの点がより似ていないことを意味します。しかし、パラメータaffinityための他の選択肢は、実際にデータセットを取得し、類似行列を生成する、高い値がより類似の指標であり、下部値(例えばラジアル基底カーネルとして)相違を示している。います

SpectralClusteringの私のインスタンスにfitメソッドを使用している場合ので、私は実際にパラメータXとしてfitメソッド呼び出しに渡す前に、類似度行列に私のアフィニティーマトリックスを変換する必要がありますか?同じドキュメンテーション・ページでは、距離をよく振る舞う類似点への変換を書き留めていますが、このステップをどこで実行すべきか、およびどのメソッド呼び出しを介して行うべきかを明確に示していません。ドキュメントから

答えて

3

ストレート:あなたは0同一の要素を意味するため、このような距離の行列としてアフィニティマトリックスを有し、かつ高い値が非常に異種元素を意味する場合

、それは類似に変換することができます。これは、独自のコードに移行し、その結果がfitに渡すことができ

np.exp(- X ** 2/(2. * delta ** 2)) 

:ガウス(RBF、熱)カーネルを適用することによって、アルゴリズムに適してい行列。このアルゴリズムの目的のために、類似性は距離ではなく類似性を意味します。

+0

ありがとうございました - このスニペットに気がつきましたが、文言につかまった距離とは対照的に類似性を意味する類似性。 –

+0

「デルタ」とはどういう意味ですか?このパラメータを設定する方法は? – eastdog

関連する問題