scikit-learn kernel-PCA erklärte Varianz
Habe ich mit dem normalen PCA von scikit-learn und erhalten Sie die Varianz-Verhältnisse für jede Hauptkomponente, ohne Probleme.
pca = sklearn.decomposition.PCA(n_components=3)
pca_transform = pca.fit_transform(feature_vec)
var_values = pca.explained_variance_ratio_
Möchte ich erkunden verschiedene Kernel mit kernel-PCA und wollen auch die erklärte Varianz-Verhältnisse, aber ich bin jetzt sehen, es muss nicht dieses Attribut. Weiß jemand, wie man diese Werte?
kpca = sklearn.decomposition.KernelPCA(kernel=kernel, n_components=3)
kpca_transform = pca.fit_transform(feature_vec)
var_values = kpca.explained_variance_ratio_
AttributeError: 'KernelPCA' - Objekt hat kein Attribut 'explained_variance_ratio_'
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß, diese Frage ist alt, aber ich lief in das gleiche 'problem' und fand eine einfache Lösung, wenn ich merkte, dass die
pca.explained_variance_
ist einfach die Varianz der Komponenten. Sie können ganz einfach berechnen die erklärte Varianz (und Verhältnis), indem er:und als bonus zu den kumulierten Anteil erklärte Varianz (oft hilfreich bei der Auswahl der Komponenten und der Schätzung der Dimensionalität von Ihrem Platz):
Der Hauptgrund, K-PCA nicht
explained_variance_ratio_
ist, weil nach der kernel-transformation Ihrer Daten/Vektoren-Leben in verschiedenen bieten Platz. Daher K-PCA soll nicht interpretiert werden, wie PCA.ich war fasziniert von diesem als auch so ich habe einige Tests. unten ist mein code.
die plots zeigen, dass die erste Komponente des kernelpca ist eine bessere Diskriminator des Datensatzes. allerdings, wenn die explained_variance_ratios sind berechnet auf Basis von @EelkeSpaak Erklärung, wir sehen nur 50% der erklärten Varianz-Verhältnis nicht sinnvoll. daher neigt Sie mir Zustimmen @Krishna Kalyan Erklärung.