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

时间:2019-07-25 09:20:42

标签: python scikit-learn pca

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

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

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)

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

当我在同一数据上运行sklearn.transform时,使用之前由于fit_transform而创建的PCA对象,这是我得到的:

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)

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

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

0 个答案:

没有答案