Проблема с пониманием кода анализа основных компонентов

#numpy #pca #eigenvalue #eigenvector

#numpy #pca #собственное значение #собственный вектор

Вопрос:

Кто-нибудь, пожалуйста, может объяснить мне эту строку кода? P = vectors.T.точка (C.T) в строке 22

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

 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. Скалярное произведение vectors.T и C.T

Ответ №1:

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

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

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

Комментарии:

1. @HarshalSawant Я вижу, вы новичок в Stack Overflow. Когда ответ полезен для вас, полезно проголосовать за него. Это дает своего рода признание человеку, который нашел время, чтобы помочь вам, и, что наиболее важно, это помогает другим, у кого есть вопрос, похожий на ваш, знать, что ответ был полезен кому-то еще и, следовательно, стоит прочитать. 😉