OrdinalEncoder#

class sklearn.preprocessing.OrdinalEncoder(*, categories='auto', dtype=<class 'numpy.float64'>, handle_unknown='error', unknown_value=None, encoded_missing_value=nan, min_frequency=None, max_categories=None)[Quelle]#

Kodiert kategoriale Merkmale als eine Ganzzahlmatrix.

Die Eingabe für diesen Transformer sollte ein Array-ähnliches Objekt aus ganzen Zahlen oder Zeichenketten sein, das die Werte kennzeichnet, die von kategorialen (diskreten) Merkmalen angenommen werden. Die Merkmale werden in ordinale Ganzzahlen umgewandelt. Dies führt zu einer einzelnen Spalte von Ganzzahlen (0 bis n_Kategorien - 1) pro Merkmal.

Lesen Sie mehr im Benutzerhandbuch. Ein Vergleich verschiedener Encoder finden Sie unter: Vergleich des Target Encoders mit anderen Encodern.

Hinzugefügt in Version 0.20.

Parameter:
categories‘auto’ oder eine Liste von Array-ähnlichen Objekten, Standard=’auto’

Kategorien (eindeutige Werte) pro Merkmal

  • ‘auto’ : Kategorien automatisch aus den Trainingsdaten bestimmen.

  • list : categories[i] enthält die erwarteten Kategorien in der i-ten Spalte. Die übergebenen Kategorien sollten keine Zeichenketten und numerische Werte mischen und sollten bei numerischen Werten sortiert sein.

Die verwendeten Kategorien finden Sie im Attribut categories_.

dtypeZahlentyp, Standard=np.float64

Gewünschter Datentyp der Ausgabe.

handle_unknown{‘error’, ‘use_encoded_value’}, Standard=’error’

Wenn auf ‘error’ gesetzt, wird bei Vorhandensein einer unbekannten kategorialen Merkmals während der Transformation ein Fehler ausgelöst. Wenn auf ‘use_encoded_value’ gesetzt, wird der kodierte Wert unbekannter Kategorien auf den Wert gesetzt, der für den Parameter unknown_value angegeben wurde. In inverse_transform wird eine unbekannte Kategorie als None bezeichnet.

Hinzugefügt in Version 0.24.

unknown_valueint oder np.nan, Standard=None

Wenn der Parameter handle_unknown auf ‘use_encoded_value’ gesetzt ist, ist dieser Parameter erforderlich und legt den kodierten Wert unbekannter Kategorien fest. Er muss von den Werten, die zur Kodierung von Kategorien in fit verwendet werden, verschieden sein. Wenn er auf np.nan gesetzt ist, muss der Parameter dtype ein Float-Datentyp sein.

Hinzugefügt in Version 0.24.

encoded_missing_valueint oder np.nan, Standard=np.nan

Kodierter Wert für fehlende Kategorien. Wenn auf np.nan gesetzt, muss der Parameter dtype ein Float-Datentyp sein.

Hinzugefügt in Version 1.1.

min_frequencyint oder float, Standard=None

Gibt die minimale Häufigkeit an, unterhalb der eine Kategorie als selten gilt.

  • Wenn int, werden Kategorien mit geringerer Kardinalität als selten betrachtet.

  • Wenn float, werden Kategorien mit geringerer Kardinalität als min_frequency * n_samples als selten betrachtet.

Hinzugefügt in Version 1.3: Lesen Sie mehr im Benutzerhandbuch.

max_categoriesint, Standard=None

Gibt eine Obergrenze für die Anzahl der Ausgabekategorien für jedes Eingabemerkmal bei Berücksichtigung von seltenen Kategorien an. Wenn es seltene Kategorien gibt, enthält max_categories die Kategorie, die seltene Kategorien repräsentiert, zusammen mit den häufigen Kategorien. Wenn None, gibt es keine Begrenzung für die Anzahl der Ausgabemerkmale.

max_categories berücksichtigt **keine** fehlenden oder unbekannten Kategorien. Das Setzen von unknown_value oder encoded_missing_value auf eine Ganzzahl erhöht die Anzahl der eindeutigen Ganzzahlcodes um jeweils eins. Dies kann zu bis zu max_categories + 2 Ganzzahlcodes führen.

Hinzugefügt in Version 1.3: Lesen Sie mehr im Benutzerhandbuch.

Attribute:
categories_Liste von Arrays

Die Kategorien jedes Merkmals, die während fit bestimmt wurden (in der Reihenfolge der Merkmale in X und entsprechend der Ausgabe von transform). Dies schließt keine Kategorien ein, die während fit nicht gesehen wurden.

n_features_in_int

Anzahl der während des fits gesehenen Merkmale.

Hinzugefügt in Version 1.0.

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.

infrequent_categories_Liste von ndarray

Seltene Kategorien für jedes Merkmal.

Siehe auch

OneHotEncoder

Führt eine One-Hot-Kodierung von kategorialen Merkmalen durch. Diese Kodierung ist für kategoriale Variablen mit geringer bis mittlerer Kardinalität geeignet, sowohl in überwachten als auch in unüberwachten Einstellungen.

TargetEncoder

Kodiert kategoriale Merkmale unter Verwendung des überwachten Signals in einer Klassifikations- oder Regressionspipeline. Diese Kodierung ist typischerweise für kategoriale Variablen mit hoher Kardinalität geeignet.

LabelEncoder

Kodiert Ziel-Labels mit Werten zwischen 0 und n_classes-1.

Beispiele

Gegeben sei ein Datensatz mit zwei Merkmalen. Wir lassen den Encoder die eindeutigen Werte pro Merkmal ermitteln und die Daten in eine ordinale Kodierung umwandeln.

>>> from sklearn.preprocessing import OrdinalEncoder
>>> enc = OrdinalEncoder()
>>> X = [['Male', 1], ['Female', 3], ['Female', 2]]
>>> enc.fit(X)
OrdinalEncoder()
>>> enc.categories_
[array(['Female', 'Male'], dtype=object), array([1, 2, 3], dtype=object)]
>>> enc.transform([['Female', 3], ['Male', 1]])
array([[0., 2.],
       [1., 0.]])
>>> enc.inverse_transform([[1, 0], [0, 1]])
array([['Male', 1],
       ['Female', 2]], dtype=object)

Standardmäßig ist OrdinalEncoder bei fehlenden Werten nachsichtig, indem er sie weitergibt.

>>> import numpy as np
>>> X = [['Male', 1], ['Female', 3], ['Female', np.nan]]
>>> enc.fit_transform(X)
array([[ 1.,  0.],
       [ 0.,  1.],
       [ 0., nan]])

Sie können den Parameter encoded_missing_value verwenden, um fehlende Werte zu kodieren.

>>> enc.set_params(encoded_missing_value=-1).fit_transform(X)
array([[ 1.,  0.],
       [ 0.,  1.],
       [ 0., -1.]])

Seltene Kategorien werden durch Setzen von max_categories oder min_frequency aktiviert. Im folgenden Beispiel werden "a" und "d" als selten betrachtet und zu einer einzigen Kategorie zusammengefasst, "b" und "c" sind eigene Kategorien, unbekannte Werte werden als 3 und fehlende Werte als 4 kodiert.

>>> X_train = np.array(
...     [["a"] * 5 + ["b"] * 20 + ["c"] * 10 + ["d"] * 3 + [np.nan]],
...     dtype=object).T
>>> enc = OrdinalEncoder(
...     handle_unknown="use_encoded_value", unknown_value=3,
...     max_categories=3, encoded_missing_value=4)
>>> _ = enc.fit(X_train)
>>> X_test = np.array([["a"], ["b"], ["c"], ["d"], ["e"], [np.nan]], dtype=object)
>>> enc.transform(X_test)
array([[2.],
       [0.],
       [1.],
       [2.],
       [3.],
       [4.]])
fit(X, y=None)[Quelle]#

Passt den OrdinalEncoder an X an.

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

Die Daten zur Ermittlung der Kategorien jedes Merkmals.

yNone

Ignoriert. Dieser Parameter existiert nur zur Kompatibilität mit Pipeline.

Gibt zurück:
selfobject

Angepasster Encoder.

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]#

Holt die Ausgabemerkmale für die Transformation.

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

Gleich wie Eingabemerkmale.

get_metadata_routing()[Quelle]#

Holt das Metadaten-Routing dieses Objekts.

Bitte prüfen Sie im Benutzerhandbuch, wie der Routing-Mechanismus funktioniert.

Gibt zurück:
routingMetadataRequest

Ein MetadataRequest, der 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.

inverse_transform(X)[Quelle]#

Wandelt die Daten in die ursprüngliche Darstellung zurück.

Parameter:
XArray-ähnliches Objekt der Form (n_samples, n_encoded_features)

Die transformierten Daten.

Gibt zurück:
X_originalndarray von der Form (n_samples, n_features)

Umgekehrt transformiertes Array.

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]#

Wandelt X in ordinale Codes um.

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

Die zu kodierenden Daten.

Gibt zurück:
X_outndarray der Form (n_samples, n_features)

Transformierter Eingang.