KernelRidge#
- class sklearn.kernel_ridge.KernelRidge(alpha=1, *, kernel='linear', gamma=None, degree=3, coef0=1, kernel_params=None)[Quellcode]#
Kernel-Regressionsanalyse.
Kernel Ridge Regression (KRR) kombiniert Ridge Regression (lineare Kleinste-Quadrate-Regression mit L2-Norm-Regularisierung) mit dem Kernel-Trick. Sie lernt somit eine lineare Funktion im durch den jeweiligen Kernel und die Daten induzierten Raum. Für nicht-lineare Kernel entspricht dies einer nicht-linearen Funktion im ursprünglichen Raum.
Die Form des von KRR gelernten Modells ist identisch mit der von Support Vector Regression (SVR). Es werden jedoch unterschiedliche Verlustfunktionen verwendet: KRR verwendet den quadratischen Fehlerverlust, während Support Vector Regression den epsilon-insensitiven Verlust verwendet, beide kombiniert mit L2-Regularisierung. Im Gegensatz zu SVR kann das Anpassen eines KRR-Modells in geschlossener Form erfolgen und ist typischerweise schneller für mittelgroße Datensätze. Andererseits ist das gelernte Modell nicht-sparse und daher bei der Vorhersage langsamer als SVR, das bei epsilon > 0 ein nicht-sparse Modell lernt.
Dieser Schätzer unterstützt eingebaut multivariates Regressionsmodelling (d. h. wenn y ein 2D-Array der Form [n_samples, n_targets] ist).
Mehr dazu im Benutzerhandbuch.
- Parameter:
- alphafloat oder array-ähnlich der Form (n_targets,), Standardwert=1.0
Regulierungsstärke; muss ein positiver float sein. Regularisierung verbessert die Konditionierung des Problems und reduziert die Varianz der Schätzungen. Größere Werte spezifizieren stärkere Regularisierung. Alpha entspricht
1 / (2C)in anderen linearen Modellen wieLogisticRegressionoderLinearSVC. Wenn ein Array übergeben wird, werden die Strafen als spezifisch für die Ziele angenommen. Daher müssen sie in der Anzahl übereinstimmen. Siehe Ridge Regression und Klassifikation für die Formel.- kernelstr oder aufrufbar, Standardwert=”linear”
Intern verwendete Kernelabbildung. Dieser Parameter wird direkt an
pairwise_kernelsübergeben. Wennkernelein String ist, muss es eine der Metriken inpairwise.PAIRWISE_KERNEL_FUNCTIONSoder „precomputed“ sein. Wennkernel„precomputed“ ist, wird X als Kernelmatrix angenommen. Alternativ, wennkerneleine aufrufbare Funktion ist, wird sie für jedes Paar von Instanzen (Zeilen) aufgerufen und der resultierende Wert aufgezeichnet. Die aufrufbare Funktion sollte zwei Zeilen aus X als Eingabe nehmen und den entsprechenden Kernelwert als einzelne Zahl zurückgeben. Das bedeutet, dass aufrufbare Funktionen aussklearn.metrics.pairwisenicht erlaubt sind, da sie auf Matrizen und nicht auf einzelnen Stichproben operieren. Verwenden Sie stattdessen den String, der den Kernel identifiziert.- gammafloat, Standard=None
Gamma-Parameter für die RBF-, Laplace-, Polynom-, exponentielle Chi2- und Sigmoid-Kernel. Die Interpretation des Standardwerts ist dem Kernel überlassen; siehe Dokumentation für sklearn.metrics.pairwise. Von anderen Kerneln ignoriert.
- degreefloat, Standard=3
Grad des Polynom-Kernels. Ignoriert von anderen Kerneln.
- coef0float, Standard=1
Null-Koeffizient für Polynom- und Sigmoid-Kernel. Ignoriert von anderen Kerneln.
- kernel_paramsdict, Standard=None
Zusätzliche Parameter (Keyword-Argumente) für die als aufrufbare Funktion übergebene Kernel-Funktion.
- Attribute:
- dual_coef_ndarray der Form (n_samples,) oder (n_samples, n_targets)
Darstellung des/der Gewichtsvektor(en) im Kernelraum.
- X_fit_{ndarray, sparse matrix} der Form (n_samples, n_features)
Trainingsdaten, die auch für die Vorhersage benötigt werden. Wenn kernel == „precomputed“, ist dies stattdessen die vortrainierte Trainingsmatrix der Form (n_samples, n_samples).
- 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.
Siehe auch
sklearn.gaussian_process.GaussianProcessRegressorGaussian Process Regressor, der automatisches Tuning der Kernel-Hyperparameter und Vorhersageunsicherheiten bietet.
sklearn.linear_model.RidgeLineare Ridge-Regression.
sklearn.linear_model.RidgeCVRidge-Regression mit integrierter Kreuzvalidierung.
sklearn.svm.SVRSupport Vector Regression, die eine große Vielfalt von Kerneln akzeptiert.
Referenzen
Kevin P. Murphy „Machine Learning: A Probabilistic Perspective“, The MIT Press, Kapitel 14.4.3, S. 492-493
Beispiele
>>> from sklearn.kernel_ridge import KernelRidge >>> import numpy as np >>> n_samples, n_features = 10, 5 >>> rng = np.random.RandomState(0) >>> y = rng.randn(n_samples) >>> X = rng.randn(n_samples, n_features) >>> krr = KernelRidge(alpha=1.0) >>> krr.fit(X, y) KernelRidge(alpha=1.0)
- fit(X, y, sample_weight=None)[Quellcode]#
Trainiert das Kernel Ridge-Regressionsmodell.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Trainingsdaten. Wenn kernel == „precomputed“, ist dies stattdessen eine vortrainierte Kernelmatrix der Form (n_samples, n_samples).
- yarray-like der Form (n_samples,) oder (n_samples, n_targets)
Zielwerte.
- sample_weightfloat oder array-ähnlich der Form (n_samples,), Standard=None
Individuelle Gewichte für jede Stichprobe, ignoriert, wenn None übergeben wird.
- Gibt zurück:
- selfobject
Gibt die Instanz selbst zurück.
- get_metadata_routing()[Quellcode]#
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)[Quellcode]#
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.
- predict(X)[Quellcode]#
Vorhersagen mit dem Kernel Ridge-Modell.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Stichproben. Wenn kernel == „precomputed“, ist dies stattdessen eine vortrainierte Kernelmatrix der Form = [n_samples, n_samples_fitted], wobei n_samples_fitted die Anzahl der Stichproben ist, die für dieses Schätzer-Training verwendet wurden.
- Gibt zurück:
- Cndarray der Form (n_samples,) oder (n_samples, n_targets)
Gibt vorhergesagte Werte zurück.
- score(X, y, sample_weight=None)[Quellcode]#
Gibt den Bestimmtheitskoeffizienten auf Testdaten zurück.
Der Bestimmtheitskoeffizient, \(R^2\), ist definiert als \((1 - \frac{u}{v})\), wobei \(u\) die Summe der quadrierten Residuen
((y_true - y_pred)** 2).sum()und \(v\) die gesamte Summe der quadrierten Abweichungen vom Mittelwert((y_true - y_true.mean()) ** 2).sum()ist. Der beste mögliche Score ist 1.0 und er kann negativ sein (da das Modell beliebig schlechter sein kann). Ein konstantes Modell, das immer den Erwartungswert vonyvorhersagt, unabhängig von den Eingabemerkmalen, würde einen \(R^2\)-Score von 0.0 erzielen.- Parameter:
- Xarray-like der Form (n_samples, n_features)
Teststichproben. Für einige Schätzer kann dies eine vorab berechnete Kernelmatrix oder eine Liste von generischen Objekten sein, stattdessen mit der Form
(n_samples, n_samples_fitted), wobein_samples_fitteddie Anzahl der für die Anpassung des Schätzers verwendeten Stichproben ist.- yarray-like der Form (n_samples,) oder (n_samples, n_outputs)
Wahre Werte für
X.- sample_weightarray-like der Form (n_samples,), Standardwert=None
Stichprobengewichte.
- Gibt zurück:
- scorefloat
\(R^2\) von
self.predict(X)bezogen aufy.
Anmerkungen
Der \(R^2\)-Score, der beim Aufruf von
scoreauf einem Regressor verwendet wird, nutzt ab Version 0.23multioutput='uniform_average', um konsistent mit dem Standardwert vonr2_scorezu bleiben. Dies beeinflusst diescore-Methode aller multivariaten Regressoren (außerMultiOutputRegressor).
- set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') KernelRidge[Quellcode]#
Konfiguriert, ob Metadaten für die
fit-Methode angefordert werden sollen.Beachten Sie, dass diese Methode nur relevant ist, wenn dieser Schätzer als Unter-Schätzer innerhalb eines Meta-Schätzers verwendet wird und Metadaten-Routing mit
enable_metadata_routing=Trueaktiviert ist (siehesklearn.set_config). Bitte lesen Sie das Benutzerhandbuch, um zu erfahren, wie der Routing-Mechanismus funktioniert.Die Optionen für jeden Parameter sind
True: Metadaten werden angefordert und, falls vorhanden, anfitübergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht anfit.None: Metadaten werden nicht angefordert und der Meta-Schätzer löst einen Fehler aus, wenn der Benutzer sie bereitstellt.str: Metadaten sollten mit diesem Alias an den Meta-Schätzer übergeben werden und nicht mit dem ursprünglichen Namen.
Der Standardwert (
sklearn.utils.metadata_routing.UNCHANGED) behält die bestehende Anforderung bei. Dies ermöglicht es Ihnen, die Anforderung für einige Parameter zu ändern und für andere nicht.Hinzugefügt in Version 1.3.
- Parameter:
- sample_weightstr, True, False, oder None, Standardwert=sklearn.utils.metadata_routing.UNCHANGED
Metadaten-Routing für den Parameter
sample_weightinfit.
- Gibt zurück:
- selfobject
Das aktualisierte Objekt.
- set_params(**params)[Quellcode]#
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.
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') KernelRidge[Quellcode]#
Konfiguriert, ob Metadaten für die
score-Methode angefordert werden sollen.Beachten Sie, dass diese Methode nur relevant ist, wenn dieser Schätzer als Unter-Schätzer innerhalb eines Meta-Schätzers verwendet wird und Metadaten-Routing mit
enable_metadata_routing=Trueaktiviert ist (siehesklearn.set_config). Bitte lesen Sie das Benutzerhandbuch, um zu erfahren, wie der Routing-Mechanismus funktioniert.Die Optionen für jeden Parameter sind
True: Metadaten werden angefordert und, falls vorhanden, anscoreübergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht anscore.None: Metadaten werden nicht angefordert und der Meta-Schätzer löst einen Fehler aus, wenn der Benutzer sie bereitstellt.str: Metadaten sollten mit diesem Alias an den Meta-Schätzer übergeben werden und nicht mit dem ursprünglichen Namen.
Der Standardwert (
sklearn.utils.metadata_routing.UNCHANGED) behält die bestehende Anforderung bei. Dies ermöglicht es Ihnen, die Anforderung für einige Parameter zu ändern und für andere nicht.Hinzugefügt in Version 1.3.
- Parameter:
- sample_weightstr, True, False, oder None, Standardwert=sklearn.utils.metadata_routing.UNCHANGED
Metadaten-Routing für den Parameter
sample_weightinscore.
- Gibt zurück:
- selfobject
Das aktualisierte Objekt.
Galeriebeispiele#
Vergleich von Kernel Ridge und Gauß-Prozess-Regression