python - 使用 PCA/SVD 降维
问题描述
我刚刚了解了 PCA/SVD,我只是想确保我已经正确地实现了编码。我也很难理解增加潜在维度。这是另一种降维模型吗?
非常感谢任何指导!
问题:对于提供的数据集,执行 PCA 并绘制捕获的关于增加潜在维度的方差。捕获 (a) 至少 95% 的方差和 (b) 至少 98% 的方差的最小维度是多少?
这就是我所做的:
from sklearn.decomposition import PCA
pca95 = PCA(n_components = 0.95)
pca95.fit_transform(X)
print('95% variance retained = {:1d}
dimensions'.format(len(pca95.explained_variance_ratio_)))
pca98 = PCA(n_components = 0.98)
pca98.fit_transform(X)
print('98% variance retained = {:1d}
dimensions'.format(len(pca98.explained_variance_ratio_)))
pca100 = PCA(n_components = 4613)
pca100.fit_transform(X)
fig = plt.figure
plt.plot(pca100.explained_variance_ratio_.cumsum())
plt.xlabel('N Dimensions')
plt.ylabel('Cumulative Variance Retained')
plt.ylim([0,1.2])
plt.xlim([len(pca100.explained_variance_ratio_.cumsum()),0])
plt.grid()
解决方案
推荐阅读
- java - 确定输入字符串是否确实是有效的四字符双精度字面量
- apache-spark - 使用 Spark Structured Streaming 从目录读取内容时如何实现一次性处理?
- wordpress - 古腾堡和经典编辑器 - 如何在经典编辑器中使用自定义古腾堡块?
- flutter - 在颤动中检测“输入键”按下
- opcode - 用于将字符串地址压入堆栈的 x86 操作码
- database - 无法在 ubuntu 上运行 Mongodb
- java - Java Web 服务数据库连接
- android - 光标位置不正确:空时编辑文本(重力:右)
- javascript - 简化简单的三元表达式
- android - 从 RecyclerView 删除项目时出现问题