在保留点积的同时将ND矢量减少到2D

时间:2018-04-23 21:02:15

标签: python machine-learning scikit-learn dimensionality-reduction

我希望将N维向量的集合(~500)的维数降低到2D向量,以便对于任何两个向量:

numpy.dot(vOriginal1, vOriginal2)==numpy.dot(vNew1, vNew2)

其中vNew1,vNew2是尺寸减小的vOriginal1,vOriginal2向量。

编辑:我不是在寻找0的错误,只是一个低错误。所有矢量都具有固定大小M,并且它们将被转换为大小为2.

1 个答案:

答案 0 :(得分:0)

我真的不确定这是怎么回事。输出的形状取决于输入矢量的N维<?p>

例如:

import numpy as np

a = np.array(range(0, 12)).reshape(6,2)
b = np.array(range(0, 12)).reshape(2,6)
np.dot(a,b)
c = a.reshape(4,3)
d = b.reshape(3,4)
np.dot(c,d)

获取以下输出:

a: 
 [[ 0  1]
 [ 2  3]
 [ 4  5]
 [ 6  7]
 [ 8  9]
 [10 11]]  

b:
 [[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]]

a dot b:
 [[  6   7   8   9  10  11]
 [ 18  23  28  33  38  43]
 [ 30  39  48  57  66  75]
 [ 42  55  68  81  94 107]
 [ 54  71  88 105 122 139]
 [ 66  87 108 129 150 171]]

a:
 [[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]]

d:
 [[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

c dot d:
 [[ 20  23  26  29]
 [ 56  68  80  92]
 [ 92 113 134 155]
 [128 158 188 218]

你能告诉我们关于N维阵列的任何信息吗?它们是固定大小的吗?还是一组尺寸?