【问题标题】:Factor Analysis in sklearn: Explained Variancesklearn 中的因子分析:解释方差
【发布时间】:2017-05-14 07:51:33
【问题描述】:

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

【问题讨论】:

    标签: scikit-learn factor-analysis


    【解决方案1】:

    你可以这样做:

    在进行因子分析后,首先获取分量矩阵和噪声方差,让 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))
    

    等等。希望这会有所帮助。

    【讨论】:

    • 这实际上对我不起作用。我得到的“pvar1”等数字加起来都是 100%,最后一个因素总是有余数。他们不应该按解释的方差量降序排序吗?
    猜你喜欢
    • 2019-12-09
    • 2017-09-30
    • 2022-06-24
    • 1970-01-01
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    相关资源
    最近更新 更多