我对PCA算法有点困惑,尤其是在sklearn中实现的PCA算法。
当我在具有4000X784
矩阵的sklearn分解中使用主成分分析时
X.shape = (4000,784)
pca = PCA()
pca.fit(X)
pca.explained_variance_.shape
我得到
(784,)
另一方面,当我使用另一个形状为(50,784)
的数据集时
(50,)
我做错什么了吗?
让我们看看:
explained_variance_ratio_ 数组,[n-components]每个选定组件解释的方差百分比。则存储所有分量,并且解释的方差之和等于1.0
在第一种情况下,数据有4000个元素和748个组件,因此该属性为您提供了一个748个值的数组。如果这是正确的,那么您需要转换第二个数据集。
使用PCA得到的分量的最大数量等于X矩阵的最小维数。
explained_variance_方法向您显示每个主成分分析分量对数据方差的解释程度。
这些阵列形状是正常的,因为当数据多于功能时,会得到768个组件,但当数据为50行时,只有50个组件。