SplineTransformer#
- class sklearn.preprocessing.SplineTransformer(n_knots=5, degree=3, *, knots='uniform', extrapolation='constant', include_bias=True, order='C', handle_missing='error', sparse_output=False)[Quelle]#
Generiert univariaten B-Spline-Basis für Merkmale.
Erzeugt eine neue Merkmalsmatrix, die aus
n_splines=n_knots + degree - 1(n_knots - 1fürextrapolation="periodic") Spline-Basis-Funktionen (B-Splines) vom Polynomgrad = `degree` für jedes Merkmal besteht.Um mehr über die SplineTransformer-Klasse zu erfahren, gehen Sie zu: Zeitbezogene Merkmalskonstruktion
Lesen Sie mehr im Benutzerhandbuch.
Hinzugefügt in Version 1.0.
- Parameter:
- n_knotsint, Standard=5
Anzahl der Knoten der Splines, wenn
knotsgleich einer der Optionen {‘uniform’, ‘quantile’} ist. Muss größer oder gleich 2 sein. Wird ignoriert, wennknotsarray-ähnlich ist.- degreeint, Standard=3
Der Polynomgrad der Spline-Basis. Muss eine nicht-negative Ganzzahl sein.
- knots{‘uniform’, ‘quantile’} oder array-ähnlich der Form (n_knots, n_features), Standard=’uniform’
Setzt die Knotenpositionen so, dass erster Knoten <= Merkmale <= letzter Knoten.
Wenn ‘uniform’, werden
n_knotsKnoten gleichmäßig über die minimalen bis maximalen Werte der Merkmale verteilt.Wenn ‘quantile’, werden sie gleichmäßig entlang der Quantile der Merkmale verteilt.
Wenn ein Array-ähnlicher Wert gegeben wird, gibt er direkt die sortierten Knotenpositionen einschließlich der Randknoten an. Beachten Sie, dass intern
degreeAnzahl von Knoten vor dem ersten Knoten und die gleiche Anzahl nach dem letzten Knoten hinzugefügt werden.
- extrapolation{‘error’, ‘constant’, ‘linear’, ‘continue’, ‘periodic’}, Standard=’constant’
Wenn ‘error’, lösen Werte außerhalb der minimalen und maximalen Werte der Trainingsmerkmale einen
ValueErroraus. Wenn ‘constant’, wird der Wert der Splines am minimalen und maximalen Wert der Merkmale für eine konstante Extrapolation verwendet. Wenn ‘linear’, wird eine lineare Extrapolation verwendet. Wenn ‘continue’, werden die Splines wie sie sind extrapoliert, d.h. Optionextrapolate=Trueinscipy.interpolate.BSpline. Wenn ‘periodic’, werden periodische Splines mit einer Periodizität verwendet, die gleich der Distanz zwischen dem ersten und letzten Knoten ist. Periodische Splines erzwingen gleiche Funktionswerte und Ableitungen am ersten und letzten Knoten. Dies ermöglicht es beispielsweise, einen willkürlichen Sprung zwischen dem 31. Dezember und dem 1. Januar bei Spline-Merkmalen, die aus einem natürlich periodischen Merkmal „Tag des Jahres“ abgeleitet sind, zu vermeiden. In diesem Fall wird empfohlen, die Knotewerte manuell festzulegen, um die Periode zu steuern.- include_biasbool, Standard=True
Wenn False, dann wird das letzte Spline-Element innerhalb des Datenbereichs eines Merkmals verworfen. Da B-Splines über die Spline-Basis-Funktionen für jeden Datenpunkt zu eins summieren, schließen sie implizit einen Bias-Term ein, d. h. eine Spalte mit Einsen. Dies wirkt wie ein Achsenabschnitt in linearen Modellen.
- order{‘C’, ‘F’}, Standard=’C’
Reihenfolge des Ausgabearrays im dichten Fall. Die Reihenfolge
'F'ist schneller zu berechnen, kann aber nachfolgende Schätzer verlangsamen.- handle_missing{‘error’, ‘zeros’}, Standard=’error’
Gibt an, wie fehlende Werte behandelt werden.
‘error’ : Löst einen Fehler aus, wenn während des
fitnp.nan-Werte vorhanden sind.‘zeros’ : Kodiert Splines fehlender Werte mit Werten von
0.
Beachten Sie, dass
handle_missing='zeros'sich vom ersten Imputieren fehlender Werte mit Nullen und anschließender Erstellung der Spline-Basis unterscheidet. Letzteres erstellt Spline-Basis-Funktionen, die nicht-Null-Werte an den fehlenden Werten haben, während diese Option einfach alle Werte der Spline-Basis-Funktionen an den fehlenden Werten auf Null setzt.Hinzugefügt in Version 1.8.
- sparse_outputbool, Standard=False
Gibt eine spärliche CSR-Matrix zurück, wenn auf True gesetzt, andernfalls ein Array.
Hinzugefügt in Version 1.2.
- Attribute:
- bsplines_Liste der Form (n_features,)
Liste von BSplines-Objekten, eines für jedes Merkmal.
- n_features_in_int
Die Gesamtzahl der Eingabemerkmale.
- 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.
- n_features_out_int
Die Gesamtzahl der Ausgabemerkmale, die berechnet wird als
n_features * n_splines, wobein_splinesdie Anzahl der Basiselemente der B-Splines ist,n_knots + degree - 1für nicht-periodische Splines undn_knots - 1für periodische. Wenninclude_bias=False, dann sind es nurn_features * (n_splines - 1).
Siehe auch
KBinsDiscretizerTransformer, der kontinuierliche Daten in Intervalle einteilt.
PolynomialFeaturesTransformer, der Polynom- und Interaktionsmerkmale generiert.
Anmerkungen
Hohe Grade und eine hohe Anzahl von Knoten können zu Überanpassung führen.
Siehe examples/linear_model/plot_polynomial_interpolation.py.
Beispiele
>>> import numpy as np >>> from sklearn.preprocessing import SplineTransformer >>> X = np.arange(6).reshape(6, 1) >>> spline = SplineTransformer(degree=2, n_knots=3) >>> spline.fit_transform(X) array([[0.5 , 0.5 , 0. , 0. ], [0.18, 0.74, 0.08, 0. ], [0.02, 0.66, 0.32, 0. ], [0. , 0.32, 0.66, 0.02], [0. , 0.08, 0.74, 0.18], [0. , 0. , 0.5 , 0.5 ]])
- fit(X, y=None, sample_weight=None)[Quelle]#
Berechnet die Knotenpositionen der Splines.
- Parameter:
- Xarray-like der Form (n_samples, n_features)
Die Daten.
- yNone
Ignoriert.
- sample_weightarray-ähnlich der Form (n_samples,), Standard = None
Individuelle Gewichte für jede Stichprobe. Wird zur Berechnung von Quantilen verwendet, wenn
knots="quantile". Fürknots="uniform"werden Beobachtungen mit Gewicht Null bei der Ermittlung des Minimums und Maximums vonXignoriert.
- Gibt zurück:
- selfobject
Gefitteter Transformer.
- fit_transform(X, y=None, **fit_params)[Quelle]#
An Daten anpassen, dann transformieren.
Passt den Transformer an
Xundymit optionalen Parameternfit_paramsan und gibt eine transformierte Version vonXzurück.- Parameter:
- Xarray-like der Form (n_samples, n_features)
Eingabestichproben.
- yarray-like der Form (n_samples,) oder (n_samples, n_outputs), Standardwert=None
Zielwerte (None für unüberwachte Transformationen).
- **fit_paramsdict
Zusätzliche Fit-Parameter. Nur übergeben, wenn der Estimator zusätzliche Parameter in seiner
fit-Methode akzeptiert.
- Gibt zurück:
- X_newndarray array der Form (n_samples, n_features_new)
Transformiertes Array.
- get_feature_names_out(input_features=None)[Quelle]#
Holt die Ausgabemerkmale für die Transformation.
- Parameter:
- input_featuresarray-like von str oder None, default=None
Eingabemerkmale.
Wenn
input_featuresNoneist, werdenfeature_names_in_als Merkmalnamen verwendet. Wennfeature_names_in_nicht definiert ist, werden die folgenden Eingabemerkmalsnamen generiert:["x0", "x1", ..., "x(n_features_in_ - 1)"].Wenn
input_featuresein Array-ähnliches Objekt ist, mussinput_featuresmitfeature_names_in_übereinstimmen, wennfeature_names_in_definiert ist.
- 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.
- set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') SplineTransformer[Quelle]#
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_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 die Daten jedes Merkmals in B-Splines.
- Parameter:
- Xarray-like der Form (n_samples, n_features)
Die zu transformierenden Daten.
- Gibt zurück:
- XBS{ndarray, sparse matrix} der Form (n_samples, n_features * n_splines)
Die Merkmalsmatrix, wobei n_splines die Anzahl der Basiselemente der B-Splines ist, n_knots + degree - 1.
Galeriebeispiele#
Visualisierung der probabilistischen Vorhersagen eines VotingClassifier