from sklearn.datasets import make_blobs
from sklearn.decomposition import PCA
SEED = 123
X, y = make_blobs(n_samples=1000, n_features=5000, cluster_std=90., random_state=SEED)
pca = PCA(2)
pca.fit(X)
pca1, pca2 = pca.components_
pcaX = pca.transform(X)
pcaXnp = np.array([X @ pca1, X @ pca2]).T
如果您打印出pcaX和pcaXnp,您会发现它们非常相似,但它们彼此不符。为什么会有这些不同之处呢?看起来像“.components_”应该返回sklearn将要乘以矩阵的内容,为什么只是对乘法结果进行近似呢?