У меня большая матрица ввода, размер (20, 20000), и я пытаюсь выполнить PCA, используя пакет Python sklearn. Здесь 20 относится к 20 предметам, а 20 000 относится к 20000 функций. Ниже приведен пример кода:
import numpy as np
from sklearn.decomposition import PCA
rng = np.random.RandomState(1)
X = rng.randn(20, 20000)
pca.fit(X)
X.shape =
>> (20, 20000)
pca = PCA(n_components=21)
pca.fit(X)
X_pca = pca.transform(X)
print("Original shape: ", X.shape)
print("Transformed shape: ", X_pca.shape)
>> Original shape: (20, 20000)
>> Transformed shape: (20, 20)
Используя PCA, я не могу вернуть больше компонентов, чем мое количество значений x (почему мы ограничены длиной наших значений x при получении компонентов pca)?