Maschinelles Lernen mit Python - Methoden

Es gibt verschiedene ML-Algorithmen, Techniken und Methoden, mit denen Modelle zur Lösung realer Probleme mithilfe von Daten erstellt werden können. In diesem Kapitel werden wir solche unterschiedlichen Arten von Methoden diskutieren.

Verschiedene Arten von Methoden

Das Folgende sind verschiedene ML-Methoden, die auf einigen breiten Kategorien basieren -

Basierend auf menschlicher Aufsicht

Im Lernprozess sind einige der Methoden, die auf menschlicher Aufsicht basieren, wie folgt:

Supervised Learning

Überwachte Lernalgorithmen oder -methoden sind die am häufigsten verwendeten ML-Algorithmen. Diese Methode oder dieser Lernalgorithmus entnimmt die Datenprobe, dh die Trainingsdaten und die zugehörige Ausgabe, dh Beschriftungen oder Antworten mit jeder Datenprobe während des Trainingsprozesses.

Das Hauptziel von überwachten Lernalgorithmen besteht darin, eine Assoziation zwischen Eingabedatenproben und entsprechenden Ausgaben zu lernen, nachdem mehrere Trainingsdateninstanzen durchgeführt wurden.

Zum Beispiel haben wir

x: Eingangsvariablen und

Y: Ausgabevariable

Wenden Sie nun einen Algorithmus an, um die Zuordnungsfunktion von der Eingabe zur Ausgabe wie folgt zu lernen:

Y = f (x)

Das Hauptziel wäre nun, die Abbildungsfunktion so gut zu approximieren, dass wir selbst bei neuen Eingabedaten (x) die Ausgabevariable (Y) für diese neuen Eingabedaten leicht vorhersagen können.

Es wird als überwacht bezeichnet, da der gesamte Lernprozess so gedacht werden kann, wie er von einem Lehrer oder Betreuer überwacht wird. Beispiele für überwachte Algorithmen für maschinelles Lernen umfassenDecision tree, Random Forest, KNN, Logistic Regression usw.

Basierend auf den ML-Aufgaben können überwachte Lernalgorithmen in die folgenden zwei großen Klassen unterteilt werden:

  • Classification
  • Regression

Classification

Das Hauptziel klassifikationsbasierter Aufgaben besteht darin, kategoriale Ausgabebezeichnungen oder Antworten für die angegebenen Eingabedaten vorherzusagen. Die Ausgabe basiert auf dem, was das Modell in der Trainingsphase gelernt hat. Da wir wissen, dass die kategorialen Ausgabeantworten ungeordnete und diskrete Werte bedeuten, gehört jede Ausgabeantwort zu einer bestimmten Klasse oder Kategorie. Wir werden die Klassifizierung und die zugehörigen Algorithmen auch in den kommenden Kapiteln ausführlich erörtern.

Regression

Das Hauptziel von auf Regression basierenden Aufgaben besteht darin, Ausgabekennzeichnungen oder Antworten, die weiterhin numerische Werte sind, für die angegebenen Eingabedaten vorherzusagen. Die Ausgabe basiert auf dem, was das Modell in seiner Trainingsphase gelernt hat. Grundsätzlich verwenden Regressionsmodelle die Eingabedatenmerkmale (unabhängige Variablen) und ihre entsprechenden kontinuierlichen numerischen Ausgabewerte (abhängige oder Ergebnisvariablen), um die spezifische Assoziation zwischen Eingaben und entsprechenden Ausgaben zu lernen. Wir werden die Regression und die damit verbundenen Algorithmen auch in weiteren Kapiteln ausführlich erörtern.

Unbeaufsichtigtes Lernen

Wie der Name schon sagt, ist es im Gegensatz zu überwachten ML-Methoden oder -Algorithmen, was bedeutet, dass wir bei unbeaufsichtigten Algorithmen für maschinelles Lernen keinen Supervisor haben, der irgendeine Art von Anleitung bietet. Unüberwachte Lernalgorithmen sind praktisch in dem Szenario, in dem wir nicht wie bei überwachten Lernalgorithmen die Freiheit haben, vorbeschriftete Trainingsdaten zu haben, und nützliche Muster aus Eingabedaten extrahieren möchten.

Zum Beispiel kann es wie folgt verstanden werden:

Angenommen, wir haben -

x: Input variablesDann würde es keine entsprechende Ausgabevariable geben und die Algorithmen müssen das interessante Muster in den Lerndaten ermitteln.

Beispiele für unbeaufsichtigte Algorithmen für maschinelles Lernen umfassen K-Mittel-Clustering, K-nearest neighbors usw.

Basierend auf den ML-Aufgaben können unbeaufsichtigte Lernalgorithmen in folgende breite Klassen unterteilt werden:

  • Clustering
  • Association
  • Reduzierung der Dimensionalität

Clustering

Clustering-Methoden sind eine der nützlichsten unbeaufsichtigten ML-Methoden. Diese Algorithmen werden verwendet, um Ähnlichkeits- und Beziehungsmuster zwischen Datenproben zu finden und diese Proben dann in Gruppen mit Ähnlichkeit basierend auf Merkmalen zu gruppieren. Das reale Beispiel für Clustering besteht darin, die Kunden nach ihrem Kaufverhalten zu gruppieren.

Association

Eine andere nützliche unbeaufsichtigte ML-Methode ist AssociationHiermit wird ein großer Datensatz analysiert, um Muster zu finden, die die interessanten Beziehungen zwischen verschiedenen Elementen darstellen. Es wird auch als bezeichnetAssociation Rule Mining oder Market basket analysis Dies wird hauptsächlich zur Analyse von Kundeneinkaufsmustern verwendet.

Dimensionality Reduction

Diese unbeaufsichtigte ML-Methode wird verwendet, um die Anzahl der Merkmalsvariablen für jede Datenstichprobe durch Auswahl eines Satzes von Hauptmerkmalen oder repräsentativen Merkmalen zu reduzieren. Hier stellt sich die Frage, warum wir die Dimensionalität reduzieren müssen. Der Grund dafür ist das Problem der Komplexität des Merkmalsraums, das auftritt, wenn wir mit der Analyse und Extraktion von Millionen von Merkmalen aus Datenproben beginnen. Dieses Problem bezieht sich allgemein auf "Fluch der Dimensionalität". PCA (Principal Component Analysis), K-nächste Nachbarn und Diskriminanzanalyse sind einige der gängigen Algorithmen für diesen Zweck.

Anomaly Detection

Diese unbeaufsichtigte ML-Methode wird verwendet, um das Auftreten seltener Ereignisse oder Beobachtungen herauszufinden, die im Allgemeinen nicht auftreten. Durch die Verwendung des erlernten Wissens könnten Anomalieerkennungsmethoden zwischen anomalen oder normalen Datenpunkten unterscheiden. Einige der unbeaufsichtigten Algorithmen wie Clustering, KNN können Anomalien basierend auf den Daten und ihren Merkmalen erkennen.

Halbüberwachtes Lernen

Solche Algorithmen oder Methoden werden weder vollständig überwacht noch vollständig unbeaufsichtigt. Sie liegen grundsätzlich zwischen den beiden überwachten und unbeaufsichtigten Lernmethoden. Diese Arten von Algorithmen verwenden im Allgemeinen eine kleine überwachte Lernkomponente, dh eine kleine Menge vorbeschrifteter kommentierter Daten, und eine große unbeaufsichtigte Lernkomponente, dh viele unbeschriftete Daten für das Training. Wir können einen der folgenden Ansätze zur Implementierung von halbüberwachten Lernmethoden verfolgen:

  • Der erste und einfache Ansatz besteht darin, das überwachte Modell basierend auf einer kleinen Menge beschrifteter und kommentierter Daten zu erstellen und dann das unbeaufsichtigte Modell zu erstellen, indem dasselbe auf die großen Mengen unbeschrifteter Daten angewendet wird, um mehr beschriftete Proben zu erhalten. Trainieren Sie nun das Modell darauf und wiederholen Sie den Vorgang.

  • Der zweite Ansatz erfordert einige zusätzliche Anstrengungen. Bei diesem Ansatz können wir zuerst die unbeaufsichtigten Methoden verwenden, um ähnliche Datenproben zu gruppieren, diese Gruppen mit Anmerkungen zu versehen und dann eine Kombination dieser Informationen zum Trainieren des Modells zu verwenden.

Verstärkungslernen

Diese Methoden unterscheiden sich von zuvor untersuchten Methoden und werden auch sehr selten angewendet. Bei dieser Art von Lernalgorithmen gibt es einen Agenten, den wir über einen bestimmten Zeitraum trainieren möchten, damit er mit einer bestimmten Umgebung interagieren kann. Der Agent folgt einer Reihe von Strategien für die Interaktion mit der Umgebung und ergreift nach Beobachtung der Umgebung Maßnahmen in Bezug auf den aktuellen Zustand der Umgebung. Das Folgende sind die Hauptschritte der Lernmethoden zur Verstärkung:

  • Step 1 - Zuerst müssen wir einen Agenten mit ersten Strategien vorbereiten.

  • Step 2 - Beobachten Sie dann die Umgebung und ihren aktuellen Zustand.

  • Step 3 - Wählen Sie als Nächstes die optimale Richtlinie für den aktuellen Status der Umgebung aus und führen Sie wichtige Maßnahmen aus.

  • Step 4 - Jetzt kann der Agent eine entsprechende Belohnung oder Strafe erhalten, die der Aktion entspricht, die er im vorherigen Schritt ausgeführt hat.

  • Step 5 - Jetzt können wir die Strategien aktualisieren, wenn dies erforderlich ist.

  • Step 6 - Wiederholen Sie zuletzt die Schritte 2 bis 5, bis der Agent die optimalen Richtlinien gelernt und übernommen hat.

Aufgaben für maschinelles Lernen

Das folgende Diagramm zeigt, welche Art von Aufgabe für verschiedene ML-Probleme geeignet ist -

Basierend auf Lernfähigkeit

Im Lernprozess sind im Folgenden einige Methoden aufgeführt, die auf der Lernfähigkeit basieren:

Batch Learning

In vielen Fällen verfügen wir über durchgängige maschinelle Lernsysteme, in denen wir das Modell auf einmal unter Verwendung der gesamten verfügbaren Trainingsdaten trainieren müssen. Eine solche Art von Lernmethode oder Algorithmus wird genanntBatch or Offline learning. Es wird als Batch- oder Offline-Lernen bezeichnet, da es sich um eine einmalige Prozedur handelt und das Modell mit Daten in einem einzigen Batch trainiert wird. Im Folgenden sind die Hauptschritte der Batch-Lernmethoden aufgeführt:

  • Step 1 - Zuerst müssen wir alle Trainingsdaten sammeln, um mit dem Training des Modells zu beginnen.

  • Step 2 - Beginnen Sie jetzt mit dem Training des Modells, indem Sie ganze Trainingsdaten auf einmal bereitstellen.

  • Step 3 - Beenden Sie als Nächstes den Lern- / Trainingsprozess, sobald Sie zufriedenstellende Ergebnisse / Leistungen erzielt haben.

  • Step 4- Stellen Sie dieses geschulte Modell schließlich in der Produktion bereit. Hier wird die Ausgabe für eine neue Datenprobe vorhergesagt.

Online lernen

Es ist völlig entgegengesetzt zu den Batch- oder Offline-Lernmethoden. Bei diesen Lernmethoden werden die Trainingsdaten in mehreren inkrementellen Stapeln, die als Mini-Stapel bezeichnet werden, an den Algorithmus geliefert. Das Folgende sind die Hauptschritte der Online-Lernmethoden -

  • Step 1 - Zuerst müssen wir alle Trainingsdaten sammeln, um mit dem Training des Modells zu beginnen.

  • Step 2 - Beginnen Sie nun mit dem Training des Modells, indem Sie dem Algorithmus einen kleinen Stapel von Trainingsdaten bereitstellen.

  • Step 3 - Als nächstes müssen wir dem Algorithmus die Mini-Stapel von Trainingsdaten in mehreren Schritten zur Verfügung stellen.

  • Step 4 - Da es nicht wie das Batch-Lernen aufhört, nachdem Sie die gesamten Trainingsdaten in Mini-Batches bereitgestellt haben, stellen Sie auch neue Datenmuster bereit.

  • Step 5 - Schließlich wird es über einen bestimmten Zeitraum basierend auf den neuen Datenstichproben weiter lernen.

Basierend auf dem Generalisierungsansatz

Im Lernprozess folgen einige Methoden, die auf Generalisierungsansätzen basieren -

Instanzbasiertes Lernen

Die instanzbasierte Lernmethode ist eine der nützlichen Methoden, mit denen die ML-Modelle durch Verallgemeinerung auf der Grundlage der Eingabedaten erstellt werden. Es ist im Gegensatz zu den zuvor untersuchten Lernmethoden dahingehend, dass diese Art des Lernens sowohl ML-Systeme als auch Methoden umfasst, die die Rohdatenpunkte selbst verwenden, um die Ergebnisse für neuere Datenproben zu zeichnen, ohne ein explizites Modell auf Trainingsdaten aufzubauen.

Mit einfachen Worten, instanzbasiertes Lernen beginnt im Wesentlichen damit, die Eingabedatenpunkte zu betrachten und dann mithilfe einer Ähnlichkeitsmetrik die neuen Datenpunkte zu verallgemeinern und vorherzusagen.

Modellbasiertes Lernen

Bei modellbasierten Lernmethoden findet ein iterativer Prozess für die ML-Modelle statt, die auf verschiedenen Modellparametern basieren, die als Hyperparameter bezeichnet werden und in denen Eingabedaten zum Extrahieren der Merkmale verwendet werden. Bei diesem Lernen werden Hyperparameter basierend auf verschiedenen Modellvalidierungstechniken optimiert. Aus diesem Grund können wir sagen, dass modellbasierte Lernmethoden einen traditionelleren ML-Ansatz zur Verallgemeinerung verwenden.