Ich habe einen Datensatz von Bildern, die ich nichtlineare Dimensionalitätsreduktion auf ausführen möchte. Um zu entscheiden, welche Anzahl von Ausgabedimensionen verwendet werden sollen, muss ich in der Lage sein, die beibehaltene Varianz zu finden (oder erklärte Varianz, ich glaube, dass sie ähnlich sind). Scikit-learn scheint bei weitem die beste Auswahl an vielfältigen Lernalgorithmen zu haben, aber ich sehe keine Möglichkeit, eine beibehaltene Varianzstatistik zu erhalten. Gibt es einen Teil der scikit-learn API, den ich vermisse, oder eine einfache Methode, um die beibehaltene Varianz zu berechnen?Siehe beibehaltene Varianz in scikit-learn vielfältigen Lernmethoden
Antwort
Ich glaube nicht, dass es einen sauberen Weg gibt, die "erklärte Varianz" der meisten nichtlinearen Dimensionalitäts-Techniken auf die gleiche Weise wie für PCA abzuleiten. Für PCA ist es trivial: Sie nehmen einfach das Gewicht einer Hauptkomponente in der Eigenkomposition (d. H. Ihren Eigenwert) und summieren die Gewichte derer, die Sie für die lineare Dimensionalitätsreduktion verwenden. Natürlich, wenn Sie alle Eigenvektoren behalten, dann haben Sie 100% der Varianz "erklärt" (d. H. Perfekt rekonstruiert die Kovarianzmatrix).
Nun könnte man versuchen, einen Begriff der erklärten Varianz in ähnlicher Weise für andere Techniken zu definieren, aber es hat vielleicht nicht die gleiche Bedeutung. Zum Beispiel könnten einige Dimensionalitätsreduktionsmethoden aktiv versuchen, mehr unähnliche Punkte auseinander zu schieben und am Ende mit mehr Varianz enden als das, womit wir begonnen haben. Oder viel weniger, wenn es sich entscheidet, einige Punkte eng zusammen zu gruppieren.
In vielen nichtlinearen Dimensionalitätsreduktionstechniken gibt es jedoch andere Maße, die Begriffe von "Anpassungsgüte" geben. Zum Beispiel in scikit-lernen, isomap has a reconstruction error, tsne can return its KL-divergence und MDS can return the reconstruction stress.