2016-10-11 17 views
0

私は以下のデータセットを持っています、各データは128要素の配列です。距離行列からポイント座標を取得する方法は?

[-0.08 0.23 0.21 -0.17 0.01 0.01 0.01 0.11 -0.04 0.03 -0.04 -0.1 
-0.04 -0.03 0.11 -0.04 -0.07 -0.02 -0.04 -0.16 0.07 0.16 -0.07 -0.13 
    0.06 -0.04 0.03 0.12 0.15 0.04 -0.05 -0.19 0.06 0.02 0.1 -0.1 
    0.09 -0.03 0.03 0.01 0.03 -0.04 0.12 0.07 0. 0.19 0.04 -0.07 
-0.17 -0.09 0.02 0.15 -0.1 0.03 -0.01 0.03 0.01 -0.11 -0.09 -0.05 
    0.05 -0.11 -0.1 0.13 0.03 -0.07 -0.04 0.04 0.04 0.09 0.09 -0.04 
-0.02 -0.16 0.08 0.11 -0.12 0.09 0.05 -0.03 -0.02 0.06 0.13 0.23 
    0.05 -0.04 0.04 0.05 0.01 0.14 -0.05 -0.07 -0.1 0.01 -0.11 -0.1 
    0.02 0.05 -0.02 -0.02 -0.01 0.12 0.03 -0.01 -0.06 -0.05 -0.03 0.11 
    0.05 -0.1 0.09 -0.12 -0.2 0.06 0.03 0. -0.08 -0.06 -0.04 0. 
    0.07 0.06 -0.05 0.01 0.13 -0.03 0.14 0.01] 

[ 0.13 0.02 0.03 0.08 -0.01 0. 0.03 -0.06 -0.09 -0.11 0.02 0.12 
-0.01 -0.14 -0.1 0.08 -0.02 -0.08 -0.13 0.1 0.01 0.15 0. 0.09 
-0.05 0.13 0.04 -0.05 0.04 0.07 -0.12 0.14 -0.08 0.09 -0.09 -0.13 
-0.08 0.15 -0.03 0.1 -0.04 0. -0.05 0.07 0.01 0.04 0.08 -0.08 
-0.08 0.1 0.22 0.07 -0.05 0. 0.06 -0.11 -0.01 0.08 0.06 0. -0. 
-0.09 0.04 0.06 -0.04 -0.17 0.04 -0.06 -0.05 0.01 -0.04 -0.01 0.06 
    0.17 -0.02 -0.08 -0.02 -0.06 -0.05 0.21 0.17 -0.02 0.02 -0.12 0.04 
-0.16 0.04 -0.08 -0.08 0.01 -0.05 -0.01 -0.15 0.08 -0.03 0.09 0.13 
-0.08 0.07 -0.07 -0.06 0.1 -0.02 0.21 -0.15 -0.13 -0.06 0.14 0.07 
-0.08 0.15 0.18 -0.11 0.05 -0. -0. -0.08 -0.04 -0.03 0.03 -0.03 
    0.14 0.05 -0.04 0.1 -0.03 0.07 -0.12] 

[-0.01 0.22 0.2 -0.17 -0.04 0.04 0.01 0.14 -0.07 0.01 -0.04 -0.16 
    0. 0.11 0.15 -0.09 0.03 -0.07 -0.04 -0.19 0.06 0.15 -0.07 -0.06 
    0.07 -0.1 0. 0.17 0.13 0.02 -0. -0.17 -0.01 0.02 0.02 -0.06 
    0.04 0.01 0.03 0.09 -0.03 0.02 0.01 -0.03 0.07 0.19 -0.05 -0.06 
-0.13 -0.1 0.03 0.23 -0.04 0.02 -0.07 0.01 0.03 -0.02 -0.02 -0.08 
    0.04 -0.01 -0.15 0.08 -0.1 -0.01 0.05 0.12 0.03 0.07 0.13 -0.03 
-0.05 -0.14 0.11 0.11 -0.11 -0. 0.07 0.04 -0.02 0.04 0.15 0.14 
    0.07 -0.03 0.04 -0.04 -0.02 0.08 -0.07 -0.08 -0. 0.04 -0.09 -0.1 
    0.05 -0.01 -0.03 -0.02 0. 0.16 0.02 0.07 -0.15 -0.02 -0.09 0.05 
    0.06 -0.15 0.14 -0.1 -0.21 0.07 0.03 0.06 -0.11 -0.05 -0.02 0. 
    0.03 0.02 -0.07 0.01 0.12 -0.03 0.09 0.01] 

[ 0.18 -0.04 -0.02 0.06 -0.05 0.07 0.02 0.16 0. -0.02 0.1 0.06 
    0.04 -0.12 -0.06 0.04 0.06 -0.05 -0.17 0.09 0.03 0.08 0.03 0.03 
-0.13 -0.02 0.05 -0.07 -0.09 -0.01 -0.11 0.05 0.04 0.13 -0.13 -0.06 
-0.07 0.1 -0.16 0.06 -0.1 -0.04 -0.16 0.02 0.02 0.02 -0.08 -0.06 
-0.1 0.15 0.2 0.08 -0.1 0.01 -0.01 -0.06 -0.03 -0.1 0.06 0.04 
-0.03 -0.12 -0.04 -0.04 -0.02 -0.21 -0.01 0.09 -0.05 0.05 0.02 -0.1 
-0.01 -0.05 -0.09 0.02 0.04 -0.01 -0.07 0.15 -0.01 -0.16 -0.02 -0.09 
    0.01 -0. 0.05 -0.11 -0. 0.1 -0.1 -0.1 -0.18 0.13 -0.04 0.11 
    0.09 -0.18 -0.03 -0.01 0.07 0.12 -0.06 0.05 -0.03 -0.12 -0.05 0.01 
-0.01 -0.1 0. 0.1 -0.02 -0.03 0.09 0. -0.06 -0.05 0.03 0.08 
-0.04 0.03 0.07 0.09 0.29 -0.07 0.19 -0.07] 

データセットから、2つのノードごとに距離行列が得られます。距離はユークリッド距離です。

[[-inf  , -1.37174386, -0.90543197, -1.40566222], 
[-1.37174386,  -inf, -1.33795484, -0.5526271 ], 
[-0.90543197, -1.33795484,  -inf, -1.37944292], 
[-1.40566222, -0.5526271 , -1.37944292,  -inf]] 

距離行列から、データがどこにあるかをノードで表すことができる3D UIを作成します。どのようにして各データノードのx、y、z座標を得ることができますか? または、128要素の配列をx、y、zの値に変換するにはどうすればよいですか?

答えて

1

あなたのデータは128次元で存在するので、ユークリッド距離を3次元に保存することを求めています。何も完璧に動作しません。 t-SNEアルゴリズムは、審美的に満足のいく結果を与える傾向がある。

+0

コンパクトにセットn_componentsを描くが、良い答えを

import numpy as np from sklearn.decomposition import PCA X = your distance matrix or your initial matrix pca = PCA(n_components=3) X3d = pca.fit_transform(X) 

! – sascha

0

PCAを使用すると、高次元のマトリックスを3Dまたは2Dマトリックスに変換できます。 Xに距離行列または初期行列を割り当てます(どれが出力の視覚化をチェックし、より合理的に見えるものを選ぶかは関係ありません)。 ここにはPython Scikit-learn implementationがあります。 2Dは2

+0

ValueErrorを取得しました:データマトリクスをfit_transformしている間にn_features = 1に対してn_components = 3が無効です。私のデータマトリックスは128 * 1です。 – BooYaah

+0

データマトリックス128x1は1次元(1つのフィーチャ)ごとに128個のサンプルがあることを意味しますので、次元数を1から3に減らすことはできません!入力マトリックスにはいくつかのサンプルと3つ以上のフィーチャー(n_sampleXn_features)があり、フィーチャーの数はn_components以上でなければなりません。入力として、マトリックス内のすべてのデータに1つのサンプルを与えるだけでなく、 1つのサンプルが128 x 1の場合は、最初に1 x 128を得るためにそれを転置し、すべてのサンプルをスタックしてn_samples x 128を取得し、それをn_components = 3の入力として使用すると完了です。 – Ash

関連する問題