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 - 1 für extrapolation="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 knots gleich einer der Optionen {‘uniform’, ‘quantile’} ist. Muss größer oder gleich 2 sein. Wird ignoriert, wenn knots array-ä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_knots Knoten 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 degree Anzahl 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 ValueError aus. 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. Option extrapolate=True in scipy.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 fit np.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 X Merkmalnamen 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, wobei n_splines die Anzahl der Basiselemente der B-Splines ist, n_knots + degree - 1 für nicht-periodische Splines und n_knots - 1 für periodische. Wenn include_bias=False, dann sind es nur n_features * (n_splines - 1).

Siehe auch

KBinsDiscretizer

Transformer, der kontinuierliche Daten in Intervalle einteilt.

PolynomialFeatures

Transformer, 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ür knots="uniform" werden Beobachtungen mit Gewicht Null bei der Ermittlung des Minimums und Maximums von X ignoriert.

Gibt zurück:
selfobject

Gefitteter Transformer.

fit_transform(X, y=None, **fit_params)[Quelle]#

An Daten anpassen, dann transformieren.

Passt den Transformer an X und y mit optionalen Parametern fit_params an und gibt eine transformierte Version von X zurü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_features None ist, werden feature_names_in_ als Merkmalnamen verwendet. Wenn feature_names_in_ nicht definiert ist, werden die folgenden Eingabemerkmalsnamen generiert: ["x0", "x1", ..., "x(n_features_in_ - 1)"].

  • Wenn input_features ein Array-ähnliches Objekt ist, muss input_features mit feature_names_in_ übereinstimmen, wenn feature_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=True aktiviert ist (siehe sklearn.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, an fit übergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.

  • False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht an fit.

  • 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_weight in fit.

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 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 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.