【发布时间】:2016-10-11 21:21:20
【问题描述】:
我正在尝试学习如何减少数据集中的维度。我在Principle Component Analysis 和Singular Value Decomposition 上看到了一些教程。我知道它采用最大方差的维度并依次折叠下一个最高方差的维度(过于简化)。
我对如何解释输出矩阵感到困惑。我查看了文档,但没有太大帮助。我遵循了一些教程,并不太确定生成的矩阵到底是什么。我提供了一些代码来了解数据集中每个变量的分布 (sklearn.datasets)。
我的初始输入数组是n samples 和m attributes 的(n x m) 矩阵。我可以绘制 PC1 与 PC2 的普通 PCA 图,但我如何知道每台 PC 代表哪些维度?
抱歉,这是一个基本问题。很多资源都非常数学,我很好,但更直观的答案会很有用。没有我见过的关于如何根据原始标记数据解释输出的地方。
我愿意使用sklearn的decomposition.PCA
#Singular Value Decomposition
U, s, V = np.linalg.svd(X, full_matrices=True)
print(U.shape, s.shape, V.shape, sep="\n")
(442, 442)
(10,)
(10, 10)
【问题讨论】:
-
您可以参考此 pdf 和 stackoverflow 答案以获得直觉。几天前我也读过它们,它们对我来说就像圣经。 cs.otago.ac.nz/cosc453/student_tutorials/…
-
Jonathan Shlens' PCA tutorial 是最好的之一。
标签: python machine-learning linear-algebra pca svd