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.
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.
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.
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.
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.
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:
- Legen Sie die Anzahl der Intervalle fest.
- Definieren Sie Intervalle so, dass jedes Intervall dieselbe Anzahl von Beispielen enthält.
- Ersetzen Sie jedes Beispiel durch den Index des Intervalls, in das es fällt.
- Bringen Sie die Indexe in den gleichen Bereich wie andere Merkmalsdaten, indem Sie die Indexwerte auf [0,1] skalieren.
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
- 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.
Frage 2
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.