我有以下数据集,每个数据都是一个包含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]
从数据集中,我得到每两个节点之间的距离矩阵。距离是欧几里德距离。
[[-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的值,其中距离保持不变?
答案 0 :(得分:1)
您的数据存在于128个维度中,因此您要求将欧几里德距离保留投影分为3个维度。什么都不是很完美。 t-SNE算法倾向于给出美学上令人愉悦的结果。
答案 1 :(得分:0)
您可以使用PCA将高维矩阵转换为3D或2D矩阵。 将X分配给距离矩阵或初始矩阵(无论哪一个检查输出可视化并选择看起来更合理的那个)。 这是Python Scikit-learn implementation。
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)
对于2D绘图,将n_components设置为2。