Es gehört zu den frustrierenden Dingen des Jobs, wenn man viele Stunden damit verbracht hat Daten zusammenzuführen, zu transformieren, zu bereinigen und zu labeln etc. und nach mehreren Trainingsstunden des ML Modells haben wir eine geringe Genauigkeit oder einen großen Fehlerbereich.
Je nach Kontext kann es passieren, dass wir ein Modell bei zu geringer Genauigkeit einfach nicht verwenden können.
Wie können wir die Genauigkeit unseres maschinellen Lernmodells verbessern? Es gibt verschiedene Möglichkeiten, wie die Genauigkeit eines Modells verbessert werden kann:
- Mehr Daten als Lern-Grundlage
- Betrachten Sie das Problem mit anderen Augen
- Fügen Sie Ihren Daten etwas Kontext hinzu.
- Trainieren Sie Ihr Modell mit Kreuzvalidierung
- Experimentieren Sie mit unterschiedlichen Algorithmen
- Sinnvoller Umgang mit fehlenden Werten und Ausreißern
Mehr Daten als Lern-Grundlage
Daten sind nur dann aussagekräftig, wenn man genügend davon hat. Jede Datenprobe liefert einen gewissen Input und eine Perspektive für die Gesamtgeschichte, die Ihre Daten erzählen wollen. Eine Methode, die Leistung Ihres Modells zu verbessern und seine Genauigkeit zu erhöhen, besteht darin, mehr Beispieldaten zu dem Trainingsdatensatz hinzuzufügen.
Die ML-Modelle von BigQuery verlangen grundsätzlich mindestens eine Stichprobe von 1.000.
Auf diese Weise erhalten Sie mehr Details zu Ihren Daten und können Ihr Modell einfacher fintunen, was zu einer besseren Genauigkeit führen kann. Denken Sie daran: Je mehr Informationen Sie Ihrem Modell zur Verfügung stellen, desto mehr wird es lernen und desto mehr Fälle wird es korrekt identifizieren können.
Man muss hier aber ehrlicherweise sagen, dass eine Vergrößerung der Beispieldaten auch zu einer Verschlechterung der Aussagekraft des Modells führen kann. Das heißt dann aber nicht, dass ich weniger Daten nehmen sollte, sondern, dass meine ursprüngliche Datenbasis erst recht zu kleine war! Eben weil das ja in dem Fall (leider) nochmal unterstreicht, dass das Modell noch Anpassungen bedarf.
Betrachten Sie das Problem mit anderen Augen
Vielleicht stellen Sie einfach die falschen Fragen oder versuchen, die falsche Geschichte zu verstehen. Die Betrachtung des Problems aus einer neuen Perspektive kann Ihrem Modell wertvolle Informationen hinzufügen und Ihnen helfen, verborgene Beziehungen zwischen den Variablen der Geschichte aufzudecken. Wenn Sie andere Fragen stellen, kann dies zu besseren Ergebnissen und schließlich zu einer höheren Genauigkeit führen.
Dieser Hinweis klingt sehr allgemein ist aber eine sehr häufige Lösung des Problems.
Fügen Sie Ihren Daten etwas Kontext hinzu.
Kontext ist in jeder Situation wichtig, und das gilt auch für das Training eines Modells für maschinelles Lernen. Manchmal kann ein Punkt der Daten keine Geschichte erzählen, so dass Sie mehr Kontext hinzufügen müssen, damit ein Algorithmus, den wir auf diese Daten anwenden wollen, eine gute Leistung erbringt.
Mehr Kontext kann immer zu einem besseren Verständnis des Problems und schließlich zu einer besseren Leistung des Modells führen. Stellen Sie sich vor, ich erzähle Ihnen, dass ich ein Auto verkaufe, einen Audi. Das allein gibt Ihnen nicht viel Aufschluss über das Auto. Wenn ich aber die Farbe, das Modell und die gefahrene Strecke hinzufüge, können Sie sich ein besseres Bild von dem Auto und seinem möglichen Wert machen.
In einem Datensatz können das zum Beispiel weitere Variablen sein, die Sie dem Lernprozess hinzufügen. Nehmen wir mein Beispiel und Sie wollen anhand von vergangen Autoverkäufen errechnen, wie wertvoll ein Auto ist. Dann können neben der Marke mit Sicherheit noch, die gefahrenen Kilometer oder eben das Zulassungsjahr spannend sein.
Trainieren Sie Ihr Modell mit Kreuzvalidierung
Beim maschinellen Lernen ist die Kreuzvalidierung eine Technik, die zur Verbesserung des Modelltrainings verwendet wird, indem die gesamte Trainingsmenge in kleinere Teile aufgeteilt wird und dann jeder Teil zum Trainieren des Modells verwendet wird.
Mit diesem Ansatz können wir den Trainingsprozess des Algorithmus verbessern, indem wir ihn mit den verschiedenen Chunks trainieren und den Durchschnitt über das Ergebnis bilden. Die Kreuzvalidierung wird verwendet, um die Leistung des Modells zu optimieren. Dieser Ansatz ist sehr beliebt, weil er so einfach und leicht zu implementieren ist.
Experimentieren Sie mit unterschiedlichen Algorithmen
Was ist, wenn Sie alle bisher besprochenen Ansätze ausprobiert haben und Ihr Modell immer noch zu einer niedrigen oder nur durchschnittlichen Genauigkeit führt?
Manchmal wählen wir einen Algorithmus für die Implementierung, der nicht wirklich auf unsere Daten anwendbar ist, so dass wir nicht die erwarteten Ergebnisse erhalten. Ändern Sie den Algorithmus, den Sie zur Implementierung Ihrer Lösung verwenden. Das Ausprobieren verschiedener Algorithmen führt dazu, dass Sie mehr Details über Ihre Daten und die Geschichte, die sie zu erzählen versuchen, herausfinden.
Sinnvoller Umgang mit fehlenden Werten und Ausreißern
Das unerwünschte Vorhandensein von fehlenden Werten und Ausreißern in den Trainingsdaten verringert oft die Genauigkeit eines Modells oder führt zu einem verzerrten Modell. Dies führt zu ungenauen Vorhersagen. Der Grund dafür ist, dass wir das Verhalten und die Beziehung zu anderen Variablen nicht richtig analysieren. Es ist also wichtig, sich mit fehlenden Werten und Ausreißern auseinanderzusetzen.
Fehlende Werte: Bei kontinuierlichen Variablen können Sie die fehlenden Werte durch Mittelwert, Median und Modus ersetzen. Bei kategorialen Variablen können Sie die Variablen als eine separate Klasse behandeln. Sie können auch ein Modell erstellen, um die fehlenden Werte vorherzusagen
Ausreißer: Sie können die Beobachtungen löschen, eine Transformation durchführen oder auch Ausreißerwerte separat behandeln.
Schlusswort
Die Verbesserung der Genauigkeit eines Modells für maschinelles Lernen ist eine Fähigkeit, die nur durch Übung verbessert werden kann. Je mehr Projekte Sie erstellen, desto besser wird Ihr Gespür dafür, welchen Ansatz Sie beim nächsten Mal verwenden sollten, um die Genauigkeit Ihres Modells zu verbessern.