SequentialFeatureSelector#

class sklearn.feature_selection.SequentialFeatureSelector(estimator, *, n_features_to_select='auto', tol=None, direction='forward', scoring=None, cv=5, n_jobs=None)[Quelle]#

Transformer, der Sequential Feature Selection durchführt.

Dieser sequentielle Merkmalsselektor fügt (Vorwärtsselektion) oder entfernt (Rückwärtsselektion) Merkmale, um auf gierige Weise eine Merkmaluntermenge zu bilden. In jeder Phase wählt dieser Schätzer das beste Merkmal zum Hinzufügen oder Entfernen basierend auf dem Kreuzvalidierungsergebnis eines Schätzers aus. Bei unüberwachtem Lernen betrachtet dieser sequentielle Merkmalsselektor nur die Merkmale (X) und nicht die gewünschten Ausgaben (y).

Lesen Sie mehr im Benutzerhandbuch.

Hinzugefügt in Version 0.24.

Parameter:
estimatorSchätzer-Instanz

Ein nicht trainierter Schätzer.

n_features_to_select"auto", int oder float, Standardwert="auto"

Wenn "auto", hängt das Verhalten vom tol -Parameter ab

  • Wenn tol nicht None ist, werden Merkmale ausgewählt, solange die Score-Änderung tol nicht überschreitet.

  • Andernfalls wird die Hälfte der Merkmale ausgewählt.

Wenn ganzzahlig, ist der Parameter die absolute Anzahl der auszuwählenden Merkmale. Wenn ein Float zwischen 0 und 1, ist es der Bruchteil der auszuwählenden Merkmale.

Hinzugefügt in Version 1.1: Die Option "auto" wurde in Version 1.1 hinzugefügt.

Geändert in Version 1.3: Der Standardwert änderte sich von "warn" zu "auto" in Version 1.3.

tolfloat, Standardwert=None

Wenn der Score zwischen zwei aufeinanderfolgenden Merkmal-Hinzufügungen oder -Entfernungen um mindestens tol nicht erhöht wird, stoppen Sie das Hinzufügen oder Entfernen.

tol kann negativ sein, wenn Merkmale mit direction="backward" entfernt werden. tol muss strikt positiv sein, wenn eine Vorwärtsselektion durchgeführt wird. Es kann nützlich sein, die Anzahl der Merkmale auf Kosten einer geringfügigen Verschlechterung des Scores zu reduzieren.

tol ist nur aktiviert, wenn n_features_to_select "auto" ist.

Hinzugefügt in Version 1.1.

direction{'forward', 'backward'}, Standardwert='forward'

Ob Vorwärtsselektion oder Rückwärtsselektion durchgeführt werden soll.

scoringstr oder callable, Standardwert=None

Bewertungsmethode zur Verwendung für die Kreuzvalidierung. Optionen

cvint, Kreuzvalidierungsgenerator oder iterierbar, Standardwert=None

Bestimmt die Strategie der Kreuzvalidierungsaufteilung. Mögliche Eingaben für cv sind

  • None, um die Standard-5-fache Kreuzvalidierung zu verwenden,

  • Ganzzahl, um die Anzahl der Folds in einem (Stratified)KFold anzugeben,

  • CV-Splitter,

  • Eine iterierbare Liste, die (Trainings-, Test-) Splits als Indizes-Arrays liefert.

Für Ganzzahl-/None-Eingaben, wenn der Schätzer ein Klassifikator ist und y entweder binär oder multiklassig ist, wird StratifiedKFold verwendet. In allen anderen Fällen wird KFold verwendet. Diese Splitter werden mit shuffle=False instanziiert, sodass die Splits bei jedem Aufruf gleich sind.

Siehe Benutzerhandbuch für die verschiedenen Kreuzvalidierungsstrategien, die hier verwendet werden können.

n_jobsint, default=None

Anzahl der parallel auszuführenden Jobs. Bei der Bewertung eines neuen Merkmals zum Hinzufügen oder Entfernen wird das Kreuzvalidierungsverfahren parallel über die Folds ausgeführt. None bedeutet 1, es sei denn, es befindet sich in einem joblib.parallel_backend Kontext. -1 bedeutet die Verwendung aller Prozessoren. Siehe Glossar für weitere Details.

Attribute:
n_features_in_int

Anzahl der während fit gesehenen Merkmale. Nur definiert, wenn der zugrunde liegende Schätzer ein solches Attribut nach dem Training bereitstellt.

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.

n_features_to_select_int

Die Anzahl der ausgewählten Merkmale.

support_ndarray der Form (n_features,), dtype=bool

Die Maske der ausgewählten Merkmale.

Siehe auch

GenericUnivariateSelect

Univariater Merkmalsselektor mit konfigurierbarer Strategie.

RFE

Rekursive Merkmalseliminierung basierend auf Gewichtungen der Wichtigkeit.

RFECV

Rekursive Merkmalseliminierung basierend auf Gewichtungen der Wichtigkeit, mit automatischer Auswahl der Anzahl der Merkmale.

SelectFromModel

Merkmalsauswahl basierend auf Schwellenwerten von Gewichtungen der Wichtigkeit.

Beispiele

>>> from sklearn.feature_selection import SequentialFeatureSelector
>>> from sklearn.neighbors import KNeighborsClassifier
>>> from sklearn.datasets import load_iris
>>> X, y = load_iris(return_X_y=True)
>>> knn = KNeighborsClassifier(n_neighbors=3)
>>> sfs = SequentialFeatureSelector(knn, n_features_to_select=3)
>>> sfs.fit(X, y)
SequentialFeatureSelector(estimator=KNeighborsClassifier(n_neighbors=3),
                          n_features_to_select=3)
>>> sfs.get_support()
array([ True, False,  True,  True])
>>> sfs.transform(X).shape
(150, 3)
fit(X, y=None, **params)[Quelle]#

Lernen der aus X auszuwählenden Merkmale.

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

Trainingsvektoren, wobei n_samples die Anzahl der Stichproben und n_features die Anzahl der Prädiktoren ist.

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

Zielwerte. Dieser Parameter kann bei unüberwachtem Lernen ignoriert werden.

**paramsdict, default=None

Parameter, die an die zugrunde liegenden Objekte estimator, cv und scorer übergeben werden.

Hinzugefügt in Version 1.6: Nur verfügbar, wenn enable_metadata_routing=True, was durch Setzen von sklearn.set_config(enable_metadata_routing=True) erfolgen kann. Siehe Metadaten-Routing Benutzerhandbuch für weitere Details.

Gibt zurück:
selfobject

Gibt die Instanz selbst zurück.

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

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.

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.