2016-04-26 11 views
0

私は小さな問題がt-SNEをPythonで使っています。私は、このコマンドを使用して、その上でT-SNEを実行し、その後TSNE in sklearn python

A = np.matrix([[0.2, 0.3, 0.6, 0.8], 
       [0.2, 0.25, 0.55, 0.85], 
       [0.2, 0.3, 0.6, 0.8], 
       [0.64, 0.8, 0.2, 0.2], 
       [0.65, 0.8, 0.2, 0.2], 
       [0.65, 0.75, 0.2, 0.15], 
       [0.7, 0.8, 0.2, 0.2]]) 

:ここ

tsne = manifold.TSNE(n_components=2,random_state=0, metric=Distance) 

Distanceは2つの配列として取る関数である

は、私は小さなデータセットを取りますそれらの間の距離を計算し、距離を返します。 この機能は機能します。値を変更すると出力が変化するのがわかります。

def Distance(X,Y): 
    Result = spatial.distance.euclidean(X,Y) 
    return Result 

しかし、可視化はt-sneを使用して変更されません。視覚化はマイポイント間の距離を考慮しません。

そして、私はメトリックを削除する場合:それはまだ私に同じ結果を与える

tsne = manifold.TSNE(n_components=2,random_state=0) 

を...

enter image description here

は何か解決策はありますか?

答えて

0

デフォルトのmetriceuclideanであるためです。実際には、デフォルト設定に比べて何も変更していません。デフォルトのパラメータはhereです。 こちらもコピーして貼り付けてあります。

class sklearn.manifold.TSNE(n_components=2, perplexity=30.0, early_exaggeration=4.0, learning_rate=1000.0, n_iter=1000, n_iter_without_progress=30, min_grad_norm=1e-07, metric='euclidean', init='random', verbose=0, random_state=None, method='barnes_hut', angle=0.5)