scikit-learn 中的 PCA 和 FastICA 给出几乎相同的结果

数据挖掘 Python scikit-学习 主成分分析
2022-03-06 01:47:05

因此,在导入我的数据、对其进行转换并拆分为训练集和测试集之后,我尝试为 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')

给我这张图

PCA 前 2 名

然后我为 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')

ICA 2 组件

如果您仔细观察,您会发现这些图表完全相同。除了翻转 X1 轴。知道是什么原因造成的吗?我期待 ICA 产生与 PCA 非常不同的东西

0个回答
没有发现任何回复~