Wie geht eine Hauptkomponentenanalyse mit Python?

1 Antwort

Vom Beitragsersteller als hilfreich ausgezeichnet

Du führst erst eine Singular Value Decomposition (SVD) durch mittels beispielsweise SciPi oder numpy.

X = USV^T;

Daraus kannst du dann die Kovarianzmatrix bilden:

XX^T = US²U^T

Siehe auch:

https://math.stackexchange.com/questions/3869/what-is-the-intuitive-relationship-between-svd-and-pca

P.S.: Evtl. haben numpy oder SciPi sogar schon fertige Funktionen um die hauptachsenzerlegung zu bestimmen.


Inkognito-Nutzer   18.02.2025, 20:48

Habe ich so gemacht und habe mit sklearn ein PAckage gefunden, dass PCA beinhaltet. Leider verstehe ich das Ergebnis nicht. Schade auch. Mal gucken, was man noch tun kann.

Inkognito-Nutzer   19.02.2025, 13:31
@Destranix

Naja ich habe ein paar tausend Graphen, bei denen ich besondere x-Werte finden wollte, die für den Verlauf entscheidend sind. Und ich dachte, da bekomme ich Werte heraus, die ich auch selbst sehen kann. (Denn es gibt Werte in der Kurve, da kann ich sehen, okay, hier liegen bei ganz vielen Graphen Wendepunkte vor). Aber die gefundenen Werte liegen alle da wo einfach nur linearer Anstieg stattfindet.

Destranix  19.02.2025, 13:42
@Inkognito-Beitragsersteller

Dann möchtest du keine Hauptkomponentenanalyse sondern eine Ähnlichkeitsanalyse.

Die Hauptkomponenten sagen dir ja quasi nur, in welcher Richtung Daten wie stark verteilt sind.
Das würde dir dann ja nur umkehert vielleicht etwwas bringen, idem du die Richtungen wählst, in denen am wenigsten Streuung geschieht.

Du willst aber wohl eher die Graphen vergleichen und Gemeinsamkeiten finden. Da wäre wohl "Curve Fitting" das, was du suchst.
Wobei das wahrscheinlich auch nicht ganz passt, aber von da kommst du wahrscheinlich eher an dein Ziel würde ich vermuten.

Inkognito-Nutzer   19.02.2025, 21:31
@Destranix

Was genau ist das beste?

Destranix  20.02.2025, 09:05
@Inkognito-Beitragsersteller

Das weiß ich nicht, da gibt es diverse. ich würde erst einmal irgendein Curve Fitting nehmen, da sleicht zugünglich ist, und schauen, ob das überhaupt tut,w as du willst.