RFE#

class sklearn.feature_selection.RFE(estimator, *, n_features_to_select=None, step=1, verbose=0, importance_getter='auto')[source]#

Merkmalsranking mit rekursivem Merkmals-Eliminierung.

Bei einem externen Schätzer, der Gewichte für Features zuweist (z. B. die Koeffizienten eines linearen Modells), besteht das Ziel der rekursiven Feature-Eliminierung (RFE) darin, Features durch rekursives Betrachten immer kleinerer Feature-Sets auszuwählen. Zuerst wird der Schätzer auf dem initialen Feature-Set trainiert und die Wichtigkeit jedes Features entweder durch ein spezifisches Attribut oder eine aufrufbare Funktion ermittelt. Dann werden die am wenigsten wichtigen Features aus dem aktuellen Feature-Set entfernt. Dieses Verfahren wird rekursiv auf dem reduzierten Set wiederholt, bis die gewünschte Anzahl von zu selektierenden Features erreicht ist.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
estimatorEstimator Instanz

Ein überwachtes Lern-Schätzer mit einer fit-Methode, die Informationen über die Feature-Wichtigkeit liefert (z. B. coef_, feature_importances_).

n_features_to_selectint oder float, Standardwert=None

Die Anzahl der zu selektierenden Features. Wenn None, wird die Hälfte der Features ausgewählt. Wenn eine ganze Zahl, ist der Parameter die absolute Anzahl der zu selektierenden Features. Wenn ein Float zwischen 0 und 1, ist es der Anteil der zu selektierenden Features.

Geändert in Version 0.24: Float-Werte für Brüche hinzugefügt.

stepint oder float, Standardwert=1

Wenn größer oder gleich 1, dann entspricht step der (ganzzahligen) Anzahl der zu entfernenden Features in jeder Iteration. Wenn im Bereich (0.0, 1.0), dann entspricht step dem Prozentsatz (abgerundet) der zu entfernenden Features in jeder Iteration.

verboseint, default=0

Steuert die Ausführlichkeit der Ausgabe.

importance_getterstr oder aufrufbar, Standardwert=’auto’

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

Akzeptiert auch einen String, der einen Attributnamen/Pfad zur Extraktion der Feature-Wichtigkeit angibt (implementiert mit attrgetter). Zum Beispiel: regressor_.coef_ im Falle von TransformedTargetRegressor oder named_steps.clf.feature_importances_ im Falle einer Klasse:~sklearn.pipeline.Pipeline mit dem letzten Schritt namens clf.

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:
classes_ndarray der Form (n_classes,)

Klassenbezeichnungen, die verfügbar sind, wenn der estimator ein Klassifikator ist.

estimator_Estimator Instanz

Der angepasste Schätzer, der zur Feature-Auswahl verwendet wurde.

n_features_int

Die Anzahl der ausgewählten Features.

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.

ranking_ndarray der Form (n_features,)

Das Feature-Ranking, so dass ranking_[i] dem Ranking-Platz des i-ten Features entspricht. Ausgewählte (d.h. geschätzte beste) Features erhalten den Rang 1.

support_ndarray der Form (n_features,)

Die Maske der ausgewählten Merkmale.

Siehe auch

RFECV

Rekursive Feature-Eliminierung mit integrierter kreuzvalidierter Auswahl der besten Anzahl von Features.

SelectFromModel

Feature-Auswahl basierend auf Schwellenwerten für Wichtigkeitsgewichte.

SequentialFeatureSelector

Sequenzielle kreuzvalidierungsbasierte Feature-Auswahl. Basiert nicht auf Wichtigkeitsgewichten.

Anmerkungen

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

Referenzen

[1]

Guyon, I., Weston, J., Barnhill, S., & Vapnik, V., “Gene selection for cancer classification using support vector machines”, Mach. Learn., 46(1-3), 389–422, 2002.

Beispiele

Das folgende Beispiel zeigt, wie die 5 informativsten Features im Friedman #1-Datensatz abgerufen werden.

>>> from sklearn.datasets import make_friedman1
>>> from sklearn.feature_selection import RFE
>>> from sklearn.svm import SVR
>>> X, y = make_friedman1(n_samples=50, n_features=10, random_state=0)
>>> estimator = SVR(kernel="linear")
>>> selector = RFE(estimator, n_features_to_select=5, step=1)
>>> selector = selector.fit(X, y)
>>> selector.support_
array([ True,  True,  True,  True,  True, False, False, False, False,
       False])
>>> selector.ranking_
array([1, 1, 1, 1, 1, 6, 4, 3, 2, 5])
decision_function(X)[source]#

Berechnet die Entscheidungsfunktion von X.

Parameter:
X{array-like oder sparse matrix} der Form (n_samples, n_features)

Die Eingabestichproben. Intern wird sie in dtype=np.float32 konvertiert und, wenn eine Sparse-Matrix bereitgestellt wird, in eine Sparse- csr_matrix.

Gibt zurück:
scorearray, Form = [n_samples, n_classes] oder [n_samples]

Die Entscheidungsfunktion der Eingabestichproben. Die Reihenfolge der Klassen entspricht der im Attribut classes_. Regression und binäre Klassifizierung erzeugen ein Array der Form [n_samples].

fit(X, y, **fit_params)[source]#

Passt das RFE-Modell und anschließend den zugrunde liegenden Schätzer an die ausgewählten Features an.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features)

Die Trainings-Eingabebeispiele.

yarray-like von Form (n_samples,)

Die Zielwerte.

**fit_paramsdict
  • Wenn enable_metadata_routing=False (Standard): Parameter, die direkt an die fit-Methode des zugrunde liegenden Schätzers übergeben werden.

  • Wenn enable_metadata_routing=True: Parameter, die sicher an die fit-Methode des zugrunde liegenden Schätzers weitergeleitet werden.

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

Gibt zurück:
selfobject

Angepasster Schätzer.

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

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)[source]#

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()[source]#

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)[source]#

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)[source]#

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)[source]#

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 Features durch transform entfernt worden wären.

predict(X, **predict_params)[source]#

Reduziert X auf die ausgewählten Features und sagt mit dem Schätzer voraus.

Parameter:
Xarray der Form [n_samples, n_features]

Die Eingabestichproben.

**predict_paramsdict

Parameter, die an die predict-Methode des zugrunde liegenden Schätzers weitergeleitet 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:
yarray der Form [n_samples]

Die vorhergesagten Zielwerte.

predict_log_proba(X)[source]#

Sagt die logarithmierte Klassenwahrscheinlichkeit für X voraus.

Parameter:
Xarray der Form [n_samples, n_features]

Die Eingabestichproben.

Gibt zurück:
parray der Form (n_samples, n_classes)

Die Klassen-Log-Wahrscheinlichkeiten der Eingabestichproben. Die Reihenfolge der Klassen entspricht der in dem Attribut classes_.

predict_proba(X)[source]#

Sagt die Klassenwahrscheinlichkeiten für X voraus.

Parameter:
X{array-like oder sparse matrix} der Form (n_samples, n_features)

Die Eingabestichproben. Intern wird sie in dtype=np.float32 konvertiert und, wenn eine Sparse-Matrix bereitgestellt wird, in eine Sparse- csr_matrix.

Gibt zurück:
parray der Form (n_samples, n_classes)

Die Klassenwahrscheinlichkeiten der Eingabesamplings. Die Reihenfolge der Klassen entspricht der im Attribut classes_.

score(X, y, **score_params)[source]#

Reduziert X auf die ausgewählten Features und gibt den Score des Schätzers zurück.

Parameter:
Xarray der Form [n_samples, n_features]

Die Eingabestichproben.

yarray der Form [n_samples]

Die Zielwerte.

**score_paramsdict
  • Wenn enable_metadata_routing=False (Standard): Parameter, die direkt an die score-Methode des zugrunde liegenden Schätzers übergeben werden.

  • Wenn enable_metadata_routing=True: Parameter, die sicher an die score-Methode des zugrunde liegenden Schätzers weitergeleitet werden.

Hinzugefügt in Version 1.0.

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

Gibt zurück:
scorefloat

Score des zugrunde liegenden Basis-Schätzers, berechnet mit den durch rfe.transform(X) ausgewählten Features und y.

set_output(*, transform=None)[source]#

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)[source]#

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)[source]#

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.