Picking up from where we left...
所以我可以使用linalg.eig或linalg.svd来计算主成分分析。每一个都返回不同的主成分/特征向量和特征值,当它们被输入相同的数据时(我目前正在使用Iris数据集)。
查看here或任何其他将PCA应用于Iris数据集的教程,我会发现特征值是[2.9108 0.9212 0.1474 0.0206]
。eig
方法给了我一组不同的特征值/向量,我不介意,除了这些特征值,一旦求和,等于维数(4),可以用来找出每个分量对总方差的贡献。
取linalg.eig
返回的特征值,我不能这么做。例如,返回的值是[9206.53059607 314.10307292 12.03601935 3.53031167]
。在这种情况下,方差的比例是[0.96542969 0.03293797 0.00126214 0.0003702]
。This other page说(“一个分量所解释的变化的比例只是它的特征值除以特征值之和。”)
因为每个维度解释的方差应该是恒定的(我认为),所以这些比例是错误的。所以,如果我使用svd()
返回的值,这是所有教程中使用的值,我可以从每个维度获得正确的变化百分比,但我想知道为什么eig
返回的值不能这样使用。
我假设返回的结果仍然是投影变量的有效方法,那么是否有方法对它们进行转换,以便得到每个变量解释的正确方差比例?换句话说,我是否可以使用eig
方法,并且仍然拥有每个变量的方差比例?另外,这个映射可以只在特征值上做吗,这样我就可以同时得到实特征值和规范化特征值?
抱歉,顺便说一句,这是一篇(::)
的文章。假设你不只是读了这句话。
目前没有回答
相关问题 更多 >
编程相关推荐