Данные с пятью столбцами
один | два | три | четыре | пять
но я хочу этого результата
ПК 1 | ПКА 2 | пять
можно ли выбрать только 4 столбца для PCA?
Нет ничего математически необоснованного в сокращении некоторых ваших функций с помощью PCA. Функции PCA представляют собой линейные комбинации (повернутые оси) этого подпространства, оставляя другие (ортогональные) функции без изменений.
Я включил пример многомерного гауссова в x, y, z. Я использую PCA на x
и y
, оставляя z
без изменений. Вы можете проверить графики, чтобы убедиться, что второй набор точек действительно такой же, как и первый, просто повернутый в x,y
:
import numpy as np
import plotly.express as px
from sklearn.decomposition import PCA
means = [0,0,0]
cov = [[1,1,0],[-100,100,0],[0,0,1]]
# get scatter points drawn from multivariate
x,y,z = np.random.multivariate_normal(means, cov, 5000).T
# data
X = np.array([x,y,z]).T
# initial plot, with largest variance along x=y:
px.scatter_3d(x=x, y=y, z=z, labels = {j:j for j in"xyz"}).show()
# fit pca in the x-y plane, leaving z un-modified
pca = PCA(n_components=2)
pca.fit(X[:, 0:2])
# get "rotated" pca components x', y'
q = pca.transform(X[:,0:2])
xp, yp = q[:,0], q[:,1]
px.scatter_3d(x=xp, y=yp, z=z, labels = {"x":"x'", "y":"y'", "z":"z"}).show()
обязательно - запустите PCA на первых четырех компонентах, затем объедините пятую функцию