Как я могу проецировать два числовых вектора на два новых пространства, основываясь на их сходстве с вложениями? - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть два набора данных (X_train, Y_train, X_label, Y_label), и я хочу проецировать (X_train) и (Y_train) на новое пространство на основе их сходства.

Я хочу получить (X '_train) и (Y'_train) после этой проекции.Я хочу использовать вложения в этой проекции.

For instance:
X_train.shape = 5000 * 27
Y_train.shape = 5000 * 29

X_train = array([[8.31831611e-01, 5.54554407e-01, 6.25614806e-03, ...,
    7.08517689e-03, 7.61918855e-03, 1.50771435e-03],
   [3.36307774e-01, 9.41661767e-01, 2.31936396e-03, ...,
    3.69725248e-03, 2.88847605e-03, 2.59154316e-03],
   [9.89928377e-01, 1.36541845e-01, 6.67014761e-03, ...,
    1.01877152e-02, 1.47227442e-02, 3.30953226e-04]])


Y_train = 
array([[0.01637161, 0.01994463, 0.85155001, ..., 0.07053801],
   [0.0151852 , 0.01957402, 0.85830792, ..., 0.06863835, 0.10161352 ],
   [0.01637763, 0.01788614, 0.8557828 , ..., 0.06964044, 0.10264979 ]])

После проекции со встраиванием

Я хочу получить новые векторы (X'_train) и (Y'_train).n - число измерений, оно может быть от 2 до 26.

 X'_train: (5000 * n)
array([[-0.06273048,  0.01809097, -0.00312041, ...,  0.        ,
     0.        ,  0.        ],
   [-0.00116663, -0.00797115,  0.01432938, ...,  0.        ,
     0.        ,  0.        ],
   [ 0.02516683,  0.00373459, -0.00649857, ...,  0.        ,
     0.        ,  0.        ],

Y'_train: (5000 * n)
array([[ 0.00669351, -0.03128811, -0.1423065 , ...,  0.        ,
     0.        ,  0.        ],
   [ 0.00133531,  0.01361822, -0.04083589, ...,  0.        ,
     0.        ,  0.        ],
   [-0.01988083, -0.04251724, -0.16295213, ...,  0.        ,
     0.        ,  0.        ],
...