KI Elemente

Viele Teile ergeben ein Ganzes! Die Kunst unwichtige Details zu vermeiden!

One - Hot Encoding

Wenn Daten in einer nicht genau festgelegten Reihenfolge vorliegen, dann empfiehlt sich One-Hot Encoding. Dabei wird aus jedem Eintrag ein binärer Vektor gebaut. Dabei enthält dieser Vektor so viele Elemente wie verschiedene Werte vorliegen.

Im folgenden Beispiel kommen 5 verschiedene Farben vor. Bei der Anwendung von Hot-Encoding wird jede Farbe durch einen 5-stelligen Vektor dargestellt. Dieser Vektor ist binär, das heißt, er besteht aus Einsen und Nullen. An einer bestimmten Stelle wir für die jeweilige Farbe eine 1 gesetzt und eine 0 für alle anderen Elemente.

Im folgenden Beispiel wird der One-Hot-Encoder von "scikit-learn" verwendet. Dieser benötigt als Eingabewerte ein Array von Integer - Werten.

Beispiel: OneHotEncoding.py

# Stuhlpfarrer Ehrenfried - 2021
# Demo Feature Engineering - One Hot Encoding
# Import scikit-learn und pandas für Label Encoding
from sklearn import preprocessing
import pandas as pd

one_enc = preprocessing.OneHotEncoder(sparse=False)
help_enc = preprocessing.LabelEncoder()

daten_liste = {
'Farben': ["braun", "schwarz", "gruen", "blau", "schwarz", "rot", "rot", "gelb", "schwarz", "schwarz"]
}

df = pd.DataFrame(daten_liste, columns=['Farben'])

# Umwandlung der Farben String - Daten in Integer (Ganzzahlen)
help_col = help_enc.fit_transform(df['Farben'])
print("Die Farben als Zahlen: ", help_col)
farbenCodiert = one_enc.fit_transform(help_col.reshape(len(df['Farben']),-1))
print("Farben kodiert: ", farbenCodiert)
Die Farben als Zahlen:  [1 5 3 0 5 4 4 2 5 5]
Farben kodiert:  [[0. 1. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 1.]
 [0. 0. 0. 1. 0. 0.]
 [1. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 1.]
 [0. 0. 0. 0. 1. 0.]
 [0. 0. 0. 0. 1. 0.]
 [0. 0. 1. 0. 0. 0.]
 [0. 0. 0. 0. 0. 1.]
 [0. 0. 0. 0. 0. 1.]]

Nachteil: Große Datenmenge, die den Suchraum für die jeweilige Aufgabe erweitert.

KI

Copyright © 2021. All Rights Reserved. Ehrenfried Stuhlpfarrer