因此,在导入我的数据、对其进行转换并拆分为训练集和测试集之后,我尝试为 PCA 运行此脚本:
pca = PCA(random_state=2, n_components=2).fit_transform(X_train)
pca = pd.DataFrame(pca, columns=["X1","X2"]).assign(y = np.array(y_train))
pca.plot.scatter(x='X1', y='X2', c='y', colormap='viridis')
给我这张图
然后我为 ICA 运行了这个脚本:
ica = FastICA(random_state=34, n_components=2).fit_transform(X_train)
ica = pd.DataFrame(ica, columns=["X1","X2"]).assign(y = np.array(y_train))
ica.plot.scatter(x='X2', y='X1', c='y', colormap='viridis')
如果您仔细观察,您会发现这些图表完全相同。除了翻转 X1 轴。知道是什么原因造成的吗?我期待 ICA 产生与 PCA 非常不同的东西

