One hot encoding des string kategorischen features

Ich versuche, führen Sie eine one-hot-Kodierung des trivialen Datensatzes.

data = [['a', 'dog', 'red']
        ['b', 'cat', 'green']]

Was ist der beste Weg Vorverarbeitung dieser Daten mit Hilfe von Scikit-Learn?

Auf dem ersten Instinkt, würden Sie Ihren Blick auf Scikit-Learn ist OneHotEncoder. Aber die one-hot-encoder unterstützt keine strings als Funktionen, sondern nur diskretisiert zahlen.

So, dann würden Sie einen LabelEncoder, würde die Kodierung der strings in zahlen. Aber dann haben Sie auf anwenden, um die label-encoder in den einzelnen Spalten und speichern jedes dieser label-Encoder (wie auch die Spalten, die Sie angewendet wurden, auf). Und das fühlt sich extrem klobig.

So, was ist das besten Weg, es zu tun in Scikit-Learn?

Bitte nicht schlagen pandas.get_dummies. Das ist, was ich verwende in der Regel heute für eine hot-encodings. Aber seine begrenzt in der Tatsache, dass Sie nicht die Kodierung Trainings /test-set separat.

  • auch pandas.get_dummies binäre Codierung behandelt wird als kontinuierliche, durch die decision tree classifier, die es nicht anwendbar für dieses Szenario.
InformationsquelleAutor hlin117 | 2016-01-30
Schreibe einen Kommentar