[SciPy-user] Sparse v. dense matrix, SVD and LSI-like analysis
Travis Oliphant
oliphant at ee.byu.edu
Wed Nov 17 13:53:43 CST 2004
Nick Arnett wrote:
> Robert Kern wrote:
>
>> An SVD is not the same as an eigen decomposition.
>>
>> http://mathworld.wolfram.com/EigenDecomposition.html
>> http://mathworld.wolfram.com/SingularValueDecomposition.html
>
>
> That dawned on me not too long after posting. Fuzzy brain this week,
> a birth and a death in the family a few days apart.
>
>> In any case, all of the linalg.* functions only operate on dense
>> arrays, not sparse matrices.
>
>
> Ummm, now I'm thinking I'm in over my head. SVD is a matrix operation
> isn't it? I was imagining that an array of mostly zeros would be the
> equivalent of a sparse matrix, so that SVD would apply to it for what
> I'm doing, which is related to latent semantic analysis.
The SVD of A is constructed using the eigen decompostion of A A^H and
A^H A which have the same real-valued eigenvalues (though one may have
some zero-valued eigenvalues the other doesn't) and unitary eigenvector
matrices: The decompostion provides
A = U D V^H where U U^H =I and V V^H = I
so that
AA^H = U D^2 U^H
and
A^H A = V D^2 V^H
showing that
U are the eigenvectors of A A^H corresponding to non-zero eigenvalues
V are the eigenvectors of A^H A corresponding to non-zero eigenvalues
D^2 are the non-zero eigenvalues of both
So, while the SVD is not an eigenvector decomposition it is related to one.
-Travis
More information about the SciPy-user
mailing list