Einführung in maschinelle Lernalgorithmen

Maschinelles Lernen ist die Untersuchung der prädiktiven Analytik, die auf dem Prinzip beruht, dass Computer aus früheren Daten lernen und dann Vorhersagen über die neuen Daten treffen. Das Aufkommen von Algorithmen für maschinelles Lernen war lange zurück, als die Computer entwickelt wurden. Der jüngste Hype ist jedoch ein Ergebnis der großen Datenmengen, die generiert werden, und der enormen Rechenleistung, die moderne Computer besitzen. Dies hat zur Entstehung von Deep Learning geführt, einem Teilbereich des maschinellen Lernens, der von mehr Daten lebt. Es funktioniert wie ein menschliches Gehirn, in dem Neuronen verwendet werden, um bessere Entscheidungen zu treffen. Ähnlich bilden beim Deep Learning die neuronalen Netze die Schichten, die dem Prinzip der Weiterleitung und Rückwärtsausbreitung folgen, um bessere Entscheidungen zu treffen.

Kategorien maschineller Lernalgorithmen

Das Gebiet der Algorithmen für maschinelles Lernen könnte in folgende Kategorien unterteilt werden:

  • Betreutes Lernen - Beim betreuten Lernen wird der Datensatz mit einer Bezeichnung versehen, dh für jedes Merkmal oder jede unabhängige Variable gibt es entsprechende Zieldaten, anhand derer wir das Modell trainieren würden.
  • UN-Supervised Learning - Im Gegensatz zu Supervised Learning ist der Datensatz in diesem Fall nicht beschriftet. Daher wird die Clustering-Technik verwendet, um die Daten basierend auf ihrer Ähnlichkeit unter den Datenpunkten in derselben Gruppe zu gruppieren.
  • Reinforcement Learning - Eine spezielle Art des maschinellen Lernens, bei der das Modell von jeder durchgeführten Aktion lernt. Das Modell wird für jede richtige Entscheidung belohnt und für jede falsche Entscheidung bestraft, die es ihm ermöglicht, die Muster zu lernen und genauere Entscheidungen zu unbekannten Daten zu treffen.

Abteilung für maschinelle Lernalgorithmen

Die Probleme in Algorithmen für maschinelles Lernen könnten unterteilt werden in

  • Regression - Zwischen den abhängigen und den unabhängigen Variablen besteht eine kontinuierliche Beziehung. Die Zielvariable ist numerischer Natur, während die unabhängigen Variablen numerisch oder kategorisch sein können.
  • Klassifizierung - Das häufigste Problem, das Sie in der realen Welt finden würden, ist die Klassifizierung eines Datenpunkts in eine binäre, multinomiale oder ordinale Klasse. Im Binärklassifizierungsproblem hat die Zielvariable nur zwei Ergebnisse (Ja / Nein, 0/1, Richtig / Falsch). Im Problem Multinomial Classification gibt es mehrere Klassen in der Zielvariablen (Apple / Orange / Mango usw.). Im Ordnungsklassifikationsproblem wird die Zielvariable geordnet (z. B. die Note der Schüler).

Um diese Art von Problemen zu lösen, haben Programmierer und Wissenschaftler einige Programme oder Algorithmen entwickelt, die für die Daten verwendet werden können, um Vorhersagen zu treffen. Diese Algorithmen könnten in lineare und nichtlineare oder baumbasierte Algorithmen unterteilt werden. Lineare Algorithmen wie lineare Regression und logistische Regression werden im Allgemeinen verwendet, wenn eine lineare Beziehung zwischen dem Merkmal und der Zielvariablen besteht, während die Daten, die nicht lineare Muster aufweisen, baumbasierte Methoden wie Entscheidungsbaum, zufällige Gesamtstruktur, Gradientenerhöhung, etc. sind bevorzugt.

Bisher erhielten wir eine kurze Einführung in das maschinelle Lernen. Jetzt lernen Sie einige der vorprogrammierten Algorithmen kennen, die Sie in Ihrem nächsten Projekt verwenden können.

Algorithmen

Es gibt zahlreiche Algorithmen für maschinelles Lernen, die derzeit auf dem Markt sind, und sie werden angesichts des Forschungsaufwands, der in diesem Bereich durchgeführt wird, nur noch zunehmen. Lineare und logistische Regression sind im Allgemeinen die ersten Algorithmen, die Sie als Data Scientist lernen, gefolgt von fortgeschritteneren Algorithmen.

Im Folgenden finden Sie einige Algorithmen für maschinelles Lernen sowie Beispielcode-Snippets in Python.

1. Lineare Regression

Wie der Name schon sagt, kann dieser Algorithmus in Fällen verwendet werden, in denen die Zielvariable, die von Natur aus stetig ist, linear von den abhängigen Variablen abhängt. Es wird vertreten durch -

y = a * x + b + e, wobei y die Zielvariable ist, die wir vorhersagen möchten, a der Achsenabschnitt ist und b die Steigung ist, x unsere abhängige Variable ist, die für die Vorhersage verwendet wird. Dies ist eine einfache lineare Regression, da es nur eine unabhängige Variable gibt. Im Falle der multiplen linearen Regression wäre die Gleichung gewesen:

y = a1*x1 + a2*x2 + …… + a(n)*x(n) + b + e

Hier ist e der Fehlerterm und a1, a2 .. a (n) sind die Koeffizienten der unabhängigen Variablen.

Um die Leistung des Modells zu bewerten, wird eine Metrik verwendet, die in diesem Fall Root Mean Square Error sein kann. Hierbei handelt es sich um die Quadratwurzel des Mittelwerts aus der Summe der Differenz zwischen dem tatsächlichen und dem vorhergesagten Wert.

Das Ziel der linearen Regression ist es, die am besten passende Linie zu finden, die den Unterschied zwischen den tatsächlichen und den vorhergesagten Datenpunkten minimiert.

Die lineare Regression könnte wie folgt in Python geschrieben werden:

2. Logistische Regression

In Bezug auf die Aufrechterhaltung einer linearen Beziehung entspricht dies der linearen Regression. Anders als bei der linearen Regression ist die Zielvariable bei der logistischen Regression jedoch kategorial, dh binär, multinomial oder ordinal. Die Wahl der Aktivierungsfunktion ist bei der logistischen Regression wichtig, da bei Problemen mit der binären Klassifizierung das Protokoll der Gewinnchancen zugunsten der Sigmoid-Funktion verwendet wird.

Im Fall eines Mehrklassenproblems wird die Softmax-Funktion bevorzugt, da eine Sigmoid-Funktion viel Rechenzeit benötigt.

Die zur Bewertung eines Klassifizierungsproblems verwendete Metrik ist im Allgemeinen Genauigkeit oder die ROC-Kurve. Je größer die Fläche unter der Republik China ist, desto besser ist das Modell. Ein zufälliger Graph hätte eine AUC von 0, 5. Der Wert 1 gibt die höchste Genauigkeit an, während 0 die niedrigste Genauigkeit angibt.

Logistische Regression könnte im Lernen geschrieben werden als


3. K-Nearest Neighbours

Algorithmen für maschinelles Lernen könnten sowohl für Klassifizierungs- als auch für Regressionsprobleme verwendet werden. Die Idee hinter der KNN-Methode ist, dass sie den Wert eines neuen Datenpunkts basierend auf seinen K Nearest Neighbours vorhersagt. K wird im Allgemeinen als ungerade Zahl bevorzugt, um Konflikte zu vermeiden. Bei der Klassifizierung eines neuen Datenpunkts wird die Klasse mit dem höchsten Modus innerhalb der Nachbarn berücksichtigt. Während für das Regressionsproblem der Mittelwert als Wert betrachtet wird.

Ich habe erfahren, dass der KNN wie folgt geschrieben ist:


KNN wird beim Aufbau einer Empfehlungsmaschine verwendet.

4. Unterstützen Sie Vector Machines

Ein Klassifizierungsalgorithmus, bei dem eine Hyperebene die beiden Klassen trennt. Bei einem Binärklassifizierungsproblem werden zwei Vektoren aus zwei verschiedenen Klassen als Unterstützungsvektoren bezeichnet, und die Hyperebene wird in maximalem Abstand von den Unterstützungsvektoren gezeichnet.

Wie Sie sehen, werden die beiden Klassen durch eine einzelne Linie getrennt. In den meisten Fällen wären die Daten jedoch nicht so perfekt und eine einfache Hyperebene wäre nicht in der Lage, die Klassen zu trennen. Daher müssen Sie Parameter wie Regularisierung, Kernel, Gamma usw. anpassen.

Der Kernel kann linear oder polynomisch sein, je nachdem, wie die Daten getrennt sind. In diesem Fall ist der Kernel linearer Natur. Bei der Regularisierung müssen Sie einen optimalen Wert für C wählen, da der hohe Wert zu einer Überanpassung führen kann, während ein kleiner Wert das Modell unterbieten kann. Der Einfluss eines einzelnen Trainingsbeispiels wird von Gamma definiert. Punkte in der Nähe der Linie werden in hohem Gamma und umgekehrt für niedriges Gamma berücksichtigt.

In sklearn wird SVM wie folgt geschrieben:


5. Naive Bayes

Es basiert auf dem Prinzip des Bayes-Theorems, das die Wahrscheinlichkeit eines Ereignisses unter Berücksichtigung einiger wahrer Bedingungen ermittelt. Der Bayes-Satz wird dargestellt als:

Der Algorithmus heißt Naive, weil er davon ausgeht, dass alle Variablen unabhängig sind und das Vorhandensein einer Variablen in keiner Beziehung zu den anderen Variablen steht, was im wirklichen Leben niemals der Fall ist. Naive Bayes kann in der Klassifizierung von E-Mail-Spam und in der Textklassifizierung verwendet werden.

Naiver Bayes-Code in Python -

6. Entscheidungsbaum

Der Decision Tree-Algorithmus wird sowohl für Klassifizierungs- als auch für Regressionsprobleme verwendet und ist einer der einfachsten und leicht zu interpretierenden Algorithmen für maschinelles Lernen. Es ist nicht von Ausreißern oder fehlenden Werten in den Daten betroffen und kann die nichtlinearen Beziehungen zwischen den abhängigen und den unabhängigen Variablen erfassen.

Bei der Erstellung eines Entscheidungsbaums werden zunächst alle Features berücksichtigt, aber das Feature mit dem maximalen Informationsgewinn wird als endgültiger Stammknoten verwendet, auf dessen Grundlage die sukzessive Aufteilung erfolgt. Diese Aufteilung wird auf dem untergeordneten Knoten basierend auf den maximalen Informationskriterien fortgesetzt und wird angehalten, bis alle Instanzen klassifiziert wurden oder die Daten nicht weiter aufgeteilt werden konnten. Entscheidungsbäume sind häufig anfällig für Überanpassungen. Daher müssen die Hyperparameter wie maximale Tiefe, minimale Blattknoten, minimale Stichproben, maximale Merkmale usw. angepasst werden. Um die Überanpassung zu reduzieren, gibt es einen gierigen Ansatz, der bei jedem Schritt Einschränkungen festlegt und die bestmöglichen Kriterien für diese Aufteilung auswählt. Es gibt einen anderen besseren Ansatz namens Beschneiden, bei dem der Baum zuerst bis zu einer bestimmten vordefinierten Tiefe aufgebaut wird und dann von unten die Knoten entfernt werden, wenn dies das Modell nicht verbessert.

In sklearn werden Entscheidungsbäume wie folgt codiert:



7. Zufälliger Wald

Um die Überanpassung im Entscheidungsbaum zu verringern, muss die Varianz des Modells verringert werden, und somit wurde das Konzept des Absackens eingeführt. Bagging ist eine Technik, bei der die Ausgabe mehrerer Klassifikatoren zur endgültigen Ausgabe herangezogen wird. Random Forest ist eine solche Absackmethode, bei der der Datensatz in mehrere Datensätze aufgeteilt wird und die Features für jeden Satz zufällig ausgewählt werden. Dann wird auf alle abgetasteten Daten der Entscheidungsbaumalgorithmus angewendet, um die Ausgabe von jedem Modus zu erhalten. Im Falle eines Regressionsproblems wird der Mittelwert der Ausgabe aller Modelle genommen, während im Falle eines Klassifizierungsproblems die Klasse berücksichtigt wird, die die maximale Bewertung erhält, um den Datenpunkt zu klassifizieren. Random Forest wird nicht von Ausreißern beeinflusst, es fehlen Werte in den Daten, und es hilft auch bei der Reduzierung der Dimensionalität. Es ist jedoch nicht interpretierbar, was ein Nachteil für Random Forest ist. In Python könnten Sie Random Forest wie folgt codieren:


8. K-bedeutet Clustering

Bisher haben wir mit überwachten Lernproblemen gearbeitet, bei denen es für jeden Input einen entsprechenden Output gibt. Nun möchten wir uns mit unbeaufsichtigtem Lernen befassen, bei dem die Daten unbeschriftet sind und in bestimmte Gruppen gruppiert werden müssen. Es stehen verschiedene Clustering-Techniken zur Verfügung. Am häufigsten ist jedoch das K-Mittel-Clustering. Tintenmittel, k bezieht sich auf die Anzahl der Cluster, die eingestellt werden müssen, bevor die maximale Varianz im Datensatz erhalten bleibt. Sobald das k gesetzt ist, werden die Schwerpunkte initialisiert. Die Zentroide werden dann wiederholt so angepasst, dass der Abstand zwischen den Datenpunkten innerhalb eines Zentroids maximal ist und der Abstand zwischen zwei getrennten Punkten maximal ist. Euklidische Entfernung, Manhattan-Entfernung usw. sind einige der für diesen Zweck verwendeten Entfernungsformeln.

Der Wert von k konnte aus der Ellbogenmethode ermittelt werden.

K-means Clustering wird in E-Commerce-Branchen verwendet, in denen Kunden anhand ihrer Verhaltensmuster zusammengefasst werden. Es kann auch in der Risikoanalyse verwendet werden. Unten ist der Python-Code -


Fazit: Algorithmen für maschinelles Lernen

Data Scientist ist der heißeste Job im 21. Jahrhundert, und maschinelles Lernen ist sicherlich einer der wichtigsten Fachbereiche. Um ein Data Scientist zu sein, muss man über ein tiefgreifendes Verständnis all dieser Algorithmen und auch über einige andere neue Techniken wie Deep Learning verfügen.

Empfohlene Artikel

Dies war eine Anleitung zu Algorithmen für maschinelles Lernen. Hier haben wir das Konzept, Kategorien, Probleme und verschiedene Algorithmen der Maschinensprache besprochen. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren -

  1. Maschinelles Lernen
  2. Was ist tiefes Lernen?
  3. Data Scientist gegen Maschinelles Lernen
  4. Betreutes Lernen versus unbeaufsichtigtes Lernen
  5. Hyperparameter Maschinelles Lernen
  6. Was ist Reinforcement Learning?
  7. Meist verwendete Techniken des Ensemble-Lernens
  8. Vollständige Anleitung zu Beispielen für C ++ - Algorithmen
  9. Leitfaden für die Phasen des maschinellen Lernzyklus

Kategorie: