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 vomtol-Parameter abWenn
tolnichtNoneist, werden Merkmale ausgewählt, solange die Score-Änderungtolnicht ü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
tolnicht erhöht wird, stoppen Sie das Hinzufügen oder Entfernen.tolkann negativ sein, wenn Merkmale mitdirection="backward"entfernt werden.tolmuss 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.tolist nur aktiviert, wennn_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
str: siehe Zeichenkettennamen für Bewerter für Optionen.
callable: ein Bewerter-Callable-Objekt (z.B. eine Funktion) mit der Signatur
scorer(estimator, X, y), das einen einzelnen Wert zurückgibt. Siehe Callable Bewerter für Details.None: das Standard-Bewertungskriterium desestimatorwird verwendet.
- 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)KFoldanzugeben,Eine iterierbare Liste, die (Trainings-, Test-) Splits als Indizes-Arrays liefert.
Für Ganzzahl-/None-Eingaben, wenn der Schätzer ein Klassifikator ist und
yentweder binär oder multiklassig ist, wirdStratifiedKFoldverwendet. In allen anderen Fällen wirdKFoldverwendet. Diese Splitter werden mitshuffle=Falseinstanziiert, 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.
Nonebedeutet 1, es sei denn, es befindet sich in einemjoblib.parallel_backendKontext.-1bedeutet 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
XMerkmalnamen 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
GenericUnivariateSelectUnivariater Merkmalsselektor mit konfigurierbarer Strategie.
RFERekursive Merkmalseliminierung basierend auf Gewichtungen der Wichtigkeit.
RFECVRekursive Merkmalseliminierung basierend auf Gewichtungen der Wichtigkeit, mit automatischer Auswahl der Anzahl der Merkmale.
SelectFromModelMerkmalsauswahl 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_samplesdie Anzahl der Stichproben undn_featuresdie 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,cvundscorerübergeben werden.Hinzugefügt in Version 1.6: Nur verfügbar, wenn
enable_metadata_routing=True, was durch Setzen vonsklearn.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
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]#
Maskiert die Namen der Merkmale gemäß den ausgewählten Merkmalen.
- 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.
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
indicesFalse ist, ist dies ein boolesches Array der Form [# Eingabemerkmale], bei dem ein Element True ist, wenn sein entsprechendes Merkmal zur Beibehaltung ausgewählt wurde. WennindicesTrue 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]
Xmit Spalten von Nullen, die dort eingefügt wurden, wo Merkmale durchtransformentfernt 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
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.