sklearn.transform 和 sklearn.fit_transform 给出不同的结果

Ska*_* K. 5 python pca scikit-learn

我正在尝试使用 sklearn PCA 在二维空间中绘制我的数据。我想在之后重新使用相同的 PCA 表示来绘制多个数据,但让我们先关注一组。

当我sklearn.fit_transform对我的数据运行 a 时,我得到以下结果:

sklearn_pca = sklearnPCA(n_components = 2, random_state = 55)
X_train_proj = sklearn_pca.fit_transform(X_train)
plt.scatter(X_train_proj[:, 0], 
            X_train_proj[:, 1], 
            c = dic[y_train.astype(int)],
            s = y_train * 10 + 1)
Run Code Online (Sandbox Code Playgroud)

输出 1:https : //i.ibb.co/B4FcV08/capture-1.png

当我sklearn.transform在相同的数据上运行 a时,使用之前创建的 PCA 对象感谢 fit_transform,这是我得到的:

X_train_proj_2 = sklearn_pca.transform(X_train)
plt.scatter(X_train_proj_2[:, 0], 
            X_train_proj_2[:, 1], 
            c = dic[y_train.astype(int)],
            s = y_train * 10 + 1)
Run Code Online (Sandbox Code Playgroud)

输出 2:https : //i.ibb.co/0MS3Jhy/capture-2.png

我的数据绝对不包含 NA 并且已经缩放。然而,大小相当大,因为我有大约 11,000 行和大约 20 列。我还通过计算相关矩阵快速检查了我的列是否不相关。