首页 > 解决方案 > Sklearn PCA解释方差和解释方差比差

问题描述

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

explained_variance_ratio_in和explained_variance_in和有什么不一样PCA

标签: pythonscikit-learnpcacovariance

解决方案


解释方差的百分比为:

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

从文档中:

explain_variance_ : array, shape (n_components,) 每个选定组件解释的方差量。

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

0.18 版中的新功能。

explain_variance_ratio_ :数组,形状(n_components,)每个选定组件解释的方差百分比。

如果未设置 n_components,则存储所有分量,并且比率的总和等于 1.0。


推荐阅读