KernelPCA#
- class sklearn.decomposition.KernelPCA(n_components=None, *, kernel='linear', gamma=None, degree=3, coef0=1, kernel_params=None, alpha=1.0, fit_inverse_transform=False, eigen_solver='auto', tol=0, max_iter=None, iterated_power='auto', remove_zero_eig=False, random_state=None, copy_X=True, n_jobs=None)[Quelle]#
Kernel Hauptkomponentenanalyse (KPCA).
Nichtlineare Dimensionsreduktion durch die Verwendung von Kernels [1], siehe auch Metriken, Affinitäten und Kerne für Paare.
Es wird die LAPACK-Implementierung von
scipy.linalg.eighfür die vollständige SVD oder die ARPACK-Implementierung vonscipy.sparse.linalg.eigshfür die abgeschnittene SVD verwendet, abhängig von der Form der Eingabedaten und der Anzahl der zu extrahierenden Komponenten. Es kann auch eine randomisierte abgeschnittene SVD nach der Methode von [3] verwendet werden, sieheeigen_solver.Ein Anwendungsbeispiel und ein Vergleich zwischen Principal Component Analysis (PCA) und seiner kernelisierten Version (KPCA) finden Sie unter Kernel PCA.
Ein Anwendungsbeispiel für die Bildentrauschung mit KPCA finden Sie unter Bildentrauschung mit Kernel PCA.
Weitere Informationen finden Sie im Benutzerhandbuch.
- Parameter:
- n_componentsint, default=None
Anzahl der Komponenten. Wenn None, werden alle Nicht-Null-Komponenten beibehalten.
- kernel{‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘cosine’, ‘precomputed’} oder aufrufbar, Standard=‘linear’
Kernel für PCA verwendet.
- gammafloat, Standard=None
Kernelkoeffizient für rbf, poly und sigmoid Kernels. Von anderen Kernels ignoriert. Wenn
gammaNoneist, wird es auf1/n_featuresgesetzt.- degreefloat, Standard=3
Grad für poly Kernels. Von anderen Kernels ignoriert.
- coef0float, Standard=1
Unabhängiger Term in poly und sigmoid Kernels. Von anderen Kernels ignoriert.
- kernel_paramsdict, Standard=None
Parameter (Schlüsselwortargumente) und Werte für den als aufrufbaren Objekt übergebenen Kernel. Von anderen Kernels ignoriert.
- alphafloat, default=1.0
Hyperparameter der Ridge-Regression, die die inverse Transformation lernt (wenn fit_inverse_transform=True).
- fit_inverse_transformbool, Standard=False
Lernt die inverse Transformation für nicht-vorkompilierte Kernels (d.h. lernt, das Urbild eines Punkts zu finden). Diese Methode basiert auf [2].
- eigen_solver{‘auto’, ‘dense’, ‘arpack’, ‘randomized’}, Standard=‘auto’
Wählt den zu verwendenden Eigensolver. Wenn
n_componentsviel kleiner ist als die Anzahl der Trainingsstichproben, kann „randomized“ (oder in geringerem Maße „arpack“) effizienter sein als der dichte Eigensolver. Randomized SVD wird nach der Methode von Halko et al. durchgeführt [3].- auto
Der Solver wird nach einer Standardrichtlinie basierend auf n_samples (der Anzahl der Trainingsstichproben) und
n_componentsausgewählt: Wenn die Anzahl der zu extrahierenden Komponenten kleiner als 10 ist (strikt) und die Anzahl der Stichproben größer als 200 ist (strikt), wird die Methode ‚arpack‘ aktiviert. Andernfalls wird die exakte vollständige Eigenwertzerlegung berechnet und anschließend optional abgeschnitten (Methode ‚dense‘).- dense
führt eine exakte vollständige Eigenwertzerlegung mit dem Standard-LAPACK-Solver über
scipy.linalg.eighdurch und wählt die Komponenten durch Nachbearbeitung aus.- arpack
führt eine SVD mit einer Begrenzung auf n_components durch und ruft den ARPACK-Solver über
scipy.sparse.linalg.eigshauf. Erfordert strikt 0 < n_components < n_samples- randomized
führt eine randomisierte SVD nach der Methode von Halko et al. durch [3]. Die aktuelle Implementierung wählt Eigenwerte basierend auf ihrem Betrag aus. Daher kann die Verwendung dieser Methode zu unerwarteten Ergebnissen führen, wenn der Kernel nicht positiv semidefinit ist. Siehe auch [4].
Geändert in Version 1.0:
'randomized'wurde hinzugefügt.- tolfloat, Standard=0
Konvergenztoleranz für arpack. Wenn 0, wird der optimale Wert von arpack gewählt.
- max_iterint, Standard=None
Maximale Anzahl von Iterationen für arpack. Wenn None, wird der optimale Wert von arpack gewählt.
- iterated_powerint >= 0, oder ‘auto’, Standard=‘auto’
Anzahl der Iterationen für die Potenzmethode, die mit svd_solver == ‘randomized‘ berechnet wird. Wenn ‚auto‘, wird sie auf 7 gesetzt, wenn
n_components < 0.1 * min(X.shape), andernfalls auf 4.Hinzugefügt in Version 1.0.
- remove_zero_eigbool, Standard=False
Wenn True, werden alle Komponenten mit Null-Eigenwerten entfernt, sodass die Anzahl der Komponenten in der Ausgabe kleiner als n_components sein kann (und manchmal aufgrund numerischer Instabilität sogar Null). Wenn n_components None ist, wird dieser Parameter ignoriert und Komponenten mit Null-Eigenwerten werden unabhängig davon entfernt.
- random_stateint, RandomState-Instanz oder None, default=None
Wird verwendet, wenn
eigen_solver== ‚arpack‘ oder ‚randomized‘. Geben Sie eine Ganzzahl für reproduzierbare Ergebnisse über mehrere Funktionsaufrufe hinweg an. Siehe Glossar.Hinzugefügt in Version 0.18.
- copy_Xbool, Standardwert=True
Wenn True, wird die Eingabe X kopiert und vom Modell im Attribut
X_fit_gespeichert. Wenn keine weiteren Änderungen an X vorgenommen werden, spart das Setzen voncopy_X=FalseSpeicher, indem eine Referenz gespeichert wird.Hinzugefügt in Version 0.18.
- n_jobsint, default=None
Die Anzahl der parallelen Jobs, die ausgeführt werden sollen.
Nonebedeutet 1, es sei denn, Sie befinden sich in einemjoblib.parallel_backend-Kontext.-1bedeutet die Verwendung aller Prozessoren. Siehe Glossar für weitere Details.Hinzugefügt in Version 0.18.
- Attribute:
- eigenvalues_ndarray der Form (n_components,)
Eigenwerte der zentrierten Kernelmatrix in absteigender Reihenfolge. Wenn
n_componentsundremove_zero_eignicht gesetzt sind, werden alle Werte gespeichert.- eigenvectors_ndarray der Form (n_samples, n_components)
Eigenvektoren der zentrierten Kernelmatrix. Wenn
n_componentsundremove_zero_eignicht gesetzt sind, werden alle Komponenten gespeichert.- dual_coef_ndarray der Form (n_samples, n_features)
Inverse Transformationsmatrix. Nur verfügbar, wenn
fit_inverse_transformTrue ist.- X_transformed_fit_ndarray der Form (n_samples, n_components)
Projektion der gefitteten Daten auf die Kernel-Hauptkomponenten. Nur verfügbar, wenn
fit_inverse_transformTrue ist.- X_fit_ndarray der Form (n_samples, n_features)
Die zur Anpassung des Modells verwendeten Daten. Wenn
copy_X=False, dann istX_fit_eine Referenz. Dieses Attribut wird für die Aufrufe von transform verwendet.- n_features_in_int
Anzahl der während des fits gesehenen Merkmale.
Hinzugefügt in Version 0.24.
- feature_names_in_ndarray mit Form (
n_features_in_,) Namen der während fit gesehenen Merkmale. Nur definiert, wenn
XMerkmalnamen hat, die alle Zeichenketten sind.Hinzugefügt in Version 1.0.
- gamma_float
Kernelkoeffizient für rbf, poly und sigmoid Kernels. Wenn
gammaexplizit angegeben wird, ist dies einfach dasselbe wiegamma. WenngammaNoneist, ist dies der tatsächliche Wert des Kernelkoeffizienten.Hinzugefügt in Version 1.3.
Siehe auch
FastICAEin schneller Algorithmus für Independent Component Analysis.
IncrementalPCAInkrementelle Hauptkomponentenanalyse.
NMFNon-Negative Matrix Factorization.
PCAPrincipal Component Analysis.
SparsePCASparse Principal Component Analysis.
TruncatedSVDDimensionsreduktion mittels abgeschnittener SVD.
Referenzen
Beispiele
>>> from sklearn.datasets import load_digits >>> from sklearn.decomposition import KernelPCA >>> X, _ = load_digits(return_X_y=True) >>> transformer = KernelPCA(n_components=7, kernel='linear') >>> X_transformed = transformer.fit_transform(X) >>> X_transformed.shape (1797, 7)
- fit(X, y=None)[Quelle]#
Passt das Modell anhand von Daten in X an.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Trainingsvektor, wobei
n_samplesdie Anzahl der Stichproben undn_featuresdie Anzahl der Merkmale ist.- yIgnoriert
Wird nicht verwendet, ist aber aus Gründen der API-Konsistenz per Konvention vorhanden.
- Gibt zurück:
- selfobject
Gibt die Instanz selbst zurück.
- fit_transform(X, y=None, **params)[Quelle]#
Passt das Modell anhand von Daten in X an und transformiert X.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Trainingsvektor, wobei
n_samplesdie Anzahl der Stichproben undn_featuresdie Anzahl der Merkmale ist.- yIgnoriert
Wird nicht verwendet, ist aber aus Gründen der API-Konsistenz per Konvention vorhanden.
- **paramskwargs
Parameter (Stichwortargumente) und Werte, die an die fit_transform-Instanz übergeben werden.
- Gibt zurück:
- X_newndarray der Form (n_samples, n_components)
Transformierte Werte.
- get_feature_names_out(input_features=None)[Quelle]#
Holt die Ausgabemerkmale für die Transformation.
Die Feature-Namen werden mit dem kleingeschriebenen Klassennamen präfixiert. Wenn der Transformer z.B. 3 Features ausgibt, dann sind die Feature-Namen:
["klassenname0", "klassenname1", "klassenname2"].- Parameter:
- input_featuresarray-like von str oder None, default=None
Wird nur verwendet, um die Feature-Namen mit den in
fitgesehenen Namen zu validieren.
- Gibt zurück:
- feature_names_outndarray von str-Objekten
Transformierte Merkmalnamen.
- get_metadata_routing()[Quelle]#
Holt das Metadaten-Routing dieses Objekts.
Bitte prüfen Sie im Benutzerhandbuch, wie der Routing-Mechanismus funktioniert.
- Gibt zurück:
- routingMetadataRequest
Ein
MetadataRequest, der Routing-Informationen kapselt.
- get_params(deep=True)[Quelle]#
Holt Parameter für diesen Schätzer.
- Parameter:
- deepbool, default=True
Wenn True, werden die Parameter für diesen Schätzer und die enthaltenen Unterobjekte, die Schätzer sind, zurückgegeben.
- Gibt zurück:
- paramsdict
Parameternamen, zugeordnet ihren Werten.
- inverse_transform(X)[Quelle]#
Transformiert X zurück in den ursprünglichen Raum.
inverse_transformapproximiert die inverse Transformation mithilfe eines gelernten Urbilds. Das Urbild wird durch Kernel-Ridge-Regression der Originaldaten auf ihre niedrigdimensionalen Repräsentationsvektoren gelernt.Hinweis
Wenn Benutzer eine inverse Transformation für den ‚linear‘-Kernel berechnen möchten, wird empfohlen, stattdessen
PCAzu verwenden. Im Gegensatz zuPCArekonstruiertKernelPCAsinverse_transformnicht den Mittelwert der Daten, wenn der ‚linear‘-Kernel verwendet wird, aufgrund der Verwendung eines zentrierten Kernels.- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_components)
Trainingsvektor, wobei
n_samplesdie Anzahl der Stichproben undn_featuresdie Anzahl der Merkmale ist.
- Gibt zurück:
- X_originalndarray von der Form (n_samples, n_features)
Ursprüngliche Daten, wobei
n_samplesdie Anzahl der Stichproben undn_featuresdie Anzahl der Merkmale ist.
Referenzen
- set_output(*, transform=None)[Quelle]#
Ausgabecontainer festlegen.
Siehe Einführung in die set_output API für ein Beispiel zur Verwendung der API.
- Parameter:
- transform{“default”, “pandas”, “polars”}, default=None
Konfiguriert die Ausgabe von
transformundfit_transform."default": Standardausgabeformat eines Transformers"pandas": DataFrame-Ausgabe"polars": Polars-AusgabeNone: Die Transformationskonfiguration bleibt unverändert
Hinzugefügt in Version 1.4: Die Option
"polars"wurde hinzugefügt.
- Gibt zurück:
- selfestimator instance
Schätzer-Instanz.
- set_params(**params)[Quelle]#
Setzt die Parameter dieses Schätzers.
Die Methode funktioniert sowohl bei einfachen Schätzern als auch bei verschachtelten Objekten (wie
Pipeline). Letztere haben Parameter der Form<component>__<parameter>, so dass es möglich ist, jede Komponente eines verschachtelten Objekts zu aktualisieren.- Parameter:
- **paramsdict
Schätzer-Parameter.
- Gibt zurück:
- selfestimator instance
Schätzer-Instanz.
- transform(X)[Quelle]#
Transformiert X.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Trainingsvektor, wobei
n_samplesdie Anzahl der Stichproben undn_featuresdie Anzahl der Merkmale ist.
- Gibt zurück:
- X_newndarray der Form (n_samples, n_components)
Projektion von X in die ersten Hauptkomponenten, wobei
n_samplesdie Anzahl der Stichproben undn_componentsdie Anzahl der Komponenten ist.