3

scikit-learn 中的 PCA 有一个名为“explained_variance”的属性,它捕获每个组件解释的方差。对于 scikit-learn 中的 FactorAnalysis,我没有看到类似的情况。如何计算因子分析的每个组件解释的方差?

4

1 回答 1

9

您可以这样做:

进行因子分析后,首先获取分量矩阵和噪声方差,让 fa 成为您的拟合模型

m = fa.components_
n = fa.noise_variance_

平方这个矩阵

m1 = m**2

计算 m1 的每一列的总和

m2 = np.sum(m1,axis=1)

现在由第一个因素解释的 %variance 将是

pvar1 = (100*m2[0])/np.sum(m2)

同样,第二个因素

pvar2 = (100*m2[1])/np.sum(m2)

但是,噪声分量也解释了方差,如果您在解释的方差中考虑了这一点,则需要计算

pvar1_with_noise = (100*m2[0])/(np.sum(m2)+np.sum(n))
pvar2_with_noise = (100*m2[1])/(np.sum(m2)+np.sum(n))

等等。希望这可以帮助。

于 2017-02-14T11:05:19.940 回答