SelectFromModel#

class sklearn.feature_selection.SelectFromModel(estimator, *, threshold=None, prefit=False, norm_order=1, max_features=None, importance_getter='auto')[Quelle]#

Meta-Transformer zur Auswahl von Merkmalen basierend auf Wichtigkeitsgewichtungen.

Hinzugefügt in Version 0.17.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
estimatorobjekt

Der Basis-Schätzer, aus dem der Transformer aufgebaut wird. Dies kann sowohl ein angepasster (wenn prefit auf True gesetzt ist) als auch ein nicht angepasster Schätzer sein. Der Schätzer sollte nach dem Anpassen ein Attribut feature_importances_ oder coef_ haben. Andernfalls sollte der Parameter importance_getter verwendet werden.

thresholdstr oder float, Standardwert=None

Der Schwellenwert für die Merkmalsauswahl. Merkmale, deren absoluter Wichtigkeitswert größer oder gleich ist, werden beibehalten, während die anderen verworfen werden. Wenn "median" (bzw. "mean"), dann ist der threshold-Wert der Median (bzw. der Mittelwert) der Merkmalswichtigkeiten. Ein Skalierungsfaktor (z. B. "1.25*mean") kann ebenfalls verwendet werden. Wenn None und der Schätzer einen Parameter penalty mit dem Wert l1 hat, entweder explizit oder implizit (z. B. Lasso), beträgt der verwendete Schwellenwert 1e-5. Andernfalls wird standardmäßig "mean" verwendet.

prefitbool, Standardwert=False

Ob ein bereits angepasstes Modell direkt an den Konstruktor übergeben werden soll oder nicht. Wenn True, muss estimator ein angepasster Schätzer sein. Wenn False, wird estimator durch Aufrufen von fit und partial_fit angepasst bzw. aktualisiert.

norm_ordernicht-null int, inf, -inf, Standardwert=1

Ordnung der Norm, die verwendet wird, um die Koeffizientenvektoren unterhalb des threshold zu filtern, falls das Attribut coef_ des Schätzers die Dimension 2 hat.

max_featuresint, aufrufbar, Standardwert=None

Die maximale Anzahl der auszuwählenden Merkmale.

  • Wenn eine Ganzzahl, dann gibt sie die maximal zulässige Anzahl von Merkmalen an.

  • Wenn aufrufbar, dann gibt sie an, wie die maximal zulässige Anzahl von Merkmalen berechnet wird. Die aufrufbare Funktion erhält X als Eingabe: max_features(X).

  • Wenn None, dann werden alle Merkmale beibehalten.

Um nur basierend auf max_features auszuwählen, setzen Sie threshold=-np.inf.

Hinzugefügt in Version 0.20.

Geändert in Version 1.1: max_features akzeptiert eine aufrufbare Funktion.

importance_getterstr oder aufrufbar, Standardwert=’auto’

Wenn 'auto', wird die Merkmalswichtigkeit entweder über ein Attribut coef_ oder ein Attribut feature_importances_ des Schätzers verwendet.

Akzeptiert auch einen String, der einen Attributnamen/Pfad zum Extrahieren der Merkmalswichtigkeit angibt (implementiert mit attrgetter). Zum Beispiel, geben Sie regressor_.coef_ im Fall von TransformedTargetRegressor oder named_steps.clf.feature_importances_ im Fall von Pipeline mit dem letzten Schritt namens clf an.

Wenn aufrufbar, überschreibt dies den Standard-Merkmalswichtigkeits-Getter. Die aufrufbare Funktion wird mit dem angepassten Schätzer übergeben und sollte die Wichtigkeit für jedes Merkmal zurückgeben.

Hinzugefügt in Version 0.24.

Attribute:
estimator_Schätzer

Der Basis-Schätzer, aus dem der Transformer aufgebaut wird. Dieses Attribut existiert nur, wenn fit aufgerufen wurde.

  • Wenn prefit=True, ist dies eine tiefe Kopie von estimator.

  • Wenn prefit=False, ist dies ein Klon von estimator und wird auf den an fit oder partial_fit übergebenen Daten angepasst.

n_features_in_int

Anzahl der während fit gesehenen Merkmale.

max_features_int

Maximale Anzahl von Merkmalen, die während fit berechnet wird. Nur definiert, wenn max_features nicht None ist.

  • Wenn max_features eine int ist, dann gilt max_features_ = max_features.

  • Wenn max_features aufrufbar ist, dann gilt max_features_ = max_features(X).

Hinzugefügt in Version 1.1.

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.

threshold_float

Schwellenwert, der für die Merkmalsauswahl verwendet wird.

Siehe auch

RFE

Rekursive Merkmalseliminierung basierend auf Wichtigkeitsgewichten.

RFECV

Rekursive Merkmalseliminierung mit integrierter kreuzvalidierter Auswahl der besten Anzahl von Merkmalen.

SequentialFeatureSelector

Sequenzielle kreuzvalidierungsbasierte Merkmalsauswahl. Basiert nicht auf Wichtigkeitsgewichten.

Anmerkungen

Erlaubt NaN/Inf im Eingabe, wenn der zugrundeliegende Schätzer dies ebenfalls tut.

Beispiele

>>> from sklearn.feature_selection import SelectFromModel
>>> from sklearn.linear_model import LogisticRegression
>>> X = [[ 0.87, -1.34,  0.31 ],
...      [-2.79, -0.02, -0.85 ],
...      [-1.34, -0.48, -2.55 ],
...      [ 1.92,  1.48,  0.65 ]]
>>> y = [0, 1, 0, 1]
>>> selector = SelectFromModel(estimator=LogisticRegression()).fit(X, y)
>>> selector.estimator_.coef_
array([[-0.3252,  0.8345,  0.4976]])
>>> selector.threshold_
np.float64(0.55249)
>>> selector.get_support()
array([False,  True, False])
>>> selector.transform(X)
array([[-1.34],
       [-0.02],
       [-0.48],
       [ 1.48]])

Verwendung einer aufrufbaren Funktion zur Erstellung eines Selektors, der nicht mehr als die Hälfte der Eingabemerkmale verwenden kann.

>>> def half_callable(X):
...     return round(len(X[0]) / 2)
>>> half_selector = SelectFromModel(estimator=LogisticRegression(),
...                                 max_features=half_callable)
>>> _ = half_selector.fit(X, y)
>>> half_selector.max_features_
2
fit(X, y=None, **fit_params)[Quelle]#

Passe den SelectFromModel-Meta-Transformer an.

Parameter:
Xarray-like der Form (n_samples, n_features)

Die Trainings-Eingabebeispiele.

yarray-like mit Form (n_samples,), default=None

Die Zielwerte (Ganzzahlen, die Klassen bei der Klassifizierung entsprechen, reelle Zahlen bei der Regression).

**fit_paramsdict
  • Wenn enable_metadata_routing=False (Standard): Parameter, die direkt an die fit-Methode des Unter-Schätzers übergeben werden. Sie werden ignoriert, wenn prefit=True.

  • Wenn enable_metadata_routing=True: Sicher weitergeleitete Parameter an die fit-Methode des Unter-Schätzers. Sie werden ignoriert, wenn prefit=True.

Geändert in Version 1.4: Siehe Metadaten-Routing Benutzerhandbuch für weitere Details.

Gibt zurück:
selfobject

Angepasster Schätzer.

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]#

Maskiert die Namen der Merkmale gemäß den ausgewählten Merkmalen.

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.

Hinzugefügt in Version 1.4.

Gibt zurück:
routingMetadataRouter

Ein MetadataRouter, der die 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.

get_support(indices=False)[Quelle]#

Gibt eine Maske oder einen ganzzahligen Index der ausgewählten Merkmale zurück.

Parameter:
indicesbool, Standardwert=False

Wenn True, ist der Rückgabewert ein Array von ganzen Zahlen anstelle einer booleschen Maske.

Gibt zurück:
supportarray

Ein Index, der die beibehaltenen Merkmale aus einem Merkmalsvektor auswählt. Wenn indices False ist, ist dies ein boolesches Array der Form [# Eingabemerkmale], bei dem ein Element True ist, wenn sein entsprechendes Merkmal zur Beibehaltung ausgewählt wurde. Wenn indices True ist, ist dies ein ganzzahliges Array der Form [# Ausgabemerkmale], dessen Werte Indizes in den Eingabemerkmalsvektor sind.

inverse_transform(X)[Quelle]#

Kehrt die Transformationsoperation um.

Parameter:
Xarray der Form [n_samples, n_selected_features]

Die Eingabestichproben.

Gibt zurück:
X_originalarray der Form [n_samples, n_original_features]

X mit Spalten von Nullen, die dort eingefügt wurden, wo Merkmale durch transform entfernt worden wären.

partial_fit(X, y=None, **partial_fit_params)[Quelle]#

Passe den SelectFromModel-Meta-Transformer nur einmal an.

Parameter:
Xarray-like der Form (n_samples, n_features)

Die Trainings-Eingabebeispiele.

yarray-like mit Form (n_samples,), default=None

Die Zielwerte (Ganzzahlen, die Klassen bei der Klassifizierung entsprechen, reelle Zahlen bei der Regression).

**partial_fit_paramsdict
  • Wenn enable_metadata_routing=False (Standard): Parameter, die direkt an die partial_fit-Methode des Unter-Schätzers übergeben werden.

  • Wenn enable_metadata_routing=True: Parameter, die an die partial_fit-Methode des Unter-Schätzers übergeben werden. Sie werden ignoriert, wenn prefit=True.

Geändert in Version 1.4: **partial_fit_params werden an den Unter-Schätzer weitergeleitet, wenn enable_metadata_routing=True über set_config gesetzt wird, was Aliasing ermöglicht.

Siehe Metadaten-Routing Benutzerhandbuch für weitere Details.

Gibt zurück:
selfobject

Angepasster Schätzer.

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]#

Reduziert X auf die ausgewählten Merkmale.

Parameter:
Xarray der Form [n_samples, n_features]

Die Eingabestichproben.

Gibt zurück:
X_rarray der Form [n_samples, n_selected_features]

Die Eingabebeispiele nur mit den ausgewählten Merkmalen.