Daten vorbereiten

Im Kurs Datenvorbereitung und Feature Engineering für maschinelles Lernen geht es um die allgemeine Datenvorbereitung. In diesem Kurs geht es jedoch um die spezifische Vorbereitung eines Clusters.

Beim Clustering wird die Ähnlichkeit zwischen zwei Beispielen berechnet. Dazu werden alle Merkmalsdaten für diese Beispiele zu einem numerischen Wert kombiniert. Für die Kombination von Merkmalsdaten müssen die Daten dieselbe Skalierung haben. In diesem Abschnitt wird das Normalisieren, Transformieren und Erstellen von Quantilen behandelt und erläutert, warum Quantile die beste Standardauswahl für die Transformation einer Datenverteilung sind. Mit einer Standardauswahl können Sie die Daten transformieren, ohne die Verteilung der Daten zu prüfen.

Daten werden normalisiert

Sie können Daten für mehrere Features in dieselbe Skalierung umwandeln, indem Sie die Daten normalisieren. Die Normalisierung eignet sich besonders für die Verarbeitung der gängigsten Datenverteilung, der Gaußschen Verteilung. Im Vergleich zu Quantilen erfordert die Normalisierung wesentlich weniger Daten für die Berechnung. So normalisieren Sie Daten, indem Sie ihren Z-Score berechnen:

\[x'=(x-\mu)/\sigma\\ \begin{align*} \text{where:}\quad \mu &= \text{mean}\\ \sigma &= \text{standard deviation}\\ \end{align*} \]

Sehen wir uns die Ähnlichkeit zwischen Beispielen mit und ohne Normalisierung an. In Abbildung 1 sehen Sie, dass Rot eher blau als gelb ähnelt. Die Merkmale auf der x- und y-Achse haben jedoch nicht dieselbe Skalierung. Daher kann die beobachtete Ähnlichkeit ein Artefakt mit nicht skalierten Daten sein. Nach der Normalisierung mit dem Z-Score haben alle Features dieselbe Skalierung. Rot ist jetzt eher gelb. Daher können Sie nach der Normalisierung von Daten die Ähnlichkeit genauer berechnen.

Zwei Diagramme, die Featuredaten vor und nach der Normalisierung vergleichen
Abbildung 1: Vergleich der Merkmalsdaten vor und nach der Normalisierung

Sie können die Normalisierung anwenden, wenn einer der folgenden Punkte zutrifft:

  • Ihre Daten haben eine Gauß-Verteilung.
  • In Ihrem Dataset sind nicht genügend Daten vorhanden, um Quantile zu erstellen.

Log-Transformation verwenden

Manchmal erfüllt ein Dataset eine Stromversorgung, die Daten am unteren Ende bündelt. In Abbildung 2 ist Rot näher an Gelb als Blau.

Ein Balkendiagramm mit den meisten Daten im unteren Bereich
Abbildung 2: Eine Stromverteilung.

Verteilen Sie eine Power-law-Distribution mit einer Logtransformation. In Abbildung 3 ist die Logtransformation gleichmäßiger und Rot näher an Blau als Gelb.

Grafik zur Normalverteilung (Gaußsche Verteilung)
Abbildung 3: Eine normale (Gauß-)Verteilung

Quantile verwenden

Normalisierungs- und Logtransformationen adressieren bestimmte Datenverteilungen. Was passiert, wenn Daten keiner Gauß- oder Power- Law-Distribution entsprechen? Gibt es einen allgemeinen Ansatz, der auf alle Datenverteilungen anwendbar ist?

Wir versuchen, diese Verteilung vorzuverarbeiten.

Ein Diagramm, das die Datenverteilung vor der Vorverarbeitung zeigt
Abbildung 4: Eine nicht kategorisierbare Verteilung vor der Vorverarbeitung.

Wenn zwischen den beiden Beispielen nur wenige Beispiele enthalten sind, sind sie unabhängig von ihren Werten ähnlich. Umgekehrt sind die beiden Beispiele weniger ähnlich, wenn sie viele Beispiele enthalten. Daher nimmt die Ähnlichkeit zwischen zwei Beispielen ab, je mehr Beispiele sie enthalten.

Durch die Normalisierung der Daten wird die Datenverteilung einfach reproduziert, da die Normalisierung eine lineare Transformation ist. Das Anwenden einer Logtransformation spiegelt Ihre Intuition nicht wider, wie in Abbildung 5 dargestellt.

Diagramm, das die Datenverteilung nach einer Logtransformation zeigt
Abbildung 5: Verteilung nach einer Logtransformation

Teilen Sie die Daten stattdessen in Intervalle auf, bei denen jedes Intervall dieselbe Anzahl von Beispielen enthält. Diese Intervallgrenzen werden Quantile genannt.

Führen Sie die folgenden Schritte aus, um Ihre Daten in Quantile umzuwandeln:

  1. Legen Sie die Anzahl der Intervalle fest.
  2. Definieren Sie Intervalle so, dass jedes Intervall dieselbe Anzahl von Beispielen enthält.
  3. Ersetzen Sie jedes Beispiel durch den Index des Intervalls, in das es fällt.
  4. Bringen Sie die Indexe in den gleichen Bereich wie andere Merkmalsdaten, indem Sie die Indexwerte auf [0,1] skalieren.
Ein Diagramm, das die Daten nach der Konvertierung in Quantile zeigt. Die Linie steht für 20 Intervalle.]
Abbildung 6: Verteilung nach der Konvertierung in Quantile

Nach der Konvertierung von Daten in Quantile ist die Ähnlichkeit zwischen zwei Beispielen umgekehrt proportional zur Anzahl der Beispiele zwischen diesen beiden Beispielen. Oder mathematisch, wobei „x“ ein beliebiges Beispiel im Dataset ist:

  • \(sim(A,B) \approx 1 − | \text{prob}[x > A] − \text{prob}[x > B] |\)
  • \(sim(A,B) \approx 1 − | \text{quantile}(A) − \text{quantile}(B) |\)

Quantile sind die beste Standardeinstellung für die Transformation von Daten. Um jedoch Quantile zu erstellen, die zuverlässige Indikatoren für die zugrunde liegende Datenverteilung sind, benötigen Sie viele Daten. Als Faustregel gilt: Zum Erstellen von \(n\) Quantilen sollten mindestens \(10n\) Beispiele vorhanden sein. Wenn nicht genügend Daten vorhanden sind, solltest du dich für die Normalisierung entscheiden.

Wissenstest

Bei den folgenden Fragen wird davon ausgegangen, dass Ihnen genügend Daten zur Verfügung stehen, um Quantile zu erstellen.

Frage 1

Ein Diagramm mit drei Datenverteilungen
Wie würden Sie diese Datenverteilung verarbeiten?
Erstellen Sie Quantile.
Richtig! Da die Verteilung nicht mit einer Standarddatenverteilung übereinstimmt, sollten Sie auf das Erstellen von Quantilen zurückgreifen.
Normalisieren.
Normalerweise normalisieren Sie Daten, wenn:
  • Die Datenverteilung ist Gauß.
  • Du hast gelernt, was die Daten bedeuten und was bedeutet, dass die Daten nicht linear umgewandelt werden sollten. So vermeiden Sie Quantile und wählen stattdessen die Normalisierung aus.
Hier trifft keiner der Fälle zu. Die Datenverteilung ist nicht Gauß-Daten, da sie nicht symmetrisch ist. Außerdem wissen Sie nicht, was diese Werte in der realen Welt darstellen.
Logtransformation.
Nicht die beste Wahl, da dies keine perfekte Potenzverteilung ist.

Frage 2

Ein Diagramm mit drei Datenverteilungen
Wie würden Sie diese Datenverteilung verarbeiten?
Normalisieren.
Richtig! Das ist eine Gauß-Verteilung.
Erstellen Sie Quantile.
Falsch. Da dies eine Gauß-Verteilung ist, ist die bevorzugte Transformation Normalisierung.
Logtransformation.
Falsch. Log-Transformation nur auf Potenzverteilung anwenden

Fehlende Daten

Wenn in Ihrem Dataset Beispiele für fehlende Werte für eine bestimmte Funktion vorhanden sind, solche Beispiele jedoch nur selten vorkommen, können Sie diese entfernen. Wenn solche Beispiele häufig vorkommen, können wir diese Funktion entweder vollständig entfernen oder die fehlenden Werte aus anderen Beispielen mithilfe eines Modells für maschinelles Lernen vorhersagen. Sie können beispielsweise fehlende numerische Daten ableiten, indem Sie ein Regressionsmodell verwenden, das mit vorhandenen Featuredaten trainiert wurde.