10 Möglichkeiten zur Verbesserung Ihrer maschinellen Lernmodelle

10 Möglichkeiten, Ihre maschinellen Lernmodelle zu verbessern - Dummies

Jetzt, da Ihr Maschinenlernalgorithmus mit den Daten aus Python oder R gelernt hat, denken Sie über die Ergebnisse aus Ihrem Test-Set und fragen sich, ob Sie sie verbessern können oder wirklich das bestmögliche Ergebnis erzielt haben. Es gibt eine Reihe von Überprüfungen und Aktionen, die auf Methoden hinweisen, mit denen Sie die Leistung des maschinellen Lernens verbessern und einen allgemeineren Prädiktor erzielen können, der in der Lage ist, mit Ihrem Testsatz oder neuen Daten gleichermaßen zu arbeiten. Diese Liste mit zehn Techniken bietet Ihnen die Möglichkeit, das mit maschinellen Lernalgorithmen erzielte Ergebnis zu verbessern.

Lernkurven studieren

Als ersten Schritt zur Verbesserung Ihrer Ergebnisse müssen Sie die Probleme mit Ihrem Modell ermitteln. Lernkurven erfordern, dass Sie gegen ein Testset verifizieren, da Sie die Anzahl der Trainingsinstanzen variieren. Sie werden sofort bemerken, ob Sie einen großen Unterschied zwischen Ihren In-Sample- und Out-of-Sample-Fehlern feststellen. Ein großer Anfangsunterschied ist ein Vorzeichen der Schätzvarianz; Umgekehrt sind Fehler, die sowohl hoch als auch ähnlich sind, ein Zeichen dafür, dass Sie mit einem voreingenommenen Modell arbeiten.

Python hilft Ihnen, Lernkurven mit der Funktion Scikit-learn () leicht zu zeichnen. Sie können das Ergebnis auch einfach mit R mit benutzerdefinierten Funktionen erzielen, wie im Blog zur Blog-Entwicklung von Revolution beschrieben.

Verwenden der Kreuzvalidierung korrekt

Ein großer Unterschied zwischen den Kreuzvalidierungsschätzungen (CV) und dem Ergebnis ist ein häufiges Problem, das bei einem Testsatz oder bei neuen Daten auftritt. Dieses Problem zu haben bedeutet, dass bei der Kreuzvalidierung etwas schief gelaufen ist. Abgesehen von der Tatsache, dass CV kein guter Leistungsprädiktor ist, bedeutet dieses Problem auch, dass ein irreführender Indikator Sie veranlasst hat, das Problem falsch zu modellieren und unbefriedigende Ergebnisse zu erzielen.

Die Kreuzvalidierung gibt Ihnen Hinweise, wann die Schritte korrekt sind. Es ist wichtig, aber nicht kritisch, dass CV-Schätzungen fehlerhafte Messungen außerhalb der Stichprobe präzise replizieren. Es ist jedoch wichtig, dass Lebenslaufschätzungen aufgrund Ihrer Modellierungsentscheidungen in der Testphase eine Verbesserung oder Verschlechterung korrekt widerspiegeln. Im Allgemeinen gibt es zwei Gründe dafür, dass die Kreuzvalidierungsschätzungen von den wahren Fehlerergebnissen abweichen können:

  • Snooping
  • Falsches Sampling

Python bietet einen CV-Sampler mit Stratified-k-Folds an. R kann Samples mit der createFolds-Methode der Caret-Bibliothek stratifizieren, wenn Sie den y-Parameter als Faktor angeben.

Auswählen des richtigen Fehlers oder der Bewertungsmetrik

Beim Versuch, eine Fehlermetrik basierend auf dem Medianfehler mithilfe eines Lernalgorithmus basierend auf dem mittleren Fehler zu optimieren, erhalten Sie nur dann die besten Ergebnisse, wenn Sie den Optimierungsprozess in eine Mode, die zugunsten Ihrer gewählten Metrik arbeitet.Wenn Sie ein Problem mithilfe von Daten- und maschinellem Lernen lösen, müssen Sie das Problem analysieren und die optimale Metrik für die Optimierung ermitteln.

Beispiele können sehr hilfreich sein. Sie können viele von ihnen aus wissenschaftlichen Aufsätzen und aus Wettbewerben des öffentlichen maschinellen Lernens erhalten, die sorgfältig spezifische Probleme in Bezug auf Daten und Fehler- / Bewertungsmetrik definieren. Suchen Sie nach einem Wettbewerb, dessen Zielsetzung und Daten mit Ihrem vergleichbar sind, und überprüfen Sie dann die angeforderte Metrik.

Auf der Suche nach den besten Hyper-Parametern

Die meisten Algorithmen arbeiten mit den Standardparametereinstellungen ziemlich gut. Sie können jedoch immer bessere Ergebnisse erzielen, indem Sie verschiedene Hyper-Parameter testen. Alles, was Sie tun müssen, ist, eine Rastersuche unter möglichen Werten zu erstellen, die Ihre Parameter annehmen können, und die Ergebnisse mit dem richtigen Fehler oder der Bewertungsmetrik auszuwerten. Die Suche braucht Zeit, kann aber Ihre Ergebnisse verbessern.

Wenn eine Suche zu lange dauert, können Sie oft dieselben Ergebnisse erzielen, wenn Sie an einem Muster Ihrer Originaldaten arbeiten. Weniger zufällig ausgewählte Beispiele erfordern weniger Berechnungen, aber sie deuten gewöhnlich auf die gleiche Lösung hin. Ein weiterer Trick, der Zeit und Aufwand sparen kann, ist eine randomisierte Suche, die die Anzahl der zu testenden Hyperparameterkombinationen begrenzt.

Testen mehrerer Modelle

Testen Sie als eine bewährte Methode mehrere Modelle, beginnend mit den grundlegenden Modellen - die Modelle, die mehr Verzerrungen als Varianzen aufweisen. Sie sollten immer einfache Lösungen bevorzugen. Vielleicht entdecken Sie, dass eine einfache Lösung besser funktioniert.

Die Darstellung der Leistung verschiedener Modelle unter Verwendung des gleichen Diagramms ist hilfreich, bevor Sie das beste Modell zur Lösung Ihres Problems auswählen. Sie können Modelle, die zur Vorhersage des Konsumentenverhaltens verwendet werden, wie z. B. eine Antwort auf ein kommerzielles Angebot, in spezielle Gewinndiagramme und Liftcharts platzieren. Diese Diagramme zeigen, wie Ihr Modell funktioniert, indem es seine Ergebnisse in Dezile oder kleinere Teile aufteilt.

Da Sie möglicherweise nur an den Kunden interessiert sind, die am ehesten auf Ihr Angebot antworten, wird die Vorhersage der Bestellung von den meisten bis zum geringsten wahrscheinlich unterstreichen, wie gut Ihre Modelle die vielversprechendsten Kunden voraussagen. Diese Quora-Antworten helfen Ihnen zu sehen, wie Gain- und Lift-Diagramme funktionieren: Was ist ROC Curve? und was ist Aufzugskurve? ..

Das Testen mehrerer Modelle und Introspektion können auch Vorschläge dazu liefern, welche Features bei der Feature-Erstellung transformiert werden sollen oder welche Funktion bei der Feature-Auswahl nicht berücksichtigt werden soll.

Mittelungsmodelle

Beim maschinellen Lernen werden viele Modelle erstellt und viele verschiedene Vorhersagen erstellt, alle mit unterschiedlichen erwarteten Fehlerleistungen. Es mag Sie überraschen zu wissen, dass Sie noch bessere Ergebnisse erzielen können, wenn Sie die Modelle gemeinsam berechnen. Das Prinzip ist recht einfach: Die geschätzte Varianz ist zufällig. Wenn Sie also viele verschiedene Modelle berechnen, können Sie das -Signal verbessern und das Rauschen ausschließen, das sich häufig selbst aufhebt.

Manchmal können die Ergebnisse eines Algorithmus, der gut funktioniert, gemischt mit den Ergebnissen eines einfacheren Algorithmus, der nicht so gut funktioniert, bessere Vorhersagen liefern als der Einsatz eines einzelnen Algorithmus.Unterschätzen Sie nicht die Beiträge, die von einfacheren Modellen wie linearen Modellen geliefert werden, wenn Sie ihre Ergebnisse mit der Ausgabe von anspruchsvolleren Algorithmen wie Gradientenverstärkung mitteln.

Stapeln von Modellen

Aus den gleichen Gründen wie die Mittelung funktioniert, kann das Stapeln auch eine bessere Leistung bieten. Beim Stapeln bauen Sie Ihre Maschinenlernmodelle in zwei Schritten auf. Zunächst sagt diese Technik mehrere Ergebnisse unter Verwendung verschiedener Algorithmen voraus, wobei alle von den in Ihren Daten vorhandenen Merkmalen lernen. In der zweiten Phase erhalten Sie anstelle von Features, die ein neues Modell lernen wird, dieses Modell mit den Vorhersagen der anderen zuvor trainierten Modelle.

Die Verwendung eines zweistufigen Ansatzes ist beim Erraten komplexer Zielfunktionen gerechtfertigt. Sie können sie nur approximieren, indem Sie mehrere Modelle zusammen verwenden und dann das Ergebnis der Multiplikation auf intelligente Weise kombinieren. Sie können eine einfache logistische Regression oder ein komplexes Baumensemble als Zweitstufenmodell verwenden.

Der Netflix-Wettbewerb liefert Belege und eine detaillierte Darstellung darüber, wie heterogene Modelle zu leistungsstärkeren Modellen zusammengefügt werden können. Die Implementierung dieser Lösung als eine Arbeitsanwendung kann jedoch sehr mühsam sein.

Anwenden von Feature-Engineering

Wenn Sie glauben, dass Verzerrungen Ihr Modell noch beeinflussen, haben Sie keine andere Wahl, als neue Features zu erstellen, die die Leistung des Modells verbessern. Jede neue Funktion kann das Erraten der Zielantwort erleichtern.

Automatische Feature-Erstellung ist möglich unter Verwendung der Polynom-Erweiterung oder der Support-Vektor-Maschinen-Klasse von Maschinenlernalgorithmen. Support-Vektor-Maschinen können automatisch nach besseren Features in höherdimensionalen Merkmalsräumen suchen, und zwar sowohl rechenschnell als auch speicheroptimal.

Allerdings kann nichts wirklich Ihr Fachwissen und Verständnis für die Methode ersetzen, die benötigt wird, um das Datenproblem zu lösen, das der Algorithmus zu lernen versucht. Sie können Features basierend auf Ihren Kenntnissen und Ideen erstellen, wie die Dinge in der Welt funktionieren. Die Menschen sind dabei immer noch unschlagbar, und Maschinen können sie nicht leicht ersetzen.

Auswählen von Funktionen und Beispielen

Wenn die geschätzte Varianz hoch ist und Ihr Algorithmus auf vielen Funktionen beruht, müssen Sie einige Funktionen bereinigen, um bessere Ergebnisse zu erzielen. In diesem Zusammenhang empfiehlt es sich, die Anzahl der Features in Ihrer Datenmatrix zu reduzieren, indem Sie diejenigen mit dem höchsten Vorhersagewert auswählen.

Bei der Arbeit mit linearen Modellen, linearen Support-Vektor-Maschinen oder neuronalen Netzwerken ist die Regularisierung immer eine Option. Sowohl L1 als auch L2 können den Einfluss von redundanten Variablen reduzieren oder sogar aus dem Modell entfernen. Durch die Auswahl von Stabilität wird die Fähigkeit von L1 genutzt, weniger nützliche Variablen auszuschließen. Die Technik wiederholt die Trainingsdaten neu, um den Ausschluss zu bestätigen.

Weitere Informationen zur Stabilitätsauswahl erhalten Sie im Beispiel auf der Scikit-learn-Website. Darüber hinaus können Sie mit den Funktionen RandomizedLogisticRegression und RandomizedLasso Scikit-learn im Modul linear_model üben.

Auf der Suche nach mehr Daten

Nachdem Sie alle vorherigen Vorschläge ausprobiert haben, haben Sie möglicherweise immer noch eine große Varianz an Vorhersagen. In diesem Fall besteht die einzige Möglichkeit darin, die Größe Ihres Trainingssatzes zu erhöhen. Versuchen Sie, Ihre Stichprobe zu vergrößern, indem Sie neue Daten bereitstellen, die zu neuen Fällen oder neuen Funktionen führen können.

Wenn Sie weitere Fälle hinzufügen möchten, schauen Sie einfach nach, ob Sie ähnliche Daten zur Hand haben. Wenn Sie neue Features hinzufügen möchten, suchen Sie nach Möglichkeit eine Open Source-Datenquelle, um Ihre Daten mit ihren Einträgen abzugleichen. Eine weitere großartige Möglichkeit, sowohl neue Fälle als auch neue Funktionen zu erhalten, besteht darin, die Daten aus dem Web zu extrahieren. Häufig stehen Daten zwischen verschiedenen Quellen oder über eine Anwendungsprogrammierschnittstelle (API) zur Verfügung. Beispielsweise bieten Google APIs viele geografische und geschäftliche Informationsquellen.