コサイン類似度を使用して、私のデータセットでTSNEを実行するのに少し問題があります。skine.manifoldのコサイン類似度TSNE
私は私のすべてのベクトルのコサイン類似度を計算しているので、私は私のコサイン類似含ま正方行列があります。そのようなその後
A = [[ 1 0.7 0.5 0.6 ]
[ 0.7 1 0.3 0.4 ]
[ 0.5 0.3 1 0.1 ]
[ 0.6 0.4 0.1 1 ]]
を、私が使用しているTSNE:
A = np.matrix([[1, 0.7,0.5,0.6],[0.7,1,0.3,0.4],[0.5,0.3,1,0.1],[0.6,0.4,0.1,1]])
model = manifold.TSNE(metric="precomputed")
Y = model.fit_transform(A)
しかし、私は私のコサイン類似性の感覚を保つ事前に計算されたメトリックを使用していることはよく分からない:
#[documentation][1]
If metric is “precomputed”, X is assumed to be a distance matrix
しかし、私はメトリックコサインを使用しようとすると、私はエラーを得た:
A = np.matrix([[1, 0.7,0.5,0.6],[0.7,1,0.3,0.4],[0.5,0.3,1,0.1],[0.6,0.4,0.1,1]])
model = manifold.TSNE(metric="cosine")
Y = model.fit_transform(A)
raise ValueError("All distances should be positive, either "
ValueError: All distances should be positive, either the metric or
precomputed distances given as X are not correct
だから私の質問で、どのようにそれは存在しないデータセット(類似度行列)にコサインメトリックを使用してTSNEを行うことができますか?
scikitはどのバージョンですか? - コードは私のために働く。 – cel
申し訳ありませんが、コードを更新します。私は入力を変換するために関数 'fit_transform'を使用します。 そしてエラー、私は動作しない小さな部分をコード化している ...そこから来ているようだ: 'NP A = np.matrix([[1、0.7としてsklearnインポートマニホールド 輸入numpyのから、0.5,0.6]、[1,0.7,0.5,0.6]、[0.5,0.3,1,0.1]、[0.6,0.4,0.1,1]) モデル=マニホールド.TSNE(メトリック= "余弦") Y = model.fit_transform(A) ' – HugoLasticot