2016-12-30 64 views
0

scikit-learn中的PCA具有一個稱爲「explained_variance」的屬性,它捕獲每個組件解釋的方差。在scikit-learn中,我沒有看到類似於FactorAnalysis的東西。我如何計算每個組件解釋的因子分析的方差?sklearn中的因子分析:解釋差異

回答

5

這裏是你如何能做到這一點:

首先得到該成分矩陣和噪聲方差一旦你進行因子分析,讓發是你的擬合模型

m = fa.components_ 
n = fa.noise_variance_ 

廣場這個矩陣

m1 = m**2 

計算每m1的列的總和

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

現在由第一因子解釋%的變異將是

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)) 

等等。希望這可以幫助。