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
prefitauf True gesetzt ist) als auch ein nicht angepasster Schätzer sein. Der Schätzer sollte nach dem Anpassen ein Attributfeature_importances_odercoef_haben. Andernfalls sollte der Parameterimportance_getterverwendet 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, mussestimatorein angepasster Schätzer sein. WennFalse, wirdestimatordurch Aufrufen vonfitundpartial_fitangepasst bzw. aktualisiert.- norm_ordernicht-null int, inf, -inf, Standardwert=1
Ordnung der Norm, die verwendet wird, um die Koeffizientenvektoren unterhalb des
thresholdzu filtern, falls das Attributcoef_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
Xals Eingabe:max_features(X).Wenn
None, dann werden alle Merkmale beibehalten.
Um nur basierend auf
max_featuresauszuwählen, setzen Siethreshold=-np.inf.Hinzugefügt in Version 0.20.
Geändert in Version 1.1:
max_featuresakzeptiert eine aufrufbare Funktion.- importance_getterstr oder aufrufbar, Standardwert=’auto’
Wenn 'auto', wird die Merkmalswichtigkeit entweder über ein Attribut
coef_oder ein Attributfeature_importances_des Schätzers verwendet.Akzeptiert auch einen String, der einen Attributnamen/Pfad zum Extrahieren der Merkmalswichtigkeit angibt (implementiert mit
attrgetter). Zum Beispiel, geben Sieregressor_.coef_im Fall vonTransformedTargetRegressorodernamed_steps.clf.feature_importances_im Fall vonPipelinemit dem letzten Schritt namensclfan.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
fitaufgerufen wurde.Wenn
prefit=True, ist dies eine tiefe Kopie vonestimator.Wenn
prefit=False, ist dies ein Klon vonestimatorund wird auf den anfitoderpartial_fitübergebenen Daten angepasst.
n_features_in_intAnzahl der während
fitgesehenen Merkmale.- max_features_int
Maximale Anzahl von Merkmalen, die während fit berechnet wird. Nur definiert, wenn
max_featuresnichtNoneist.Wenn
max_featureseineintist, dann giltmax_features_ = max_features.Wenn
max_featuresaufrufbar ist, dann giltmax_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
XMerkmalnamen hat, die alle Zeichenketten sind.Hinzugefügt in Version 1.0.
threshold_floatSchwellenwert, der für die Merkmalsauswahl verwendet wird.
Siehe auch
RFERekursive Merkmalseliminierung basierend auf Wichtigkeitsgewichten.
RFECVRekursive Merkmalseliminierung mit integrierter kreuzvalidierter Auswahl der besten Anzahl von Merkmalen.
SequentialFeatureSelectorSequenzielle 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 diefit-Methode des Unter-Schätzers übergeben werden. Sie werden ignoriert, wennprefit=True.Wenn
enable_metadata_routing=True: Sicher weitergeleitete Parameter an diefit-Methode des Unter-Schätzers. Sie werden ignoriert, wennprefit=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
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.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
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.
- 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 diepartial_fit-Methode des Unter-Schätzers übergeben werden.Wenn
enable_metadata_routing=True: Parameter, die an diepartial_fit-Methode des Unter-Schätzers übergeben werden. Sie werden ignoriert, wennprefit=True.
Geändert in Version 1.4:
**partial_fit_paramswerden an den Unter-Schätzer weitergeleitet, wennenable_metadata_routing=Trueüberset_configgesetzt 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
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.