Sklearn PCA解释方差和解释方差比率差异

时间:2019-07-31 14:58:39

标签: python scikit-learn pca covariance

我正试图从特征向量中获取方差。

explained_variance_ratio_中的explained_variance_PCA有什么区别?

2 个答案:

答案 0 :(得分:2)

所解释的差异的百分比是:

explained_variance_ratio_

方差,即协方差矩阵的特征值是:

explained_variance_

公式: explained_variance_ratio_ = explained_variance_ / np.sum(explained_variance_)

示例:

import numpy as np
from sklearn.decomposition import PCA
X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
pca = PCA(n_components=2)
pca.fit(X)  
pca.explained_variance_
array([7.93954312, 0.06045688]) # the actual eigenvalues (variance)

pca.explained_variance_ratio_ # the percentage of the variance
array([0.99244289, 0.00755711])

也基于上述公式:

7.93954312 / (7.93954312+ 0.06045688) = 0.99244289

从文档中:

  

explained_variance_:数组,形状(n_components,)的数量   差异由每个选定的成分来解释。

     

等于n个分量的协方差矩阵的最大特征值   X。

     

0.18版的新功能。

     

explained_variance_ratio_:数组,形状(n个组件,)的百分比   差异由每个选定的成分来解释。

     

如果未设置n_components,则将存储所有组件并求和   比值等于1.0。

答案 1 :(得分:1)

只是标准化,以了解每个主要组成部分的重要性。你可以说: explained_variance_ratio_ = explained_variance_/np.sum(explained_variance_)