[Numpy-discussion] confusion about eigenvector

Matthieu Brucher matthieu.brucher at gmail.com
Thu Feb 28 07:06:10 EST 2008


OK, what you are getting are not the eigenvectors of you data, but the
eigenvectors of the transposition of your data (I suppose).
You have two options :
- either you make an eigen analysis of your data and get 12 eigenvectors
- either you make an eigen analysis of the transposition of your data and
then you must get the 4 eignevectors into your original space (I don't
remember the exact equations to do thge latter).

Matthieu

2008/2/28, devnew at gmail.com <devnew at gmail.com>:
>
>
>
> On Feb 28, 1:27 pm, "Matthieu Brucher"  wrote
>
> > If your images are 4x3, your eigenvector must be 12 long.
>
>
> hi
> thanx for reply
> i am using 4 images each of size 4X3
> the covariance matrix  obtained from adjfaces*faces_trans is 4X4 in
> size and that produces the evalues and eigenvectors given here
> evalues,evect=eigh(covarmat)



i will give the data i used
>
> facemat (ndarray from data of 4 images each4X3)
> [[ 173.   87.   88.  163.  167.   72.   75.  159.  170.  101.   88.
> 165.]
>   [ 158.  103.  115.  152.  138.   58.   81.  153.  126.   68.   73.
> 143.]
>   [ 180.   87.  107.  180.  167.   65.   86.  182.  113.   41.   55.
> 143.]
>   [ 155.  117.  128.  147.  147.   70.   93.  146.  153.   65.   93.
> 155.]]
> avgvals
> [ 166.5    98.5   109.5   160.5   154.75   66.25   83.75  160.
> 140.5
>    68.75   77.25  151.5 ]
>
> adjfaces=matrix(facemat-avgvals)
> [[  6.5  -11.5  -21.5    2.5   12.25   5.75  -8.75  -1.    29.5
> 32.25
>    10.75  13.5 ]
>   [ -8.5    4.5    5.5   -8.5  -16.75  -8.25  -2.75  -7.   -14.5
> -0.75
>    -4.25  -8.5 ]
>   [ 13.5  -11.5   -2.5   19.5   12.25  -1.25   2.25  22.   -27.5
> -27.75
>   -22.25  -8.5 ]
>   [-11.5   18.5   18.5  -13.5   -7.75   3.75   9.25 -14.    12.5
> -3.75
>    15.75   3.5 ]]
>
> faces_trans =adjfaces.transpose()
> [[  6.5   -8.5   13.5  -11.5 ]
>   [-11.5    4.5  -11.5   18.5 ]
>   [-21.5    5.5   -2.5   18.5 ]
>   [  2.5   -8.5   19.5  -13.5 ]
>   [ 12.25 -16.75  12.25  -7.75]
>   [  5.75  -8.25  -1.25   3.75]
>   [ -8.75  -2.75   2.25   9.25]
>   [ -1.    -7.    22.   -14.  ]
>   [ 29.5  -14.5  -27.5   12.5 ]
>   [ 32.25  -0.75 -27.75  -3.75]
>   [ 10.75  -4.25 -22.25  15.75]
>   [ 13.5   -8.5   -8.5    3.5 ]]
> covarmat =adjfaces * faces_trans
> [[ 3111.8125 -1080.4375 -1636.4375  -394.9375]
>   [-1080.4375   901.3125  -114.6875   293.8125]
>   [-1636.4375  -114.6875  3435.3125 -1684.1875]
>   [ -394.9375   293.8125 -1684.1875  1785.3125]]
>
> evalues,evectors=eigh(covarmat)
>
> evalues
> [ -1.85852801e-13   6.31143639e+02   3.31182765e+03   5.29077871e+03]
>
> evectors
>
> [[ 0.5        -0.06727772  0.6496399  -0.56871936]
>   [ 0.5        -0.77317718 -0.37697426  0.10043632]
>   [ 0.5         0.27108233  0.31014514  0.76179023]
>   [ 0.5         0.56937257 -0.58281078 -0.29350719]]
>
> newevectmatrix
>
> [[-0.56871936  0.6496399  -0.06727772  0.5       ]
>   [ 0.10043632 -0.37697426 -0.77317718  0.5       ]
>   [ 0.76179023  0.31014514  0.27108233  0.5       ]
>   [-0.29350719 -0.58281078  0.56937257  0.5       ]]
>
>
> i am not getting the eigenvector of length 12 as you said
> pls tell me if i am doing sthing wrong
>
> D
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion at scipy.org
> http://projects.scipy.org/mailman/listinfo/numpy-discussion
>



-- 
French PhD student
Website : http://matthieu-brucher.developpez.com/
Blogs : http://matt.eifelle.com and http://blog.developpez.com/?blog=92
LinkedIn : http://www.linkedin.com/in/matthieubrucher
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20080228/724b3eca/attachment.html>


More information about the NumPy-Discussion mailing list