O'Reilly 的“黑客机器学习”说,每个主成分代表方差的百分比。我已经引用了下面页面的相关部分(第 8 章,第 207 页)。与另一位专家交谈时,他们同意这是百分比。
然而,这 24 个组件的总和为 133.2095%。怎么可能?
在说服自己可以使用 PCA 之后,我们如何在 R 中做到这一点?同样,这是 R 的亮点:整个 PCA 可以在一行代码中完成。我们使用 princomp 函数来运行 PCA:
pca <- princomp(date.stock.matrix[,2:ncol(date.stock.matrix)])
如果我们只是在 R 中输入 pca,我们将看到主要组件的快速摘要:
Call: princomp(x = date.stock.matrix[, 2:ncol(date.stock.matrix)]) Standard deviations: Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7 29.1001249 20.4403404 12.6726924 11.4636450 8.4963820 8.1969345 5.5438308 Comp.8 Comp.9 Comp.10 Comp.11 Comp.12 Comp.13 Comp.14 5.1300931 4.7786752 4.2575099 3.3050931 2.6197715 2.4986181 2.1746125 Comp.15 Comp.16 Comp.17 Comp.18 Comp.19 Comp.20 Comp.21 1.9469475 1.8706240 1.6984043 1.6344116 1.2327471 1.1280913 0.9877634 Comp.22 Comp.23 Comp.24 0.8583681 0.7390626 0.4347983 24 variables and 2366 observations.
在这个总结中,标准差告诉我们数据集中有多少方差是由不同的主成分解释的。第一个分量称为 Comp.1,占方差的 29%,而下一个分量占 20%。到最后,最后一个组件 Comp.24 占方差的不到 1%。这表明我们可以通过查看第一个主成分来了解很多关于我们的数据的信息。
[代码和数据可以在github上找到。]