【发布时间】:2022-06-20 23:13:51
【问题描述】:
我有一个 MNIST 手写数字数据集的子集。我正在尝试使用 PCA、内核 pca、lle 和 tsne 来减小尺寸,同时绘制结果 usign Plotly.express.scatter_3d。但作为一个初学者,我不知道如何从图中解读。请指导我。
pca = PCA(n_components=3)
X_pca = pca.fit_transform(X_train)
X_pca_r = pca.inverse_transform(X_pca)
import plotly.express as px
fig = px.scatter_3d(X_pca, x=X_pca[:,0], y=X_pca[:,1], z=X_pca[:,2], color=y_train)
fig.show()
我有下图
然后,使用 KernelPCA:
from sklearn.decomposition import KernelPCA
kpca = KernelPCA(n_components=3, fit_inverse_transform=True)
X_kpca = kpca.fit_transform(X_train)
X_kpca_r = kpca.inverse_transform(X_kpca)
px.scatter_3d(X_kpca, x=X_kpca[:,0], y=X_kpca[:,1], z=X_kpca[:,2], color=y_train).show()
结果如下图:
同样,使用 LocallyLinearEmbedding:
from sklearn.manifold import LocallyLinearEmbedding
lle = LocallyLinearEmbedding(n_components=3)
X_lle = lle.fit_transform(X_train)
px.scatter_3d(X_lle, x=X_lle[:,0], y=X_lle[:,1], z=X_lle[:,2], color=y_train).show()
结果如下图:
最后,使用 TSNE:
from sklearn.manifold import TSNE
tsne = TSNE(n_components=3)
X_tsne = tsne.fit_transform(X_train)
px.scatter_3d(X_tsne, x=X_tsne[:,0], y=X_tsne[:,1], z=X_tsne[:,2], color=y_train).show()
结果如下图:
【问题讨论】: