Проблема понимания кода анализа главных компонентов - PullRequest
0 голосов
/ 27 марта 2019

Может кто-нибудь объяснить мне эту строку кода? P = vectors.T.dot (C.T) в строке 22 * ​​1001 *

Я искал онлайн документацию, но ничего не нашел.

from numpy import array
from numpy import mean
from numpy import cov
from numpy.linalg import eig

# define a matrix
A = array([[1, 2], [3, 4], [5, 6]])
print(A)
# calculate the mean of each column
M = mean(A.T, axis=1)
print(M)
# center columns by subtracting column means
C = A - M
print(C)
# calculate covariance matrix of centered matrix
V = cov(C.T)
print(V)
# eigendecomposition of covariance matrix
values, vectors = eig(V)
print(vectors)
print(values)
# project data
P = vectors.T.dot(C.T) # Explain me this line
print(P.T)

1 Ответ

0 голосов
/ 27 марта 2019

vectors.T.dot(C.T) - это скалярное произведение транспонированного массива vectors с транспонированным массивом C

Операция и проекции скалярного произведения связаны, так как можно использовать скалярное произведение для получения длиныпроецируемый вектор вдоль направления (другой вектор), когда этот вектор является единичным вектором.

Поскольку ваш вопрос довольно расплывчатый, я позволю вам прокомментировать этот ответ и адаптировать его при необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...