[PYTHON] "Verwendbare" One-Hot-Codierungstechnik für maschinelles Lernen

Einführung

Selbst wenn ich studiere, werde ich es bald vergessen, also werde ich einen Artikel an Qiita senden, um Memorandum und Ausgabepraxis zu erhalten. Ich wäre Ihnen dankbar, wenn Sie Fehler oder bessere Möglichkeiten kommentieren könnten.

Idee

Ich möchte One-Hot-Codierung mit maschinellem Lernen durchführen, weiß aber nicht, welche Art von Daten in den Testdaten enthalten sind. Jede Site sagt, dass Sie, wenn Sie One-Hot-Codierung durchführen möchten, "get_dummies" verwenden sollten, aber zum Beispiel ** train_df ['sex'] hat männlich und weiblich, aber test_df ['sex'] hat nur männlich ** In einem solchen Fall ändert sich die Anzahl der erstellten Spalten, wenn Sie normalerweise "get_dummies" verwenden. das ist nicht gut.

Nach vielen Recherchen kam ich zu folgendem Artikel.

[Python] Verwenden Sie pandas.get_dummies nicht zum maschinellen Lernen

Der Artikel selbst verwendet nicht get_dummies, sondern den OneHotEncoder von Sklearn. Ich wollte jedoch die Daten im Pandas-Format analysieren und sie schließlich in das Numpy-Format konvertieren, daher war ich besonders daran interessiert, etwas mit Pandas zu tun.

Das wird im Kommentar des Artikels ↑ erklärt, und in diesem Artikel werde ich es so weit fallen lassen, dass ich es auf meine eigene Weise kauen kann.

Implementierung

Die Implementierung endet mit get_dummies.

# (i) df_Ein einzigartiger Zug ist"hoge"Wann"fuga".. B einzigartig"a"Wann"b"
df_train = pd.DataFrame({"A": ["hoge", "fuga"], "B": ["a", "b"]})

# (ii) df_Ein einzigartiger Zug ist"hoge"Wann"piyo".. B einzigartig"a"Wann"c"
df_test = pd.DataFrame({"A": ["hoge", "piyo"], "B": ["a", "c"]})

# (iii)In Kategorie A ist"hoge"Wann"fuga"B."a"Wann"b"だよWann決め打ちしてしまう
df_train["A"] = pd.Categorical(df_train["A"], categories=["hoge", "fuga"])
df_train["B"] = pd.Categorical(df_train["B"], categories=["a", "b"])
df_test["A"] = pd.Categorical(df_test["A"], categories=["hoge", "fuga"])
df_test["B"] = pd.Categorical(df_test["B"], categories=["a", "b"])

# (iv) get_einer mit Dummies-hot
df_train = pd.get_dummies(df_train)
df_test = pd.get_dummies(df_test)

Die endgültigen One-Hot-Daten lauten wie folgt.

df_train
   A_hoge  A_fuga  B_a  B_b
0       1       0    1    0
1       0       1    0    1
df_test
   A_hoge  A_fuga  B_a  B_b
0       1       0    1    0
1       0       0    0    0

Ich konnte nur den einzigartigen Zug sicher benutzen. Dieses Mal wurde es durch harte Codierung unterstützt, aber wenn Sie "einzigartig" separat verwenden, können Sie flexibler damit umgehen.

Ergänzung

Der Grund, warum df_train auch die Kategorie korrigiert, ist, dass wenn dies nicht getan wird, die Reihenfolge von hoge und fuga umgekehrt wird.

Recommended Posts

"Verwendbare" One-Hot-Codierungstechnik für maschinelles Lernen
Japanische Vorverarbeitung für maschinelles Lernen
Lernmethode zum Lernen von maschinellem Lernen von Grund auf neu (Version März 2020)
Ausgabe der Lernmethode für die LPIC-Erfassung
<Für Anfänger> Python-Bibliothek <Für maschinelles Lernen>
Informationen zum maschinell erlernten Meeting für HRTech
Algorithmus für maschinelles Lernen (Gradientenabstiegsmethode)
[Empfohlenes Tagging für maschinelles Lernen # 4] Skript für maschinelles Lernen ...?
Newton-Methode für maschinelles Lernen (von 1 Variablen zu mehreren Variablen)
Maschinelles Lernen
Verstärken Sie Bilder für maschinelles Lernen mit Python
Erste Schritte für Anfänger des maschinellen Lernens (KI)
Eine Einführung in OpenCV für maschinelles Lernen
[Shakyo] Begegnung mit Python zum maschinellen Lernen
[Python] Webanwendungsdesign für maschinelles Lernen
Eine Einführung in Python für maschinelles Lernen
Erstellen einer Entwicklungsumgebung für maschinelles Lernen
Eine Einführung in maschinelles Lernen für Bot-Entwickler
Teilweise One-Hot-Codierung
Empfohlene Studienreihenfolge für Anfänger des maschinellen Lernens / Deep Learning
Maschinelles Lernen ab 0 für theoretische Physikstudenten # 1
[Python] Sammeln Sie Bilder mit Icrawler für maschinelles Lernen [1000 Blatt]
Maschinelles Lernen ab 0 für theoretische Physikstudenten # 2
[Memo] Maschinelles Lernen
Sammeln Sie Bilder für maschinelles Lernen (Bing Search API)
Klassifikation des maschinellen Lernens
[Für Anfänger] Einführung in die Vektorisierung beim maschinellen Lernen
Ein Memorandum über Methoden, die häufig beim maschinellen Lernen mit Scikit-Learn (für Anfänger) verwendet werden.
Beispiel für maschinelles Lernen
Bildersammlung Python-Skript zum Erstellen von Datensätzen für maschinelles Lernen
Erstellen Sie mit Python eine interaktive Umgebung für maschinelles Lernen
[Empfohlenes Tagging beim maschinellen Lernen # 2] Erweiterung des Scraping-Skripts
[Empfohlenes Tagging beim maschinellen Lernen # 2.5] Änderung des Scraping-Skripts
Python-Lernnotiz für maschinelles Lernen von Chainer aus Kapitel 2
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 1 und 2
Maschinelles Lernen #k Nachbarschaftsmethode und deren Implementierung und verschiedene
Vorbereitung zum Starten von "Python Machine Learning Programming" (für macOS)
[Python] Ich habe einen Klassifikator für Iris erstellt [Maschinelles Lernen]
14 E-Mail-Newsletter zum Sammeln von Informationen zum maschinellen Lernen
Konstruktionsnotiz für eine maschinelle Lernumgebung von Python
xgboost: Effektives Modell für maschinelles Lernen für Tabellendaten
Alles für Anfänger, um maschinelles Lernen zu können
Zusammenfassung des Lernprogramms für maschinelles Lernen
Maschinelles Lernen ⑤ AdaBoost-Zusammenfassung
Maschinelles Lernen: Betreut --AdaBoost
Stärkung des Lernens der dritten Zeile
Maschinelles Lernen unterstützt Vektormaschine
Maschinelles Lernen studieren ~ matplotlib ~
Lineare Regression des maschinellen Lernens
Memo zum Kurs für maschinelles Lernen
Bibliothek für maschinelles Lernen dlib
Maschinelles Lernen (TensorFlow) + Lotto 6
Lerne irgendwie maschinelles Lernen
Zusammenfassung zum Lernen von RAPIDS
Bibliothek für maschinelles Lernen Shogun
Maschinelles Lernen Kaninchen Herausforderung
Einführung in das maschinelle Lernen
Maschinelles Lernen: k-Nächste Nachbarn
Was ist maschinelles Lernen?
Neuerstellung der Umgebung für maschinelles Lernen mit Miniconda (Windows-Version)