python-3.x - PCA解释方差比的解释
问题描述
我使用以下代码:
# Fit PCA
pca = PCA(n_components=3)
pca.fit(data)
# Plot
plt.plot(range(0,3), pca.explained_variance_ratio_)
plt.ylabel('Explained Variance')
plt.xlabel('Principal Components')
plt.title('Explained Variance Ratio')
plt.show()
pca.explained_variance_ratio_
由此我得到下图:
和array([0.92540219, 0.06055593, 0.01404188])
我不明白为什么它只显示两个主要组件?它应该是 92.54%(由第一个组件解释的信息),而在图表中它小于 20%?请帮我解决这个误解。
解决方案
事实上,正如文档所述,explained_variance_ratio_
返回由每个选定组件解释的方差百分比。因此,它完全符合您的预期,您的图表显示了这一点。
这种方式应该更清楚一点:
import matplotlib.pyplot as plt
%matplotlib inline
plt.plot(range(0,3), [0.92540219, 0.06055593, 0.01404188])
plt.ylabel('Explained Variance')
plt.xlabel('Principal Components')
plt.xticks(range(0,3),
["1st comp", "2nd comp", "3rd comp"], rotation=60)
plt.title('Explained Variance Ratio')
plt.show()
推荐阅读
- c# - 如果我在里面发送东欧字符,JSON 会缩短
- tensorflow - 在初始训练期间预测相同动作的强化学习参与者
- mysql - 为什么我的唯一约束与外键混淆?
- aws-lambda - 连接的 lambda 函数可以在回复 Lex 之前减速吗?
- selenium - 味精没有这样的元素:无法找到元素:
- json - 在另一个请求中重用 json body 值作为输入?
- java - 在 Java 8 中逐行读取 Spring Multipartfile 的最佳方法
- python - Python/SQL 加载错误:对于准备好的语句,超出了每个会话 20 MB 的内存限制
- windows - 如何分发用 cmake for windows 编译的程序?
- javascript - Magento2 自定义扩展和 PWA 支持