Я использую PCA Склеарна для использования в задачах физического моделирования. В этой задаче возвращаемые значения из PCA.fit_transform()
и PCA.components_
имеют физический смысл. Однако, похоже, что PCA sklearn автоматически означает центрирование входных данных, так что возвращаемые значения PCA.fit_transform()
и PCA.components_
находятся в среднецентрированном пространстве. Я понимаю, что PCA.inverse_transform
возвращает исходные нецентрированные входные данные, но делает это через np.dot(X, PCA.components_) + PCA.mean_
, где X
- это возвращаемое значение PCA.fit_transform()
.
Другими словами, как я могу изменить X
и PCA.components_
на X1
и PCA.components_1
, используя PCA.mean_
, так что np.dot(X1,pca.components_1)
возвращает то же значение, что и PCA.inverse_transform(X)
?
Возможно, есть простое решение линейной алгебры, но я не могу понять это.