vvk*_*itk 1 factor-analysis scikit-learn
scikit-learn中的PCA具有称为"explain_variance"的属性,该属性捕获每个组件解释的方差.在scikit-learn中,我没有看到像FactorAnalysis这样的类似事情.如何计算因子分析的每个组件所解释的方差?
以下是如何做到这一点:
首先进行因子分析后得到组件矩阵和噪声方差,让fa成为您的拟合模型
m = fa.components_
n = fa.noise_variance_
Run Code Online (Sandbox Code Playgroud)
将此矩阵平方
m1 = m**2
Run Code Online (Sandbox Code Playgroud)
计算m1的每列的总和
m2 = np.sum(m1,axis=1)
Run Code Online (Sandbox Code Playgroud)
现在由第一个因素解释的%方差将是
pvar1 = (100*m2[0])/np.sum(m2)
Run Code Online (Sandbox Code Playgroud)
同样,第二个因素
pvar2 = (100*m2[1])/np.sum(m2)
Run Code Online (Sandbox Code Playgroud)
但是,噪声分量也会解释差异,如果您在解释的方差中考虑了这一差异,则需要计算
pvar1_with_noise = (100*m2[0])/(np.sum(m2)+np.sum(n))
pvar2_with_noise = (100*m2[1])/(np.sum(m2)+np.sum(n))
Run Code Online (Sandbox Code Playgroud)
等等.希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
2159 次 |
| 最近记录: |