python - Sklearn PCA解释方差和解释方差比差
问题描述
我正在尝试从特征向量中获取方差。
explained_variance_ratio_
in和explained_variance_
in和有什么不一样PCA
?
解决方案
解释方差的百分比为:
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。
推荐阅读
- html - 如何使用没有滚动条的表格使元素居中?
- javascript - 在 Lib 中组织文件夹和文件结构的最佳实践
- java - 如何创建带有图标的按钮?
- javascript - 需要在 Vue.js 应用程序中使用 Jest 测试 axios Web 服务承诺返回结果,但出现错误
- fiddler - Fiddler 生成的证书具有无效的数字签名
- javascript - 有没有办法丢弃函数从事件处理程序接收到的事件对象数据?
- python - Django max_upload_size 被忽略
- android - Textgears API - 如何?
- c# - 滑动浏览以前的图像
- php - 如何将数据存储在类函数的变量中,然后在外部访问它