1

Ich verwende sklearn in Python, um Hauptkomponentenanalyse zu tun.Berechnen Sie die Daten verloren zwischen Original-Datensatz und transformierte mit PCA

Eine meiner Intentionen ist es, ein 4-Komponenten-Modell, ein anderes mit 8 zu generieren und beide mit den ursprünglichen Daten zu vergleichen, indem inverse_transform verwendet wird.

Der Code ist so etwas wie dieses:

pca4 = PCA(n_components=4) 
pca4.fit(parkinsonData) 
scores4=pca.transform(parkinsonData) 
reconstruct4=pca.inverse_transform(scores4) 

Um die Differenz zwischen Originaldaten zu berechnen und den Wiederaufbau ich getan habe:

differenceMatrix=parkinsonData-reconstruct4 

Jetzt habe ich die Unterschiede, aber ich möchte berechnen die verlorenen Daten respektieren den ursprünglichen Datensatz. Um dies zu tun, möchte ich den Mittelwert der Differenzen zwischen jedem Element des ursprünglichen Datensatzes und dem rekonstruierten Datensatz berechnen.

In der letzten Anweisung berechne ich die Unterschiede zwischen jedem Element des ursprünglichen Datensatzes und dem rekonstruierten, aber jetzt muss ich die Leistung berechnen. Ich weiß nicht, wie dies zu tun, denn wenn ich benutze:

power=differenceMatrix** 

ich eine Fehlermeldung erhalten: Diese Matrix nicht quadratisch ist.

das ich

np.power(differenceMatrix,differenceMatrix) 

Es funktioniert, aber einige Elemente sind NAN verwenden zu lösen. Ich verstehe, dass es an der fehlenden quadratischen Form liegt.

Wer weiß, wie dies zu lösen ist, und berechnen Sie die Daten verloren zwischen Original-Datensatz und transformiert mit PCA?

Vielen Dank.

Antwort

2

Um Platz (ich denke, das ist, was man mit „von 2 angetrieben“ bedeuten) jedes Element der Matrix, zu verwenden:

np.square(differenceMatrix) 

Dies funktioniert elementweise und schränken Sie nicht auf Matrizen von quadratischer Form . NaNs in der Matrix werden als NaN in der Ausgabe zurückgegeben.

+0

Das war die Lösung. Dank @acidtobi – Maik

Verwandte Themen