Richtlinien für die Anwendung der Normalisierung
Min-Max-Skalierung: Die Min-Max-Skalierung eignet sich für Algorithmen, bei denen Eingabefunktionen innerhalb eines bestimmten Bereichs liegen müssen, z. B. neuronale Netzwerke und unterstützende Vektormaschinen. Stellen Sie sicher, dass Ausreißer angemessen gehandhabt werden, da sie die Skalierung beeinträchtigen können.
Normalisierung des Z-Scores: Dies eignet sich für Algorithmen wie k-Means-Clustering, lineare Regression und logistische Regression. Dies führt zu einer Verteilung, die um 0 mit einer Standardabweichung von 1 zentriert ist, was sie ideal für Algorithmen macht, die normal verteilte Daten annehmen.
Sparse-Daten: Für spärliche Datensätze (wobei die meisten Werte null sind) sollten Sie Techniken wie MaxAbsScaler oder RobustScaler für die Normalisierung in Betracht ziehen.
Kategorische Daten: Bei kategorischen Funktionen sollten Sie vor der Normalisierung Techniken wie One-Hot-Codierung in Betracht ziehen, um eine sinnvolle Skalierung sicherzustellen.
Es ist wichtig zu beachten, dass die Wahl der Normalisierungstechnik von den spezifischen Eigenschaften Ihrer Daten und den Anforderungen des von Ihnen geplanten maschinellen Lernalgorithmus abhängt. Experimente und das Verständnis der Auswirkungen auf die Modell-Performance sind wichtige Aspekte bei der effektiven Anwendung der Normalisierung.
3. Funktionsskalierung
Die Funktionsskalierung ist eine Datenvorverarbeitungstechnik, die verwendet wird, um den Bereich unabhängiger Variablen oder Funktionen eines Datensatzes zu standardisieren. Das Ziel der Funktionsskalierung ist es, alle Funktionen in eine ähnliche Größenordnung oder einen ähnlichen Bereich zu bringen, um zu vermeiden, dass eine Funktion während des Modelltrainings oder der Modellanalyse gegenüber anderen dominiert. Die Funktionsskalierung kann die Konvergenzgeschwindigkeit von Optimierungsalgorithmen verbessern und verhindern, dass bestimmte Funktionen übermäßigen Einfluss auf das Modell haben.
Die Rolle der Funktionsskalierung bei der Datenvorverarbeitung
Die Skalierungsfunktionen stellen sicher, dass ML-Algorithmen alle Funktionen gleich behandeln und so Verzerrungen gegenüber Funktionen mit größeren Skalierungen verhindern. Es verbessert auch Konvergenzen, da viele Optimierungsalgorithmen (z. B. Gradientenabstieg) schneller konvergieren, wenn Funktionen skaliert werden, was zu einem schnelleren Modelltraining führt. Es kann auch numerische Instabilitätsprobleme verhindern, die aufgrund großer Unterschiede in den Funktionsgrößen auftreten können. Und schließlich kann die Skalierung die Interpretation der Auswirkungen von Funktionen auf die Vorhersagen des Modells erleichtern.
Skalierungsmethoden für Funktionen
Neben der oben beschriebenen Min-Max-Skalierung und der Normalisierung des Z-Scores gibt es auch:
MaxAbsScaler: Dadurch wird jedes Merkmal nach seinem maximalen absoluten Wert skaliert, sodass die resultierenden Werte zwischen -1 und 1 liegen. Es eignet sich für spärliche Daten, bei denen es wichtig ist, null Einträge zu speichern, z. B. in Textklassifizierungs- oder Empfehlungssystemen.
RobustScaler: Hierbei werden Statistiken verwendet, die für Ausreißer wie den Median und den Interquartilbereich (IQR) robust sind, um Funktionen zu skalieren. Es eignet sich für Datensätze, die Ausreißer oder verzerrte Verteilungen enthalten.
Richtlinien für die Anwendung von Funktionsskalierung
So wenden Sie die Funktionsskalierung an:
- Wenden Sie Standardisierung (Z-Score-Normalisierung) an, wenn die Daten einer normalen Verteilung folgen oder wenn Sie Algorithmen wie lineare Regression, logistische Regression oder K-Means-Clustering verwenden.
- Wenden Sie Normalisierung (Min-Max-Skalierung) an, wenn Sie möchten, dass die Daten innerhalb eines bestimmten Bereichs liegen, z. B. neuronale Netzwerke oder unterstützende Vektormaschinen.
- Verwenden Sie MaxAbsScaler, wenn Sie mit spärlichen Daten wie Textdaten oder hochdimensionalen spärlichen Funktionen umgehen.
- Verwenden Sie RobustScaler beim Umgang mit Datensätzen, die Ausreißer oder nicht normal verteilte Funktionen enthalten.
Denken Sie daran, dass kategorische Funktionen möglicherweise eine Codierung (z. B. One-Hot-Codierung) erfordern, bevor Sie die Funktionsskalierung anwenden, insbesondere wenn sie nominal sind (ungeordnete Kategorien).
4. Umgang mit kategorischen Daten
Kategorische Variablen stellen Gruppen oder Kategorien dar und sind oft nicht-numerischer Natur, was während des Modelltrainings Herausforderungen mit sich bringt, darunter:
- Nichtnumerische Darstellung: Kategorische Variablen werden in der Regel durch Zeichenfolgen oder Bezeichnungen dargestellt, die die meisten Algorithmen für maschinelles Lernen nicht direkt verarbeiten können. Algorithmen erfordern numerische Eingaben für Training und Vorhersagen.
- Ordinale vs. nominale Variablen: Kategorische Variablen können entweder ordinal (mit einer sinnvollen Reihenfolge) oder nominal (ohne eine bestimmte Reihenfolge) sein. Die Behandlung von Ordinalvariablen als nominal oder umgekehrt kann zu falschen Modellinterpretationen oder verzerrten Vorhersagen führen.
- Fluch der Dimensionalität: Eine One-Hot-Codierung, eine gängige Technik für den Umgang mit kategorischen Daten, kann zu einer Zunahme der Dimensionalität des Datensatzes führen, insbesondere bei einer Vielzahl von eindeutigen Kategorien. Dies kann die Modell-Performance beeinträchtigen und die Rechenkomplexität erhöhen.
Techniken zum Codieren kategorischer Variablen
Zu den Techniken zum Codieren kategorischer Variablen gehören:
Kennzeichnungscodierung: Die Kennzeichnungscodierung weist jeder Kategorie in einer kategorischen Variable eine eindeutige numerische Kennzeichnung zu. Es eignet sich für ordinale Variablen, bei denen es eine sinnvolle Reihenfolge zwischen den Kategorien gibt.
Hier ist ein Beispiel für Pythons wissenschaftliches Wissen:
von sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
coded_labels = le.fit_transform(['cat', 'dog', 'kanbit', 'dog'])
Einmalige Codierung: One-Hot-Codierung erstellt binäre Spalten für jede Kategorie in einer kategorischen Variable, wobei jede Spalte das Vorhandensein oder Nichtvorhandensein dieser Kategorie angibt. Es eignet sich für nominale Variablen ohne eine bestimmte Reihenfolge zwischen den Kategorien.
Hier ist ein Beispiel für Pandas:
Pandas als PD importieren
df = pd.DataFrame({'category': ['A', 'B', 'C', 'A']})
one_hot_encoded = pd.get_dummies(df['category'], prefix='category')
Dummy-Codierung: Die Dummy-Codierung ähnelt der One-Hot-Codierung, lässt jedoch eine der binären Spalten fallen, um Multikollinearitätsprobleme in linearen Modellen zu vermeiden. Sie wird häufig in Regressionsmodellen verwendet, bei denen eine Kategorie als Referenzkategorie dient.
Hier ist ein Beispiel für Pandas:
dummy_encoded = pd.get_dummies(df['category'], prefix='category', drop_first=True)
Richtlinien für den Umgang mit kategorischen Daten
Um kategorische Daten korrekt zu verarbeiten, sollten Sie:
Variable Typen verstehen: Bestimmen Sie, ob kategorische Variablen ordinal oder nominal sind, um die geeignete Codierungstechnik auszuwählen.
Vermeiden Sie ordinale Fehlinterpretationen: Seien Sie vorsichtig, wenn Sie die Kennzeichnungscodierung für nominale Variablen verwenden, da dies zu unbeabsichtigter Ordinalität in den Daten führen kann.
Umgang mit hoher Kardinalität: Bei kategorischen Variablen mit einer Vielzahl von eindeutigen Kategorien sollten Techniken wie Frequenzcodierung, Zielcodierung oder Dimensionalitätsreduktionstechniken wie PCA berücksichtigt werden.
Dies alles ist zusätzlich zu der bereits erwähnten Handhabung fehlender Werte und der Normalisierung numerischer Daten.
5. Umgang mit unausgewogenen Daten
Der Umgang mit unausgeglichenen Daten ist eine häufige Herausforderung beim maschinellen Lernen, insbesondere bei Klassifizierungsaufgaben, bei denen die Anzahl der Instanzen in einer Klasse (Minderheitsklasse) deutlich geringer ist als in den anderen Klassen (Mehrheitsklassen). Unausgewogene Daten können einen tiefgreifenden Einfluss auf das Modelltraining und die Bewertung haben, was zu voreingenommenen Modellen führt, die die Mehrheitsklasse bevorzugen und in Minderheitsklassen schlecht abschneiden.
Hier sind einige wichtige Punkte in Bezug auf unausgewogene Daten und Techniken für deren Handhabung:
Auswirkungen unausgewogener Daten auf die Modell-Performance
Modelle, die auf unausgewogenen Daten trainiert werden, neigen dazu, die Genauigkeit in der Mehrheitsklasse zu priorisieren und dabei die Minderheitsklasse zu vernachlässigen. Dies kann zu einer schlechten Performance bei den Vorhersagen der Minderheitsklasse führen. Außerdem können Metriken wie Genauigkeit in unausgewogenen Datensätzen irreführend sein, da eine hohe Genauigkeit dadurch entstehen kann, dass die Mehrheitsklasse richtig vorhergesagt und die Minderheitsklasse ignoriert wird. Bewertungskennzahlen wie Präzision, Erinnerung, F1-score und Fläche unter der ROC-Kurve (AUC-ROC) sind für unausgewogene Datensätze aussagekräftiger als für die Genauigkeit allein.
Techniken für den Umgang mit unausgewogenen Daten
Die häufigsten Techniken für den Umgang mit unausgewogenen Daten sind Über- und Unterbemusterung. Bei einer Überbemusterung wird die Anzahl der Instanzen in der Minderheitsklasse erhöht, um sie mit der Mehrheitsklasse in Einklang zu bringen. Unterbemusterung umfasst die Reduzierung der Anzahl der Instanzen in der Mehrheitsklasse, um sie mit der Minderheitsklasse in Einklang zu bringen. Sie können auch einen hybriden Ansatz verfolgen, indem Sie Über- und Unterbemusterung kombinieren.
Es gibt auch eine Klassengewichtung, bei der Sie die Klassengewichtungen während des Modelltrainings anpassen, um Fehler in der Minderheitsklasse mehr als Fehler in der Mehrheitsklasse zu bestrafen. Dies ist nur für Algorithmen nützlich, die Klassengewichtung unterstützen, wie z. B. logistische Regression oder Vektormaschinen.
Richtlinien für den Umgang mit unausgewogenen Daten
Um mit unausgewogenen Daten umzugehen, sollten Sie:
Datenverteilung verstehen: Analysieren Sie die Klassenverteilung in Ihrem Datensatz, um den Schweregrad des Ungleichgewichts zu bestimmen.
Wählen Sie die geeignete Technik aus: Wählen Sie die Überproben-, Unterproben- oder Hybridtechnik basierend auf Ihrer Datensatzgröße, Ihrem Ungleichgewichtsverhältnis und Ihren Rechenressourcen aus.
Metriken bewerten: Verwenden Sie geeignete Bewertungskennzahlen wie Präzision, Rückruf, F1-score oder AUC-ROC-Kurve, um die Modellleistung in beiden Klassen zu bewerten.
Kreuzvalidieren: Wenden Sie Techniken in validierungsübergreifenden Faltungen an, um Datenlecks zu vermeiden und zuverlässige Schätzungen der Modell-Performance zu erhalten.
Fazit
Die Datenvorverarbeitung trägt dazu bei, sicherzustellen, dass ML-Modelle auf qualitativ hochwertige, ordnungsgemäß formatierte Daten trainiert werden, was sich direkt auf die Performance, Genauigkeit und Verallgemeinerungsfähigkeit des Modells auswirkt. Durch die Behebung von Problemen wie fehlenden Werten, Ausreißern, kategorischen Variablen und Klassenungleichgewicht ermöglicht die Datenvorverarbeitung Modellen, fundiertere und genauere Vorhersagen zu treffen, was zu einer besseren Entscheidungsfindung in realen Anwendungen führt.
Mit der richtigen Datenvorverarbeitung können ML-Praktiker das volle Potenzial ihrer Daten ausschöpfen und genauere und zuverlässigere Vorhersagemodelle für verschiedene Anwendungen in verschiedenen Domänen erstellen.
Um dies jedoch in der Praxis wirklich zu erreichen, benötigen Sie zunächst eine flexible Daten-Storage-Lösung wie Pure Storage, die Ihnen hilft, AI und maschinelles Lernen zu beschleunigen und Ihre KIAIInitiativen in Unternehmen voranzubringen.