【问题标题】:Eigen Values from MatlabMatlab 中的特征值
【发布时间】:2014-07-29 19:02:27
【问题描述】:

我正在尝试找出大型数据集的特征值/特征向量以便计算 PCA。我可以计算2x23x3 等的特征值和特征向量。

问题是,我有一个包含 451x128 的数据集,我计算协方差矩阵 给了我 128x128 的值。因此,这如下所示:

A = [ [1, 2, 3, 
       2, 3, 1, 
       ..........,
       = 128]
       [5, 4, 1,
        3, 2, 1,
        2, 1, 2,
        ..........
        = 128]
      ......., 
      128]

计算 128x128 向量的特征值和向量似乎非常困难,而且 会占用大量的计算能力。但是,如果我允许 A 中的每个 是二维 (3xN),那么我可以计算协方差矩阵,这将给我一个 3x3 矩阵。

我的问题是:对于求解特征值和向量,这是一个好的还是合理的假设?像这样的:

A 是一个包含 128x451 的二维向量, foreach 块计算协方差向量的特征值和特征向量, 像这样:

Eig1 = eig(cov(A[0])) Eig2 = eig(cov(A[1]))

这会给我 128 个特征值(对于 128x128 向量内的每个块)..

如果这不正确,MATLAB 如何处理如此大的维度数据?

【问题讨论】:

  • “如果这不正确”是什么意思?并且MATLAB可以在几分之一秒内找到大方阵的特征向量和特征值..
  • @AdarshChavakula 嘿,我正在尝试创建一个算法(在 C++ 中),它可以在不使用第三方软件的情况下计算特征值和特征向量。我可以计算 2x2,@ 987654327@ 但我对如何计算大型方阵感到困惑。我不太明白 matlab 是如何做到的 - 这有意义吗?

标签: matlab vector pca svd eigenvalue


【解决方案1】:

用词

[Eigenvectors, Eigenvalues] = eig(Matrix)

【讨论】:

    【解决方案2】:

    你试过svd()

    做奇异值分解

    [U,S,V] = svd(X)
    

    UV 是正交矩阵,S 包含特征值。根据S,按降序对UV进行排序。

    【讨论】:

    • 我觉得这个问题很混乱
    • 混淆是什么意思?顺便说一句,svd 我认为 451x128 相当快。
    【解决方案3】:

    正如 kkuilla 所提到的,您可以使用原始矩阵的 SVD,因为矩阵的 SVD 与协方差矩阵的特征值和特征向量有关,如下例所示:

    A = [1 2 3; 6 5 4]; % A rectangular matrix
    X = A*A';              % The covariance matrix of A
    
    [V, D] = eig(X);       % Get the eigenvectors and eigenvalues of the covariance matrix
    [U,S,W] = svd(A);      % Get the singular values of the original matrix
    

    V 是包含特征向量的矩阵,D 包含特征值。现在,关系:

    SST ~ D

    U~V

    至于你自己的假设,我可能误读了它,但我认为它是错误的。我不明白为什么块的特征值会与整个矩阵的特征值相关;它们不会对应于相同的特征向量,因为特征向量的维数不匹配。我认为您的协方差也会有所不同,但是我并不完全清楚您是如何创建这些块的。

    至于 Matlab 是如何做到的,它确实使用了一些技巧。也许下面的链接可能会提供信息(尽管它可能有点旧)。我相信他们使用(或使用)LAPACK 和 QZ 分解来获得中间值。

    https://au.mathworks.com/company/newsletters/articles/matlab-incorporates-lapack.html

    【讨论】:

      猜你喜欢
      • 2011-03-18
      • 2018-12-30
      • 1970-01-01
      • 1970-01-01
      • 2011-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多