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:
- estimator
EstimatorInstanz 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
stepder (ganzzahligen) Anzahl der zu entfernenden Features in jeder Iteration. Wenn im Bereich (0.0, 1.0), dann entsprichtstepdem 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_- oderfeature_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 vonTransformedTargetRegressorodernamed_steps.clf.feature_importances_im Falle einer Klasse:~sklearn.pipeline.Pipelinemit dem letzten Schritt namensclf.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.
- estimator
- Attribute:
classes_ndarray der Form (n_classes,)Klassenbezeichnungen, die verfügbar sind, wenn der
estimatorein Klassifikator ist.- estimator_
EstimatorInstanz 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
XMerkmalnamen 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
RFECVRekursive Feature-Eliminierung mit integrierter kreuzvalidierter Auswahl der besten Anzahl von Features.
SelectFromModelFeature-Auswahl basierend auf Schwellenwerten für Wichtigkeitsgewichte.
SequentialFeatureSelectorSequenzielle 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.float32konvertiert 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 diefit-Methode des zugrunde liegenden Schätzers übergeben werden.Wenn
enable_metadata_routing=True: Parameter, die sicher an diefit-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
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)[source]#
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()[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
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)[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]
Xmit Spalten von Nullen, die dort eingefügt wurden, wo Features durchtransformentfernt 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 vonsklearn.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.float32konvertiert 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 diescore-Methode des zugrunde liegenden Schätzers übergeben werden.Wenn
enable_metadata_routing=True: Parameter, die sicher an diescore-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 undy.
- 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
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)[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.