Hauptkomponentenanalyse -> Bestimmung der Hauptkomponenten



  • Hallo,

    ich baue mir grad eine Anwendung zur Hauptkomponentenanalyse. Bis zur Kovarianzmatrix läuft alles wunderbar.

    Anschließend verwende ich eine Math Library, die mir aus der Kovarianzmatrix die Eigenwerte berechnet.

    Zuerst dachte ich, dass die Reihenfolge der Eigenwerte die Reihenfolge der Komponente angibt. Da die Eigenwerte der Größe nach sortiert sind, dachte ich z.b. das das der letzte Eigenwert, der größte, aussagt, dass von meinen Inputwerten die letzte Komponente, die Hauptkomponente ist. Wenn ich nun meine Inputdaten vertausche, erhalte ich immer die gleichen Eigenwerte.

    Wieso sind die Eigenwerte eigentlich immer der größe nach geordnet?

    Zur Bestimmung der Hauptkomponenten müssen meiner Vermutung nach die Eigenvektoren mit ins Spiel kommen. Hat jemand eine Idee, wie ich aus den Eigenvektoren die Hauptkomponentenrangfolge bestimmen kann?

    Andreas



  • bei der hauptkomponentenanalyse werden deine ausgangsdaten in ein anderes system transformiert. die eigenwerte der kovarianzmatrix beziehen sich nicht auf die einzelnen komponenten deiner eingabevektoren (der input), sondern auf die signifikanz der merkmale im merkmalsraum, welcher durch die eigenvektoren aufgespannt wird.

    man erhält immer soviele eigenvektoren wie der input komponenten hatte. aber der "trick" bei dem ganzen ding ist gerade, dass man die vektoren mit geringer signifikanz (geringer eigenwert) rausschmeisst und die daten nur in bezug auf die eigenvektoren mit höchster signifikanz darstellt.

    geht ja darum, dass man ein objekt nicht anhand von 5000 merkmalen klassifiziert, sondern nur anhand der 3 hauptmerkmale, die durch die analyse zutage getreten sind.

    ist spät und das ganze war glaub ich bisschen wirr, vielleicht hilfts 😃



  • AndreasH schrieb:

    Wieso sind die Eigenwerte eigentlich immer der größe nach geordnet?

    Weil das z.B. eine Hauptkomponentenanalyse einfacher macht!? 😃

    Ansonsten war das von thordk garnicht so wirr. Du schmeißt einfach raus, was du für "Rauschen" hälst.



  • HI,

    mein Problem ist, dass ich nicht weiß welcher Eigenwert welchen Hauptkomponenten zuzuordnen ist. Ich weiß nur das die Eigenvektoren damit zu haben. Meine Frage ist wie ich das berechnen kann?

    Andreas



  • ich glaub da herrscht noch ein kleines verständnisproblem vor. guck dir mal den kurzen artikel auf wikipedia dazu an: http://de.wikipedia.org/wiki/Hauptkomponentenanalyse



  • Hi,

    auf der Seite habe ich ja schon sehr viel gelesen, komme da leider nicht weiter.

    neben der wikpedia seite habe ich auch noch dieses beispiel gefunden:

    http://user.uni-frankfurt.de/~grieser/germanoldcentury/pca/node3.html
    (ganz nach unten scrollen)

    die eigenwerte lauten

    ew1= 7937.275
    ew2 = 180.048
    ew3 = 37.224
    ew4 = 0.219

    die eigenvektoren sind

    ev1 = ( 0.6733 ; 0.3448 ; 0.4535 ; 0.4713)
    ev2 = (-0.6539 ; 0.2059 ; 0.0604 ; 0.7255)
    ev3 = (-0.3041 ; -0.1625 ; 0.8888 ; -0.3020)
    ev4 = (-0.1630 ; 0.9013 ; -0.0271 ; -0.4005)

    Die Eigenvektormatrix müsste dann so aussehen:

    0.6733 -0.6539 -0.3041 -0.1630
    0.3448 0.2059 -0.1625 0.9013
    0.4535 0.0604 0.8888 -0.0271
    0.4713 0.7255 -0.3020 -0.4005

    Aus der Eigenvektormatrix ergeben sich nun 4 Gleichungen, die ich alle mit X Multiplizieren. Daraus folgt nach meinem Verständnis nach Wikipedia:

    YA = 0.6733 * A * X1 + 0.3448 * A * X2 + 0.4535 * A * X3 + 0.4713 * A * X4
    YB = -0.6539 * B * X1 + 0.2059 * B * X2 + 0.0604 * B * X3 + 0.7255 * B * X4
    YC = -0.3041 * C * X1 + -0.1625 * C * X2 + 0.8888 * C * X3 + -0.3020 * C * X4
    YD = -0.1630 * D * X1 + 0.9013 * D * X2 + -0.0271 * D * X3 + -0.4005 * D * X4

    Ist das bis hierhin so richtig?

    Ab hier komme ich auch nicht weiter. Ich weiß nicht was mit der Varianz bei so einer Gleichung gemeint ist, weiß auch gar nicht, wie ich diese bei den unbekannten Variablen ausrechnen soll und wie ich nun folglich dazukomme welcher Eigenwert zu welcher Komponente gehört.

    Wäre sehr nett, wenn mich hier jemand aufklären könnte.

    Andreas



  • Hi,

    ich glaub ich habs nun verstanden. Mein letzter Beitrag enthielt auch einige Fehler. Habe aber einige Frage hierzu:

    varYA = λA

    1. Wird jede Varianz einen Eigenvektor finden? Müsste eigentlich, da ja jede Komponenten eine Gewichtung hat.

    2. Mit was für einer Abweichung müsste man rechnen? Ich denke nicht, dass die Werte genau übereinstimmen?

    Andreas



  • Hallo,

    nach einigen Tagen hänge ich nun immer noch daran, habe es bisher doch leider nicht hinbekommen:

    Meine Eigenvektormatrix lautet:

    0.6733 -0.6539 -0.3041 -0.1630
    0.3448 0.2059 -0.1625 0.9013
    0.4535 0.0604 0.8888 -0.0271
    0.4713 0.7255 -0.3020 -0.4005

    Daraus ergeben sich nun 4 Gleichungen nach Wikipedia:

    YA = 0.6733 * X1 + 0.3448 * X2 + 0.4535 * X3 + 0.4713 * X4
    YB = -0.6539 * X1 + 0.2059 * X2 + 0.0604 * X3 + 0.7255 * X4
    YC = -0.3041 * X1 + -0.1625 * X2 + 0.8888 * X3 + -0.3020 * X4
    YD = -0.1630 * X1 + 0.9013 * X2 + -0.0271 * X3 + -0.4005 * X4

    Die Hauptachsentransformation wurde nun ja bereits durchgeführt und die Achse mit der größten Varianz ist die erste Hauptkomponente.

    Leider weiß ich nicht weiter, wie ich hier die Varianz auszurechnen habe, kann mir hier noch jemand einige Hinweise geben und mir etwas auf die Sprünge helfen?

    Andreas



  • Die Varianz ist genau der Eigenwert.



  • ja, aber ich mussdoch die eigenwerte der kovarianz den Ya, Yb, Yc, Yd zuordnen. Undafür muss ich von diesen Funktionen ja die die Varianz ausrechnen, damit ich weiß welche Hauptkomponenten welchen Wert hat. Nur wie mach ich das?

    Andreas



  • so, ich habe immer noch nicht aufgegeben mit hauptkomponentenanalyse.

    es geht immer noch um das beispiel:

    http://user.uni-frankfurt.de/~grieser/germanoldcentury/pca/node3.html

    es sollen die hauptkomponenten den eigenwerten zugewiesen werden, damit ich weiß welche komponenten die größte relevanz haben.

    Daraus ergeben sich nun nach Wikipedia 4 Gleichungen:

    YA = 0.6733 * X1 + 0.3448 * X2 + 0.4535 * X3 + 0.4713 * X4
    YB = -0.6539 * X1 + 0.2059 * X2 + 0.0604 * X3 + 0.7255 * X4
    YC = -0.3041 * X1 + -0.1625 * X2 + 0.8888 * X3 + -0.3020 * X4
    YD = -0.1630 * X1 + 0.9013 * X2 + -0.0271 * X3 + -0.4005 * X4

    Für jede Gleichung haben ich nun mit der Formel hier:

    http://mathworld.wolfram.com/Variance.html (siehe ganz ganz unten)

    die Varianz berechnet. Die Varianz betrug wie es sein soll immer den Eigenwert.

    Problem ist, das Ya die größte Varianz hat, Yb die zweitgrößte, ....

    Okay, es kann ja zufall sein, dass die Komponenten bereits in richtiger Reihenfolge sind. Habe daher die erste mal mit der letzten vertauscht und dann neu berechnet.

    Leider erhalte ich wieder das gleiche Ergebnis:

    Ya die größte Varianz hat, Yb die zweitgrößte, ....

    Da kann also irgendwo was nicht stimmen. Ich weiß nun auch gar nicht mehr wo ich suchen soll, da die Berechnungen meiner Meinung nach stimmen und ich auch keine gute Literaur mit Beispiel finde.

    Hat noch jemand einen Rat?

    andreas


Log in to reply