Wann werden verschiedene Algorithmen für maschinelles Lernen verwendet? Eine einfache Anleitung

Wenn Sie lange genug am maschinellen Lernen gearbeitet haben, wissen Sie, dass es ein „No Free Lunch“ -Prinzip gibt - es gibt keinen einheitlichen Algorithmus, mit dem Sie jedes Problem lösen und jeden Datensatz angehen können.

Ich arbeite für Springboard - wir haben viel Forschung in das Training und die Ressourcen des maschinellen Lernens gesteckt. Bei Springboard bieten wir den ersten Online-Kurs mit einer Garantie für maschinelles Lernen an.

Was bei einem neuen Problem sehr hilfreich ist, ist eine Einführung in den Algorithmus, der für bestimmte Situationen am besten geeignet ist. Hier sprechen wir über verschiedene Probleme und Datentypen und diskutieren, welcher Algorithmus für jeden am effektivsten ist, zusammen mit einer Ressource, die Ihnen bei der Implementierung dieses bestimmten Modells helfen kann.

Denken Sie daran: Der Beweis liegt im Pudding: Der beste Ansatz für Ihre Daten ist das Modell, mit dem Sie empirisch die besten Ergebnisse erzielen. Dieser Leitfaden soll Ihre ersten Instinkte verbessern und Ihnen helfen, sich daran zu erinnern, welche Modelle für jedes Problem am effektivsten sind und welche unpraktisch wären.

Lassen Sie uns zunächst über die Variablen sprechen, die wir berücksichtigen müssen.

U nsupervised vs wachtes Lernen lernen

Beim unbeaufsichtigten Lernen können Sie dem Algorithmus für maschinelles Lernen erlauben, mit dem Lernen zu beginnen und ein Ergebnis auszugeben, ohne zuvor die Daten explizit von Menschen verarbeiten zu müssen.

Das überwachte Lernen beinhaltet eine gewisse Kennzeichnung und Verarbeitung der Trainingsdaten im Voraus, um sie für die Verarbeitung zu strukturieren.

Die Art des Lernens, die Sie durchführen können, spielt eine große Rolle, wenn Sie mit verschiedenen Algorithmen für maschinelles Lernen arbeiten.

S Tempo und Zeitüberlegungen

Für jeden Algorithmus für maschinelles Lernen gibt es räumliche und zeitliche Überlegungen . Während Sie in der Praxis wahrscheinlich mit optimierten Versionen jedes in einem Framework verpackten Algorithmus arbeiten, sollten Sie überlegen, wie sich die von Ihnen ausgewählten Algorithmen auf die Leistung auswirken können.

Die Ausgabe

Drittens und vielleicht am wichtigsten ist die Ausgabe, die Sie erhalten möchten . Versuchen Sie, Daten zu kategorisieren? Verwenden Sie es, um zukünftige Datenpunkte vorherzusagen? Was Sie als Ergebnis erhalten möchten und was Sie mit Ihren Daten tun möchten, bestimmt weitgehend die algorithmischen Ansätze, die Sie verfolgen sollten.

Einige Beispiele

Sie möchten ein einfaches Vorhersagemodell mit einem gut strukturierten Datensatz ohne zu viele Komplikationen erstellen.

Ihre beste Wahl ist hier wahrscheinlich die lineare Regression, die eine ganze Reihe von Faktoren berücksichtigen und Ihnen dann ein Vorhersageergebnis mit einer einfachen Erklärung der Fehlerrate und einer einfachen Erklärung liefern kann, welche Faktoren zur Vorhersage beitragen. Es erfordert auch nicht viel Rechenleistung, um eine lineare Regression auszuführen.

Ressource : Lineare Regression - Detailansicht

Sie möchten Daten, die bereits beschriftet wurden, in einer überwachten Umgebung in zwei oder mehr stark unterschiedliche Arten von Beschriftungen einteilen (z. B. versuchen, anhand ihres Gewichts und ihrer Größe festzustellen, ob Kinder wahrscheinlich männlich oder weiblich sind).

Der erste Instinkt, den Sie haben sollten, wenn Sie eine solche Situation sehen, ist die Anwendung des logistischen Regressionsmodells . Nachdem Sie das Modell ausgeführt haben, werden Sie feststellen, dass jeder Datenpunkt in zwei verschiedene Kategorien unterteilt wird, sodass Sie problemlos ausgeben können, welcher Punkt zu welcher Kategorie gehört. Das logistische Regressionsmodell kann auch leicht auf die Arbeit mit mehreren Ziel- und Ergebnisklassen verallgemeinert werden, wenn dies für Ihr Problem erforderlich ist.

Ressource : Erstellen einer logistischen Regression

Sie möchten unbeschriftete fortlaufende Daten in verschiedene Gruppen einteilen (z. B. Kunden mit bestimmten aufgezeichneten Merkmalen und versuchen, Kategorien / Gruppen zu ermitteln, zu denen sie gehören können).

Die erste natürliche Anpassung für dieses Problem ist der K-Means-Clustering-Algorithmus, der Daten gruppiert und gruppiert, indem der Abstand zwischen den einzelnen Punkten gemessen wird. Darüber hinaus gibt es eine Vielzahl von Clustering-Algorithmen, z. B. das dichtebasierte räumliche Clustering von Anwendungen mit Noise- und Mean-Shift-Algorithmen.

Ressource : Die 5 Clustering-Algorithmen, die Datenwissenschaftler kennen müssen

Sie möchten vorhersagen, ob eine Zeichenfolge oder eine Gruppe von Merkmalen in die eine oder andere Datenkategorie fällt (überwachte Textklassifizierung) - z. B. ob eine Bewertung positiv oder negativ ist.

Ihre beste Wahl hier ist wahrscheinlich Naive Bayes, ein einfaches, aber leistungsstarkes Modell, das für die Textklassifizierung verwendet werden kann. Mit einigen Textvorverarbeitungen und -bereinigungen (wobei Sie besonders darauf achten, Füllstoppwörter wie „und“ zu entfernen, die Ihrem Datensatz Rauschen hinzufügen können) können Sie mit einem sehr einfachen Modell bemerkenswerte Ergebnisse erzielen.

Eine andere vernünftige Wette ist die logistische Regression, die ein einfaches Modell ist, das zu erfassen und zu erklären ist und weniger schwer zu unterscheiden ist als Naive Bayes (bei dem Wahrscheinlichkeiten oft Wort für Wort zugewiesen werden, anstatt ein Textausschnitt ganzheitlich als Teil der einen oder anderen Gruppe zu kennzeichnen ).

Ein Algorithmus mit linearer Unterstützung für Vektormaschinen wird wahrscheinlich dazu beitragen, Ihre Leistung zu verbessern. Wenn Sie hier direkt weitermachen möchten, können Sie dies tun (obwohl ich vorschlage, beide Modelle auszuprobieren und zu vergleichen, welches am besten funktioniert - Naive Bayes hat eine absurd einfache Implementierung auf Frameworks wie Scikit-Learn und es ist nicht sehr rechenintensiv, sodass Sie es sich leisten können um beide zu testen).

Schließlich könnte auch eine Bag-of-Word-Analyse funktionieren. Überlegen Sie, ob Sie ein Ensemble verschiedener Methoden erstellen und alle diese Methoden je nach Datensatz gegeneinander testen möchten.

Ressource : Vergleich und Auswahl von Textklassifizierungsmodellen für mehrere Klassen

Sie möchten unstrukturiertes Lernen an großen Bild- oder Videodatensätzen (z. B. Bildklassifizierung) durchführen.

Der beste Algorithmus, um das Durchlaufen verschiedener Bilder anzugehen, ist ein Faltungs-Neuronales Netzwerk, das ähnlich organisiert ist wie die visuellen Kortexe von Tieren.

Gemessen an der Leistung (reduzierte Fehlerrate) im ImageNet-Wettbewerb hat die SE-Resnet-Architektur die Nase vorn, obwohl sich das Feld noch weiterentwickelt und fast täglich neue Fortschritte erzielt werden.

Sie sollten sich jedoch bewusst sein, dass Faltungs-Neuronale Netze dicht sind und viel Rechenleistung erfordern. Stellen Sie daher sicher, dass Sie über die Hardware-Fähigkeit verfügen, diese Modelle in großen Datenmengen auszuführen.

Ressource : Überprüfung von Deep-Learning-Algorithmen zur Bildklassifizierung

Sie möchten Ergebnispunkte klassifizieren, die aus einem genau definierten Prozess hervorgehen (z. B. Anzahl der Einstellungen aus einem zuvor festgelegten Interviewprozess, bei dem Sie die Wahrscheinlichkeiten jedes Ereignisses kennen oder rechnerisch ableiten können).

Die beste Option hierfür ist wahrscheinlich ein Entscheidungsbaumalgorithmus, der klar erklärt, welche Aufteilungspunkte zwischen der Klassifizierung von etwas in die eine oder andere Gruppe liegen.

Ressource : Entscheidungsbäume beim maschinellen Lernen

Sie möchten eine Zeitreihenanalyse mit genau definierten, überwachten Daten durchführen (z. B. Vorhersage von Aktienkursen auf der Grundlage historischer Muster an der Börse, die chronologisch von der Vergangenheit bis zur Gegenwart angeordnet sind).

Ein wiederkehrendes neuronales Netzwerk wird für die Sequenzanalyse eingerichtet, indem es einen internen In-Stream-Speicher der von ihm verarbeiteten Daten enthält, sodass die Beziehung zwischen Daten und dem Zeithorizont und der Reihenfolge, in der sie bereitgestellt werden, berücksichtigt werden kann.

Ressource : Wiederkehrende neuronale Netze und LSTM

Einpacken

Nehmen Sie die oben genannten Empfehlungen und Ressourcen und wenden Sie sie als eine Art ersten Instinkt für Ihre Modellierung an - es wird Ihnen helfen, in jede Arbeit zu springen, die Sie nur ein bisschen schneller erledigen. Wenn Sie daran interessiert sind, von einem Experten für maschinelles Lernen betreut zu werden, um zu lernen, wie Sie Ihre Instinkte weiter trainieren können, lesen Sie den Karriere-Track AI / Maschinelles Lernen von Springboard.