Im Gegensatz zu dem, was viele glauben, ist das leistungsfähigste Machine Learning Modell nicht unbedingt die beste Lösung.
Lassen Sie uns mit der Leistung des Modells beginnen und einige andere Überlegungen anstellen, die bei der Auswahl eines Modells zur Lösung eines Problems in Betracht gezogen werden sollten.
Es ist wichtig zu beachten, dass die Wahl des besten Modells immer von den spezifischen Anforderungen des Problems abhängt und es wichtig ist, verschiedene Modelle auszuprobieren und zu vergleichen, um die beste Leistung zu erzielen.
Für einen ersten Wurf habe ich hier ein einfaches Tool für die Auswahl von möglichen Modellen zum ausprobieren:
Performance
Die Qualität der Modellergebnisse ist ein wichtiger Faktor bei der Auswahl eines Modells. Algorithmen, die diese Leistung maximieren, sollten bevorzugt werden.
Je nach Problemstellung können verschiedene Metriken für die Analyse der Modellergebnisse nützlich sein. Zu den gebräuchlichsten Metriken gehören Genauigkeit, Präzision, Recall und f1-Score.
Denken Sie daran, dass nicht jede Metrik in jeder Situation funktioniert. Beispielsweise ist die Genauigkeit nicht geeignet, wenn Sie mit unausgewogenen Datensätzen arbeiten. Die Auswahl einer guten Metrik (oder einer Reihe von Metriken) zur Bewertung der Leistung Ihres Modells ist eine wichtige Aufgabe, bevor Sie mit der Modellauswahl beginnen können.
Einige der am häufigsten verwendeten ML-Modelle mit guter Leistung sind:
- Neuronale Netze (Deep Learning): Diese Modelle werden häufig verwendet, um Probleme in den Bereichen Computer Vision, NLP und Speech Recognition zu lösen.
- Random Forest: Ein Random Forest ist ein Ensemble-Modell, das aus mehreren Entscheidungsbäumen besteht und häufig für Probleme der Klassifikation und Regression verwendet wird.
- Gradient Boosting: Dies ist ein weiteres Ensemble-Modell, das auf Entscheidungsbäumen basiert und häufig für Probleme der Klassifikation und Regression verwendet wird.
- XGBoost: Eine spezielle Variante des Gradient Boosting, die oft als “Standard” für Machine Learning-Wettbewerbe verwendet wird.
- Support Vector Machines (SVMs): Diese Modelle werden häufig für Probleme der Klassifikation und Regression verwendet und sind besonders nützlich für Probleme mit hoher Dimension.
Erklärbarkeit
In vielen Situationen ist es sehr wichtig, die Ergebnisse eines Modells zu erklären. Leider funktionieren viele Algorithmen wie Black Boxes und die Ergebnisse sind schwer zu erklären, egal wie gut sie sind.
Der Mangel an Erklärbarkeit kann in solchen Situationen ein entscheidender Faktor sein.
Lineare Regression und Entscheidungsbäume sind gute Kandidaten, wenn Erklärbarkeit ein Thema ist. Neuronale Netze nicht so sehr.
Es ist wichtig zu verstehen, wie einfach das Ergebnis jedes Modells zu interpretieren ist, bevor man sich für einen guten Kandidaten entscheidet.
Einige der am häufigsten verwendeten ML-Modelle mit guter Erklärbarkeit sind:
- Entscheidungsbaum-Modelle: Diese Modelle erzeugen eine hierarchische Struktur, die leicht zu interpretieren und zu erklären ist.
- Linear Regression: Dies ist ein einfaches Modell, das leicht zu interpretieren und zu erklären ist, da es auf linearen Gleichungen basiert.
- Logistische Regression: Dies ist ein weiteres einfaches Modell, das leicht zu interpretieren und zu erklären ist und häufig für Probleme der Klassifikation verwendet wird.
- Lasso- und Ridge-Regression : Diese Modelle sind eine Erweiterung der Linear Regression, die durch die Verwendung von Regularisierungstechniken, die die Anzahl der verwendeten Feature reduzieren und somit die Erklärbarkeit erhöhen
- SHAP (SHapley Additive exPlanations) : Eine Methode, die dazu verwendet werden kann, um die Erklärbarkeit von Machine Learning-Modellen zu verbessern, indem die Beiträge jedes Merkmals zur Vorhersage erklärt werden.
Es ist jedoch zu beachten, dass die Erklärbarkeit oft ein Kompromiss zwischen Leistung und Verständlichkeit ist und dass die Wahl des besten Modells immer von den spezifischen Anforderungen des Problems abhängt.
Kategorisieren Sie das Problem
Kategorisieren Sie nach der Eingabe: Handelt es sich um beschriftete Daten, handelt es sich um ein Problem des überwachten Lernens. Handelt es sich um unmarkierte Daten mit dem Ziel, eine Struktur zu finden, handelt es sich um ein unüberwachtes Lernproblem. Wenn die Lösung die Optimierung einer Zielfunktion durch die Interaktion mit einer Umgebung beinhaltet, handelt es sich um ein Problem des verstärkten Lernens.
Nach Output kategorisieren: Wenn die Ausgabe des Modells eine Zahl ist, handelt es sich um ein Regressionsproblem. Wenn die Ausgabe des Modells eine Klasse ist, handelt es sich um ein Klassifizierungsproblem. Handelt es sich bei der Ausgabe des Modells um einen Satz von Eingabegruppen, handelt es sich um ein Clustering-Problem.
Es gibt mehrere Möglichkeiten, eine Problemstellung im Hinblick auf die Wahl des richtigen ML-Modells zu kategorisieren:
- Supervised Learning vs. Unsupervised Learning: Supervised Learning bezieht sich auf Probleme, bei denen es darum geht, auf der Grundlage von bekannten Eingabedaten und entsprechenden Ausgabedaten Vorhersagen zu treffen. Unsupervised Learning bezieht sich auf Probleme, bei denen es darum geht, Strukturen oder Muster in den Daten zu entdecken, ohne dass es vorher definierte Ausgaben gibt.
- Regression vs. Klassifikation: Regression bezieht sich auf Probleme, bei denen es darum geht, eine numerische Ausgabe vorherzusagen. Klassifikation bezieht sich auf Probleme, bei denen es darum geht, eine Eingabe in eine von mehreren vordefinierten Kategorien einzuordnen.
- Online Learning vs. Batch Learning: Online Learning bezieht sich auf Probleme, bei denen das Modell in der Lage sein muss, auf der Grundlage von Eingabedaten in Echtzeit Vorhersagen zu treffen. Batch Learning bezieht sich auf Probleme, bei denen das Modell auf der Grundlage von historischen Daten trainiert wird und dann für Vorhersagen verwendet wird.
- Low- vs. High-dimensional: Low-dimensional bezieht sich auf Probleme, bei denen die Anzahl der Merkmale in den Eingabedaten gering ist. High-dimensional bezieht sich auf Probleme, bei denen die Anzahl der Merkmale in den Eingabedaten hoch ist.
Diese Kategorisierungen können helfen, die Auswahl des am besten geeigneten ML-Modells einzugrenzen. Es ist jedoch wichtig zu beachten, dass es in vielen Fällen mehrere geeignete Modelle für ein bestimmtes Problem gibt.
Verschiedene Methoden zur Modelauswahl im Machine Learning
Bei der Entwicklung von Machine Learning Modellen ist die Auswahl des richtigen Modells von entscheidender Bedeutung. Dieser Prozess erfordert eine sorgfältige Abwägung verschiedener Faktoren und den Einsatz spezifischer Methoden. Hier sind einige gängige Methoden zur Modelauswahl:
- Grid Search: Diese Technik beinhaltet das systematische Durchsuchen einer Vielzahl von Modellkonfigurationen. Bei der Grid Search werden verschiedene Kombinationen von Hyperparametern erstellt und bewertet, oft mit Kreuzvalidierung, um die effektivste Kombination zu ermitteln. Der Hauptvorteil dieser Methode liegt in ihrer Einfachheit und Vollständigkeit, allerdings kann sie bei Modellen mit vielen Hyperparametern sehr rechenintensiv sein.
- Random Search: Im Gegensatz zur Grid Search probiert Random Search zufällige Kombinationen von Hyperparametern aus. Diese Methode ist oft schneller und kann überraschend effektiv sein, besonders wenn einige Hyperparameter einen größeren Einfluss auf die Modellleistung haben als andere.
- Bayesian Optimization: Diese Methode nutzt wahrscheinlichkeitstheoretische Modelle, um die Leistung verschiedener Hyperparameterkombinationen vorherzusagen. Bayesian Optimization konzentriert sich darauf, die Suche nach den vielversprechendsten Bereichen des Hyperparameterraums zu lenken. Dieser Ansatz ist rechnerisch effizient und kann sehr effektiv sein, erfordert jedoch ein tieferes Verständnis für seine Implementierung.
- Ensemble-Methoden: Hierbei werden die Vorhersagen mehrerer Modelle kombiniert, um die Gesamtleistung zu verbessern. Beispiele sind Bagging, Boosting und Stacking. Diese Methoden sind zwar rechenintensiv, können aber zu signifikanten Leistungsverbesserungen führen.
- Automated Machine Learning (AutoML): AutoML vereinfacht den Prozess der Modelauswahl durch Automatisierung. Es verwendet Algorithmen, um das beste Modell und die besten Hyperparameter zu identifizieren, was Zeit und Ressourcen sparen kann. Die Grenzen von AutoML liegen in der verfügbaren Rechenleistung und es liefert nicht immer die optimalen Ergebnisse.
Jede dieser Methoden hat ihre eigenen Stärken und Schwächen. Die Wahl der richtigen Methode hängt von den spezifischen Anforderungen des Projekts, den verfügbaren Ressourcen und der Komplexität des Problems ab.
Verstehen Sie Ihre Daten
Die Daten selbst sind nicht das Ziel, sondern das Rohmaterial für den gesamten Analyseprozess. Erfolgreiche Unternehmen erfassen nicht nur Daten und haben Zugang zu ihnen, sondern sind auch in der Lage, daraus Erkenntnisse abzuleiten, die zu besseren Entscheidungen führen, was wiederum zu einem besseren Kundenservice, einer Differenzierung gegenüber der Konkurrenz und einem höheren Umsatzwachstum führt. Das Verstehen der Daten spielt eine Schlüsselrolle bei der Auswahl des richtigen Algorithmus für das richtige Problem. Einige Algorithmen können mit kleinen Stichproben arbeiten, während andere tonnenweise Stichproben benötigen. Einige Algorithmen arbeiten mit kategorischen Daten, während andere numerische Eingaben bevorzugen.
Analysieren Sie die Daten
In diesem Schritt gibt es zwei wichtige Aufgaben, nämlich das Verstehen der Daten mit Hilfe von deskriptiven Statistiken und das Verstehen der Daten mit Hilfe von Visualisierungen und Diagrammen.
Verarbeiten der Daten
Zu den Komponenten der Datenverarbeitung gehören die Vorverarbeitung, die Profilerstellung, die Bereinigung und oft auch die Zusammenführung von Daten aus verschiedenen internen Systemen und externen Quellen.
Umwandlung der Daten
Die traditionelle Idee, Daten von einem Rohzustand in einen für die Modellierung geeigneten Zustand umzuwandeln, ist der Punkt, an dem Feature Engineering ansetzt. Tatsächlich können Datentransformation und Feature Engineering synonym verwendet werden. Es folgt eine Definition des letzteren Begriffs. Beim Feature-Engineering werden Rohdaten in Merkmale umgewandelt, die das zugrunde liegende Problem für Vorhersagemodelle besser repräsentieren, was zu einer verbesserten Modellgenauigkeit für ungesehene Daten führt. Von Jason Brownlee.
Größe des Datensatzes
Die Menge der verfügbaren Trainingsdaten ist einer der wichtigsten Faktoren bei der Auswahl eines Modells.
Ein neuronales Netz ist sehr gut darin, große Datenmengen zu verarbeiten und zu synthetisieren. Ein KNN-Modell (K-Nearest Neighbors) ist bei einer geringeren Anzahl von Beispielen viel besser.
Neben der Menge der verfügbaren Daten ist eine weitere Überlegung, wie viele Daten Sie wirklich benötigen, um gute Ergebnisse zu erzielen. Manchmal können Sie eine gute Lösung mit 50 Trainingsbeispielen erstellen, manchmal benötigen Sie 100.000.000.
Verwenden Sie diese Informationen über Ihr Problem und die Datenmenge, um ein Modell auszuwählen, das die Daten verarbeiten kann.
Die Wahl des richtigen ML-Modells für die Größe des Datensatzes hängt von mehreren Faktoren ab, einschließlich der Art des Problems, der Anzahl der Merkmale und der verfügbaren Rechenleistung. Einige allgemeine Empfehlungen sind
- Für kleine Datensätze: Modelle wie Entscheidungsbaum, Random Forest, k-Nearest Neighbors (k-NN) und Linear Regression sind gute Wahl, da sie in der Regel weniger Daten benötigen, um zu trainieren und haben eine gute Erklärbarkeit
- Für mittelgroße Datensätze: Modelle wie Gradient Boosting, XGBoost, Support Vector Machines (SVMs) und Neural Networks sind gute Wahl, diese Modelle haben in der Regel bessere Leistungen als die Modelle für kleine Datensätze, aber sie benötigen mehr Rechenleistung und Zeit zum trainieren
- Für große Datensätze: Modelle wie Deep Learning-Netzwerke, Random Forest und Gradient Boosting sind gute Wahl. Diese Modelle können in der Regel gut mit großen Datenmengen umgehen und haben in der Regel gute Leistungen. Sie benötigen jedoch in der Regel mehr Rechenleistung und Zeit zum trainieren, wie z.B. spezielle Hardware wie GPU’s.
Dimensionalität
Es ist sinnvoll, die Dimensionalität aus zwei verschiedenen Blickwinkeln zu betrachten: Die vertikale Größe eines Datensatzes stellt die Menge der Daten dar, die wir haben. Die horizontale Dimension ist die Anzahl der Merkmale.
Wir haben bereits diskutiert, wie die vertikale Dimension die Wahl eines guten Modells beeinflusst. Es hat sich gezeigt, dass auch die horizontale Dimension wichtig ist: Mehr Merkmale führen oft dazu, dass Ihr Modell bessere Lösungen liefert. Mehr Merkmale erhöhen aber auch die Komplexität des Modells.
Der Fluch der Dimensionalität ist eine gute Einführung, um zu verstehen, wie die Dimensionalität die Komplexität eines Modells beeinflusst.
Wie Sie sich vorstellen können, skalieren nicht alle Modelle mit hochdimensionalen Datensätzen gleich gut. Es kann auch sein, dass wir spezielle Algorithmen zur Reduktion der Dimensionalität einführen müssen, wenn hochdimensionale Datensätze zu einem Problem werden. PCA ist einer der am häufigsten verwendeten Algorithmen für diesen Zweck.
Optimieren Sie die Hyperparameter
Es gibt drei Optionen für die Optimierung von Hyperparametern: Gittersuche, Zufallssuche und Bayes’sche Optimierung.
Arten von Aufgaben des maschinellen Lernens
Überwachtes Lernen heißt so, weil der Mensch dem Algorithmus beibringt, zu welchen Schlussfolgerungen er kommen soll. Überwachtes Lernen setzt voraus, dass die möglichen Ausgaben des Algorithmus bereits bekannt sind und dass die Daten, die zum Trainieren des Algorithmus verwendet werden, bereits mit richtigen Antworten versehen sind. Wenn die Ausgabe eine reelle Zahl ist, nennen wir die Aufgabe Regression. Handelt es sich bei der Ausgabe um eine begrenzte Anzahl von Werten, die nicht geordnet sind, so handelt es sich um eine Klassifizierung.
Unüberwachtes maschinelles Lernen entspricht eher dem, was manche als echte künstliche Intelligenz bezeichnen – der Vorstellung, dass ein Computer lernen kann, komplexe Prozesse und Muster zu erkennen, ohne dass ein Mensch ihn dabei anleitet. Es liegen weniger Informationen über Objekte vor, insbesondere ist der Zugsatz nicht beschriftet. Es ist möglich, einige Ähnlichkeiten zwischen Gruppen von Objekten zu erkennen und sie in entsprechende Cluster aufzunehmen. Einige Objekte können sich stark von allen Clustern unterscheiden, so dass diese Objekte zu den Anomalien gehören.
Verstärkendes Lernen bezieht sich auf zielorientierte Algorithmen, die lernen, wie man ein komplexes Ziel erreicht oder entlang einer bestimmten Dimension über viele Schritte maximiert. Zum Beispiel, die gewonnenen Punkte in einem Spiel über viele Züge zu maximieren. Es unterscheidet sich vom überwachten Lernen dadurch, dass beim überwachten Lernen die Trainingsdaten den Rollenschlüssel mit sich führen, so dass das Modell mit der richtigen Antwort selbst trainiert wird, während es beim verstärkenden Lernen keine Antwort gibt, sondern der Verstärkungsagent entscheidet, was zu tun ist, um die gegebene Aufgabe zu erfüllen. In Ermangelung eines Trainingsdatensatzes ist er gezwungen, aus seinen Erfahrungen zu lernen.