1

問題は、最初に起こるべき問題です:a)クラスタリングまたはb)次元削減アルゴリズム? つまり、t-SNEのような擬似(実際ではない)次元削減方法を適用し、クラスタリングアルゴリズムを使用してクラスタを抽出したり、元の高次元空間でクラスタリングを実行してノードに色付けするだけですか? 次のコードを開始するのは良い方法ですか、まったく間違っていますか?t-SNEの次元削減を使用してクラスタリングを実行する

adjMat = g.get_adjacency(attribute='weight') #get the adjacency matrix from a really large graph 
adjMat = np.array(adjMat.data) 
adjMat = adjMat.T #use the incoming interaction vectors 
#initiate the t-SNE algorithm 
tsne = manifold.TSNE() #set dimensionality reduction algorithm 
manifoldCoords = tsne.fit_transform(adjMat) 
#initiate clustering algorithm 
clusteralgorithm = clusterAlgs.KMeans() #set clustering algorithm 
linear_clusters = clusteralgorithm.fit_predict(manifoldCoords) #extract clusters 

答えて

1

最初に次元を減らし、次にクラスタ化することは非常に一般的です。単に高次元データをクラスタ化するのがというハードであり、次元数の削減によってかなり扱いやすくなります。

クラスタリングが本質的に信頼できないことを忘れていない限り(結果を信頼しないでくださいが、study)、あなたはうまくいくはずです。

2

次元削減とクラスタリングを実行する方が常に良いです。

これは、距離がhigh dimensional space behave in a strange wayであるためです。もう一つの興味深い現象は、最も近い点と最も遠い点の比が1に近づくことです。

これを読むことをお勧めします。questionとユークリッド距離については尋ねますが、一般的に多くの興味深い情報があります。

関連する問題