[Numpy-discussion] confusion about eigenvector

devnew@gmai... devnew@gmai...
Mon Mar 3 02:03:57 CST 2008

>Arnar wrote
> I dont know if this made anything any clearer. However, a simple
> example may be clearer:
> # X is (a ndarray, *not* matrix) column centered with vectorized images in rows
> # method 1:
> XX = dot(X, X.T)
> s, u = linalg.eigh(XX)
> reorder = s.argsort()[::-1]
> facespace = dot(X.T, u[:,reorder])

ok..this and # method 2: (ie svd()) returns same facespace ..and i can
get eigenface images

i read in some document on the topic of eigenfaces that
'Multiplying the sorted eigenvector with  face vector results in
getting the
face-space vector'
facespace=sortedeigenvectorsmatrix *  adjustedfacematrix
(when these are numpy.matrices )

that is why the confusion about transposing X inside

if  i make matrices out of  sortedeigenvectors, adjustedfacematrix
i will get facespace =sortedeigenvectorsmatrix *  adjustedfacematrix
which has a different set of elements than that obtained by
dot(X.T, u[:,reorder]).
the result differs in some scaling factor?  i couldn't get any clear
eigenface images out of this facespace:-(


More information about the Numpy-discussion mailing list