Ich habe eine Frage zu numpy.linalg.eig()
.Gesundheit Überprüfung der Ausgabe von Python numpy eigig() Funktion
Hier ist meine Kovarianzmatrix nach Normalisierung/Standardisierung der Daten.
lr_cov = np.cov(lr_norm, rowvar = False, ddof = 0)
lr_cov
array([[ 0.95454545, 0.88156287, 0.8601369 ],
[ 0.88156287, 0.95454545, 0.87367031],
[ 0.8601369 , 0.87367031, 0.95454545]])
Ich benutze das eig() Funktion, wie unten - keine Probleme hier.
eig_val, eig_vec = np.linalg.eig(lr_cov)
eig_vec
array([[-0.57694452, -0.6184592 , 0.53351967],
[-0.57990975, -0.14982268, -0.80078577],
[-0.57518668, 0.77140222, 0.27221115]])
eig_val
array([ 2.69815538, 0.09525935, 0.07022164])
Aber wenn ich zu Plausibilitätsprüfung ausgehen, dass (Kovarianzmatrix) * (Eigenvektor) = (Eigenwert) * (Eigen Vector), die LHS und RHS in diesem Fall passen nicht auf.
lr_cov*eig_vec
array([[-0.55071977, -0.54521067, 0.45889996],
[-0.5112269 , -0.14301256, -0.69962276],
[-0.49473928, 0.67395122, 0.25983791]])
eig_val*eig_vec
array([[-1.55668595, -0.05891402, 0.03746463],
[-1.5646866 , -0.01427201, -0.05623249],
[-1.55194302, 0.07348327, 0.01911511]])
Was mache ich falsch?
Nizza ein Warren - danke! Das hat den Trick gemacht. – skafetaur