Die Datenaufbereitung ist ein wichtiger Schritt im maschinellen Lernen, um Daten für Algorithmen nutzbar zu machen. Dies beinhaltet, die Ohne Hot Encoding, die später erläutert wird.

Im wesentlichen gibt es insgesamt die folgende Arten von Daten

Strukturierte Daten

Strukturierte Daten sind Informationen, die in einem vordefinierten Format organisiert sind, z. B. in Tabellen mit Spalten und Zeilen. Beispiele für strukturierte Daten sind:

  • Metrische Daten
    • Zahlenwerte als Kommazahlen wie Abmessungen, Preise oder Temperaturen
  • Ordinale Daten
    • Kategorielle Daten mit einer Rang/Ordnung wie die Güte eines Diamantenschliffs (Fair, Good, Ver Good, Preminum)
  • Nominale Daten
    • Kategorielle Daten ohne Ordnung, z.B. der Kraftstofftyp eines Autos (Benzin, Diesel, Hybrid)

Unstrukturierte Daten

Unstrukturierte Daten haben kein vordefiniertes Format. Beispiele hierfür sind:

  • Freitext: z.B. die Überschrift einer Fahrzeuganzeige

Info

Unstrukturierte Daten sind für viele Algorithmen des maschinellen Lernens schwer zu verarbeiten und müssen oft in strukturierte Daten umgewandelt werden.

One Hot Encoding

Das Umwandeln von nominalen Daten (Kategorien ohne Ordnung) in numerische Daten mit One-Hot Encoding.

  • eine zusätzliche Spalte wird für jede Kategorie erstellt, die
    • den Wert 1 hat, wenn der Datensatz zu dieser Kategorie gehört
    • sonst Wert 0

Die letzte Spalte ist immer redundant und deshalb wird sie gelöscht.

Wenn man diese verwendet, dann bekommt man Datensätze mit vielen Spalten. Man kann die nicht benötigte Zeile mit der methode drop gleich aus dem Datensatz entfernen.

Beispiel

df = pd.get_dummies(df, columns = ["fuelType"]) # One Hot Encoding für die Spalte "fuelType"
df =df.drop(labels=["fuelType_lpg"],axis = 1) # Redundante One-Hot-Spalte löschen
df =df.drop(labels=["model", "name"],axis = 1)
 
X = df[["price", "yearOfRegistration", "powerPS", "kilometer", 
        "fuelType_benzin", "fuelType_diesel", "fuelType_hybrid"]].values
 
df.head()

Ausgabe:

priceyearOfRegistrationpowerPSkilometerfuelType_benzinfuelType_dieselfuelType_hybrid
145019977590000TrueFalseFalse
1310020052805000TrueFalseFalse
450020088790000TrueFalseFalse
60002009177125000FalseTrueFalse
3990199911890000TrueFalseFalse

Ordinale Daten

Das Umwandeln von ordinalen Daten (Kategorien mit Ordnung)in nummerische Daten, indem die Kategorien mit Zahlen ersetzt werden, die ihre Reihenfolge wiederspiegeln

Beispiel

Man kann die enthaltene Wert einer Spalte mit verschiedenen Ordinalen Daten zeigen:

print(df["cut"].value_counts())
print(df["cut"].value_counts().count())

Ausgabe:

cut
Ideal        21551
Premium      13791
Very Good    12082
Good          4906
Fair          1610
Name: count, dtype: int64
5

Mit dem Wissen über die Reihenfolge erstellt man eine ´replace map`und gibt diese in die Methode replace()

replace_map = {'cut': {'Fair': 1,  'Good':2, 'Very Good':3, 'Premium':4, 'Ideal':5},
              'color': {'D': 7,  'E': 6, 'F': 5, 'G':4, 'H':3, 'I': 2, 'J': 1 },
              'clarity': {'FL': 1,  'IF':2, 'VVS1':3, 'VVS2':4, 'VS1':5, 'VS2':6, 'SI1':7, 'SI2':8, 'l1':9, 'l2':10, 'l3':11}}
df = df.replace(replace_map)
df.head()

Ausgabe:

cut
5
4
2
4
2

Quiz

Quizfragen zu Datenaufbereitung, strukturierten und unstrukturierten Daten


Datenaufbereitung

Frage 1: Was ist der Zweck des One-Hot Encodings bei der Datenaufbereitung?

a) Nominale Daten in metrische Daten umwandeln.
b) Ordinale Daten in numerische Werte umwandeln.
c) Fehlende Werte in einem Datensatz ersetzen.
d) Die Dimensionalität eines Datensatzes reduzieren.


Frage 2: Welche Aussage über ordinale Daten ist korrekt?

a) Sie können direkt von Machine-Learning-Algorithmen verarbeitet werden.
b) Sie haben keine Reihenfolge oder Rangfolge.
c) Sie können durch Ersetzen der Kategorien durch Zahlen in numerische Werte umgewandelt werden.
d) Sie werden mit One-Hot Encoding in numerische Daten umgewandelt.


Strukturierte Daten

Frage 3: Welche der folgenden Datentypen gehören zu den strukturierten Daten?

a) Freitext
b) Bilder
c) Metrische Daten
d) Audioaufnahmen


Frage 4: Welches Beispiel beschreibt metrische Daten?

a) Die Farbe eines Autos (rot, blau, grün)
b) Die Größe eines Diamanten in Karat
c) Der Kraftstofftyp eines Fahrzeugs (Benzin, Diesel, Elektro)
d) Die Bewertung eines Films auf einer Skala von 1 bis 5 Sternen


Frage 5: Nennen Sie ein Beispiel für ordinale Daten in einem Datensatz über Diamanten.

a) Der Preis eines Diamanten
b) Das Gewicht eines Diamanten in Karat
c) Die Reinheit eines Diamanten (z. B. FL, IF, VVS1, VVS2)
d) Die Farbe eines Diamanten (z. B. D, E, F, G)


Unstrukturierte Daten

Frage 6: Welche Aussage über unstrukturierte Daten ist richtig?

a) Sie sind in einem vordefinierten Format organisiert.
b) Sie können direkt von den meisten Machine-Learning-Algorithmen verarbeitet werden.
c) Sie lassen sich leicht in Tabellenform darstellen.
d) Sie erfordern oft eine Vorverarbeitung, um für Machine-Learning-Algorithmen nutzbar zu sein.


Frage 7: Welches der folgenden Beispiele ist ein Beispiel für unstrukturierte Daten?

a) Eine CSV-Datei mit Kundendaten
b) Ein Bild einer Katze
c) Eine Datenbanktabelle mit Verkaufszahlen
d) Eine Liste mit Temperaturmessungen