WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Wie wende ich Principal Component Analysis an?

 

clustering_n00b
Forum-Century

Forum-Century


Beiträge: 129
Anmeldedatum: 05.09.11
Wohnort: ---
Version: R2011a, R2012b
     Beitrag Verfasst am: 06.10.2011, 14:14     Titel: Wie wende ich Principal Component Analysis an?
  Antworten mit Zitat      
Hallo! Smile

Ich habe eine riesen Datenmatrix (37 x 3400). Da ich darauf nicht direkt einen Clusteringalgorithmus with GMM anwenden kann, würde ich gerne zuerst PCA darauf anwenden.

Dazu habe ich mir folgende Funktion: PCA angeschaut.

Ich habe sie folgendermassen aufgerufen:
Code:
[PCcoeff, PCvec] = pca(data, 36)


Ich will die 3400 Dimensionen auf 36 herunterskalieren.
Ich bekomme als Ausgabe immer noch eine 37 x 3400 Matrix.


Was ist denn los? Question
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.10.2011, 19:26     Titel:
  Antworten mit Zitat      
Hallo,

was hält dich davon ab, die Funktion PRINCOMP aus der Statistics Toolbox zu verwenden? Die wäre auch ordentlich dokumentiert.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
clustering_n00b
Themenstarter

Forum-Century

Forum-Century


Beiträge: 129
Anmeldedatum: 05.09.11
Wohnort: ---
Version: R2011a, R2012b
     Beitrag Verfasst am: 06.10.2011, 20:33     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:

was hält dich davon ab, die Funktion PRINCOMP aus der Statistics Toolbox zu verwenden? Die wäre auch ordentlich dokumentiert.


Ich verstehe nicht wie ich daraus die Daten herauslesen kann. Entweder bekomme ich die Eigenwerte oder Eigenvektoren.

Ich brauche aber die reduzierte Datemenge?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.10.2011, 22:08     Titel:
  Antworten mit Zitat      
Hallo,

das ist, wie aus der Dokumentation hervorgeht, das zweite Rückgabeargument von PRINCOMP.

Zitat:
[COEFF,SCORE] = princomp(X) returns SCORE, the principal component scores; that is, the representation of X in the principal component space. Rows of SCORE correspond to observations, columns to components.


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
clustering_n00b
Themenstarter

Forum-Century

Forum-Century


Beiträge: 129
Anmeldedatum: 05.09.11
Wohnort: ---
Version: R2011a, R2012b
     Beitrag Verfasst am: 08.10.2011, 07:43     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
das ist, wie aus der Dokumentation hervorgeht, das zweite Rückgabeargument von PRINCOMP.


Zitat:
Component Scores. The second output, scores, contains the coordinates of the original data in the new coordinate system defined by the principal components. This output is the same size as the input data matrix.


Scores had also auch das Format 37 x 3400.
Ich will ja aber die Datenmenge reduzieren auf 37 x 36!

Wie mache ich das? Soll ich einfach die ersten 36 Spalten der Matrix nehmen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.10.2011, 11:47     Titel:
  Antworten mit Zitat      
Hallo,

kurze Antwort: ja.

längere Antwort: scores repräsentiert die Daten in den Hauptkomponenten. Wenn du scores insgesamt verwendest, gehen keine Informationen verloren, da es sich lediglich um eine Transformation handelt.
Die Hauptkomponenten sind allerdings so gewählt, dass sich in den ersten Komponenten möglichst viel Information befindet; anders gesagt: dass du möglichst wenig Information verlierst, wenn du die letzten Komponenten weglässt. Es sind also in deinem Fall die ersten 36 Hauptkomponenten bzw. Scores zu verwenden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
clustering_n00b
Themenstarter

Forum-Century

Forum-Century


Beiträge: 129
Anmeldedatum: 05.09.11
Wohnort: ---
Version: R2011a, R2012b
     Beitrag Verfasst am: 09.10.2011, 12:08     Titel:
  Antworten mit Zitat      
Vielen Dank! Very Happy

Ich sollte mir die Theorie zur PCA nochmals genauer anschauen...
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.