MultiLabelBinarizer#

class sklearn.preprocessing.MultiLabelBinarizer(*, classes=None, sparse_output=False)[source]#

Transformiert zwischen iterierbaren von iterierbaren und einem Multilabel-Format.

Obwohl eine Liste von Mengen oder Tupeln ein sehr intuitives Format für Multilabel-Daten ist, ist sie unhandlich zu verarbeiten. Dieser Transformer konvertiert zwischen diesem intuitiven Format und dem unterstützten Multilabel-Format: einer binären Matrix (Samples x Klassen), die das Vorhandensein eines Klassenlabels angibt.

Parameter:
classesarray-like der Form (n_classes,), Standard=None

Gibt eine Reihenfolge für die Klassenlabels an. Alle Einträge müssen eindeutig sein (dürfen keine doppelten Klassen enthalten).

sparse_outputbool, Standard=False

Setzen Sie auf True, wenn die binäre Ausgabematrix im CSR-Sparse-Format gewünscht wird.

Attribute:
classes_ndarray der Form (n_classes,)

Eine Kopie des Parameters classes, wenn dieser angegeben wurde. Andernfalls entspricht dies der sortierten Menge der beim Anpassen gefundenen Klassen.

Siehe auch

OneHotEncoder

Kodiert kategoriale Merkmale mithilfe eines One-Hot- bzw. One-of-K-Schemas.

Beispiele

>>> from sklearn.preprocessing import MultiLabelBinarizer
>>> mlb = MultiLabelBinarizer()
>>> mlb.fit_transform([(1, 2), (3,)])
array([[1, 1, 0],
       [0, 0, 1]])
>>> mlb.classes_
array([1, 2, 3])
>>> mlb.fit_transform([{'sci-fi', 'thriller'}, {'comedy'}])
array([[0, 1, 1],
       [1, 0, 0]])
>>> list(mlb.classes_)
['comedy', 'sci-fi', 'thriller']

Ein häufiger Fehler ist das Übergeben einer Liste, was zu folgendem Problem führt

>>> mlb = MultiLabelBinarizer()
>>> mlb.fit(['sci-fi', 'thriller', 'comedy'])
MultiLabelBinarizer()
>>> mlb.classes_
array(['-', 'c', 'd', 'e', 'f', 'h', 'i', 'l', 'm', 'o', 'r', 's', 't',
    'y'], dtype=object)

Um dies zu korrigieren, sollte die Liste der Labels wie folgt übergeben werden:

>>> mlb = MultiLabelBinarizer()
>>> mlb.fit([['sci-fi', 'thriller', 'comedy']])
MultiLabelBinarizer()
>>> mlb.classes_
array(['comedy', 'sci-fi', 'thriller'], dtype=object)
fit(y)[source]#

Passt den Label-Sets-Binarizer an und speichert die classes_.

Parameter:
yiterierbar von iterierbaren Objekten

Eine Menge von Labels (jedes ordnungsfähige und hasbare Objekt) für jedes Sample. Wenn der Parameter classes gesetzt ist, wird y nicht durchlaufen.

Gibt zurück:
selfobject

Angepasster Schätzer.

fit_transform(y)[source]#

Passt den Label-Sets-Binarizer an und transformiert die gegebenen Label-Sets.

Parameter:
yiterierbar von iterierbaren Objekten

Eine Menge von Labels (jedes ordnungsfähige und hasbare Objekt) für jedes Sample. Wenn der Parameter classes gesetzt ist, wird y nicht durchlaufen.

Gibt zurück:
y_indicator{ndarray, sparse matrix} der Form (n_samples, n_classes)

Eine Matrix, so dass y_indicator[i, j] = 1 genau dann, wenn classes_[j] in y[i] enthalten ist, und sonst 0.

get_metadata_routing()[source]#

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)[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.

inverse_transform(yt)[source]#

Transformiert die gegebene Indikatormatrix in Label-Sets.

Parameter:
yt{ndarray, sparse matrix} der Form (n_samples, n_classes)

Eine Matrix, die nur 1en und 0en enthält.

Gibt zurück:
y_originalListe von Tupeln

Die Menge der Labels für jedes Sample, so dass y[i] aus classes_[j] für jedes yt[i, j] == 1 besteht.

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

Transformiert die gegebenen Label-Sets.

Parameter:
yiterierbar von iterierbaren Objekten

Eine Menge von Labels (jedes ordnungsfähige und hasbare Objekt) für jedes Sample. Wenn der Parameter classes gesetzt ist, wird y nicht durchlaufen.

Gibt zurück:
y_indicatorarray oder CSR-Matrix, Form (n_samples, n_classes)

Eine Matrix, so dass y_indicator[i, j] = 1 genau dann, wenn classes_[j] in y[i] enthalten ist, und sonst 0.