Numpy 解释方差计算

Numpy 解释方差计算,numpy,scikit-learn,pca,eigenvalue,Numpy,Scikit Learn,Pca,Eigenvalue,我的问题是针对具体问题的 我不明白你为什么要求平方特征值 这里 此外,除了用于计算特征向量的原始数据外,对于新转换的数据不计算方差。这不是正常的做法吗 在这种情况下,您是否也要单独计算数据Y的解释方差。为此,我认为我们必须使用第3点,而不是使用本征值 解释方差也可以通过将变换空间中每个轴的方差除以总方差来计算。有什么理由不在这里做吗 您问题的答案: 1) 散射矩阵特征值的平方根(例如XX.T)是X的奇异值(参见此处:)。所以你把它们摆正重要:初始矩阵X应居中(数据已预处理为零平均值),以保持上述

我的问题是针对具体问题的

  • 我不明白你为什么要求平方特征值 这里
  • 此外,除了用于计算特征向量的原始数据外,对于新转换的数据不计算方差。这不是正常的做法吗
  • 在这种情况下,您是否也要单独计算数据
    Y
    的解释方差。为此,我认为我们必须使用第3点,而不是使用本征值

  • 解释方差也可以通过将变换空间中每个轴的方差除以总方差来计算。有什么理由不在这里做吗

  • 您问题的答案:

    1) 散射矩阵特征值的平方根(例如XX.T)是X的奇异值(参见此处:)。所以你把它们摆正重要:初始矩阵X应居中(数据已预处理为零平均值),以保持上述结果

    2) 是的,这就是路。基于奇异值计算方差。见第1点

    3) 这是相同的,但在你描述的情况下,你必须项目的数据,然后做额外的计算。如果你只是使用特征值/奇异值来计算它,就不需要这样做(关于这两者之间的联系,请再次参见第1点)

    最后,请记住,并非每个人都真正想要投影数据。有些人只能得到特征值,然后在不投影数据的情况下立即估计解释的方差。所以这是最好的金本位方式

    编辑1:

    对编辑的第2点的回答

    不是。主成分分析是一种无监督的方法。它只转换X数据,不转换Y(标签)


    同样,可以使用特征值/奇异值或如您所说的使用投影数据(例如,估计投影数据的协方差)使用半行代码快速、轻松地计算解释的方差,然后,PC的差异将出现在对角线上。

    只是一个评论-我认为您的问题更适合链接github回购协议中的问题。如果我的答案有帮助,请告诉我。我可以扩展我对第一点的回答,但我已经发布了一个参考链接。谢谢你的回答!我更新了问题中的第2点。我想以前不清楚。你能检查一下吗。
    pca = PCA(n_components=2, svd_solver='full')
    pca.fit(X) 
    pca.transform(Y)