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.eigh für die vollständige SVD oder die ARPACK-Implementierung von scipy.sparse.linalg.eigsh fü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, siehe eigen_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 gamma None ist, wird es auf 1/n_features gesetzt.

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_components viel 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_components ausgewä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.eigh durch 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.eigsh auf. 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 von copy_X=False Speicher, 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. None bedeutet 1, es sei denn, Sie befinden sich in einem joblib.parallel_backend-Kontext. -1 bedeutet 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_components und remove_zero_eig nicht gesetzt sind, werden alle Werte gespeichert.

eigenvectors_ndarray der Form (n_samples, n_components)

Eigenvektoren der zentrierten Kernelmatrix. Wenn n_components und remove_zero_eig nicht gesetzt sind, werden alle Komponenten gespeichert.

dual_coef_ndarray der Form (n_samples, n_features)

Inverse Transformationsmatrix. Nur verfügbar, wenn fit_inverse_transform True 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_transform True ist.

X_fit_ndarray der Form (n_samples, n_features)

Die zur Anpassung des Modells verwendeten Daten. Wenn copy_X=False, dann ist X_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 X Merkmalnamen hat, die alle Zeichenketten sind.

Hinzugefügt in Version 1.0.

gamma_float

Kernelkoeffizient für rbf, poly und sigmoid Kernels. Wenn gamma explizit angegeben wird, ist dies einfach dasselbe wie gamma. Wenn gamma None ist, ist dies der tatsächliche Wert des Kernelkoeffizienten.

Hinzugefügt in Version 1.3.

Siehe auch

FastICA

Ein schneller Algorithmus für Independent Component Analysis.

IncrementalPCA

Inkrementelle Hauptkomponentenanalyse.

NMF

Non-Negative Matrix Factorization.

PCA

Principal Component Analysis.

SparsePCA

Sparse Principal Component Analysis.

TruncatedSVD

Dimensionsreduktion 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_samples die Anzahl der Stichproben und n_features die 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_samples die Anzahl der Stichproben und n_features die 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 fit gesehenen 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_transform approximiert 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 PCA zu verwenden. Im Gegensatz zu PCA rekonstruiert KernelPCAs inverse_transform nicht 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_samples die Anzahl der Stichproben und n_features die Anzahl der Merkmale ist.

Gibt zurück:
X_originalndarray von der Form (n_samples, n_features)

Ursprüngliche Daten, wobei n_samples die Anzahl der Stichproben und n_features die Anzahl der Merkmale ist.

Referenzen

Bakır, Gökhan H., Jason Weston, und Bernhard Schölkopf. „Learning to find pre-images.“ Advances in neural information processing systems 16 (2004): 449-456.

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 transform und fit_transform.

  • "default": Standardausgabeformat eines Transformers

  • "pandas": DataFrame-Ausgabe

  • "polars": Polars-Ausgabe

  • None: 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_samples die Anzahl der Stichproben und n_features die Anzahl der Merkmale ist.

Gibt zurück:
X_newndarray der Form (n_samples, n_components)

Projektion von X in die ersten Hauptkomponenten, wobei n_samples die Anzahl der Stichproben und n_components die Anzahl der Komponenten ist.