Eine Einführung in die 42 am häufigsten angewandten Machine Learning Algorithmen (mit Code-Beispielen) - Murat Durmus - E-Book

Eine Einführung in die 42 am häufigsten angewandten Machine Learning Algorithmen (mit Code-Beispielen) E-Book

Murat Durmus

0,0
7,99 €

oder
-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.
Mehr erfahren.
Beschreibung

Egal, ob Sie Datenwissenschaftler, Softwareentwickler oder einfach nur daran interessiert sind, etwas über maschinelles Lernen zu lernen, "Eine Einführung in die 42 am häufigsten angewandten Machine Learning Algorithmen (mit Code-Beispielen)" ist eine hervorragende Ressource, um ein Verständnis für dieses spannende Gebiet zu erlangen. Über den Autor: Murat Durmus ist CEO und Gründer der AISOMA AG (einem in Frankfurt am Main ansässigen Unternehmen, das sich auf KI-basierte Technologieentwicklung und Beratung spezialisiert hat), Vorstandsmitglied AI Frankfurt Rhein-Main e.V. und Autor der Bücher "THE AI THOUGHT BOOK", "Mindful AI - Reflections on Artificial Intelligence", "INSIDE ALAN TURING". Folgende Algorithmen werden in diesem Buch behandelt: • ADABOOST • ADAM OPTIMIZATION • AGGLOMERATIVE CLUSTERING • ARMA/ARIMA MODEL • BERT • CONVOLUTIONAL NEURAL NETWORK • DBSCAN • DECISION TREE • DEEP Q-LEARNING • EFFICIENTNET • FACTOR ANALYSIS OF CORRESPONDENCES • GAN • GMM • GPT-3 • GRADIENT BOOSTING MACHINE • GRADIENT DESCENT • GRAPH NEURAL NETWORKS • HIERARCHICAL CLUSTERING • HIDDEN MARKOV MODEL (HMM) • INDEPENDENT COMPONENT ANALYSIS • ISOLATION FOREST • K-MEANS • K-NEAREST NEIGHBOUR • LINEAR REGRESSION • LOGISTIC REGRESSION • LSTM • MEAN SHIFT • MOBILENET • MONTE CARLO ALGORITHM • MULTIMODAL PARALLEL NETWORK • NAIVE BAYES CLASSIFIERS • PROXIMAL POLICY OPTIMIZATION • PRINCIPAL COMPONENT ANALYSIS • Q-LEARNING • RANDOM FORESTS • RECURRENT NEURAL NETWORK • RESNET • SPATIAL TEMPORAL GRAPH CONVOLUTIONAL NETWORKS • STOCHASTIC GRADIENT DESCENT • SUPPORT VECTOR MACHINE • WAVENET • XGBOOST

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



 

 

 

Murat Durmus

 

 

 

Eine Einführung in die

42 am häufigsten angewandten

Machine Learning

Algorithmen

(mit Code-Beispielen)

 

 

Urheberrecht © 2023 Murat Durmus

Alle Rechte vorbehalten. Kein Teil dieser Publikation darf ohne vorherige schriftliche Genehmigung des Herausgebers in irgendeiner Form oder mit irgendwelchen Mitteln, einschließlich Fotokopien, Aufzeichnungen oder anderen elektronischen oder mechanischen Methoden, vervielfältigt, verbreitet oder übertragen werden, mit Ausnahme von kurzen Zitaten, die in kritischen Rezensionen enthalten sind, und bestimmten anderen nichtkommerziellen Verwendungen, die durch das Urheberrecht erlaubt sind.

Umschlaggestaltung:

Murat Durmus (Mandala: ilona illustrations - canva.com)

Impressum:

Murat Durmus

Georg-August-Zinn Str.6

63225 Langen

ISBN: 9783757916572

Über den Autor

Murat Durmus ist CEO und Gründer von AISOMA G (einem in Frankfurt am Main ansässigen Unternehmen, dass sich auf KI-basierte Technologieentwicklung und Beratung spezialisiert hat) und Autor der Bücher "Mindful AI - Reflections on Artificial Intelligence" & INSIDE ALAN TURING".Sie können sich mit dem Autor in Verbindung setzen über:

LinkedIn:

      

https://www.linkedin.com/in/ceosaisoma/

 

E-Mail:

      

      

[email protected]

Anmerkung:

Die Code-Beispiele und Beschreibung in diesem Buch wurden mit der Unterstützung von ChatGPT (OpenAI) geschrieben.

 

 

 

 

“All models are wrong,

but some are useful.”

George E. P. Box 

 

 

 

 

EINFÜHRUNG

In diesem Buch verwendete Taxonomie

Hauptbereich und Datentypen

Lernparadigmen mit Subtypen.

Erklärbarkeit

ADABOOST

ADAM OPTIMIZATION

AGGLOMERATIVES CLUSTERING

ARMA/ARIMA-MODELL

BERT

CONVOLUTIONAL NEURAL NETWORK

DBSCAN

DECISION TREE

DEEP Q-LEARNING

EFFICIENTNET

FACTOR ANALYSIS OF CORRESPONDENCES

GAN

GMM

GPT-3

GRADIENTENVERSTÄRKUNGSMASCHINE

GRADIENT DESCENT

GRAPHISCHE NEURONALE NETZE

HIERARCHISCHES CLUSTERING

HIDDEN MARKOV-MODELL (HMM)

INDEPENDET COMPONET ANALYSIS

ISOLATIONSWALD

K-MEANS

K-NEAERST NEIGHBOR

LINEARE REGRESSION

LOGISTISCHE REGRESSION

LSTM

MEAN SHIFT

MOBILENET

MONTE-CARLO-ALGORITHMUS

MULTIMODALES PARALLELES NETZ

NAIVE-BAYES-KLASSIFIKATOREN

PROXIMAL POLICY OPTIMIZATION

PRINCIPAL COMPONENT ANALYSIS

Q-LEARNING

RANDOM FORESTS

REKURRENTES NEURONALES NETZ

RESNET

SPATIAL TEMPORAL GRAPH CONVOLUTIONAL NETWORKS

STOCHASTIC GRADIENT DESCENT

SUPPORT-VECTOR-MACHINE

WAVENET

XGBOOST

GLOSSAR

A/B-Tests

Accuracy

Aktivierungsfunktion

Backpropagation

Binäre Klassifizierung

Datenerweiterung

Decoder

Dimension

Diskriminierungsmerkmal

Embeddings

Encoder

Epoche

Merkmalsextraktion

Merkmalsset

Rückkopplungsschleife

Few-Shot Learning

Verallgemeinerung

Heuristik

Versteckte Jayer

Hyperparameter

Implizite Vorurteile

Inferenz

Lernrate

Loss

Modell

Multi-Klassen-Klassifizierung

Vortrainiertes Modell

Rekurrentes neuronales Netz

Sequenz-zu-Sequenz-Aufgabe

Sigmoid Funktion

SoftMax

Testsatz

Zeitreihenanalyse

Trainingssatz

Lernen übertragen

Transformator

True Negative (TN)

True positiv (TP)

True positive rate (TPR)

Validierung

Validierungssatz

Variable Wichtigkeit

Gewicht

MINDFUL AI

INSIDE ALAN TURING: QUOTES & CONTEMPLATIONS

 

EINFÜHRUNG

Maschinelles Lernen bezieht sich auf die Entwicklung von KI-Systemen, die aufgrund eines "Lernprozesses" auf der Grundlage von Daten Aufgaben erfüllen können. Dies steht im Gegensatz zu Ansätzen und Methoden der symbolischen KI und der traditionellen Software-entwicklung, die auf der Einbettung expliziter Regeln und logischer Aussagen in den Code beruhen. ML steht im Mittelpunkt der jüngsten Fortschritte in der statistischen KI und der Methodik hinter technologischen Errungen-schaften wie Computerprogrammen, die den Menschen bei Aufgaben von der medizinischen Diagnose bis hin zu komplexen Spielen übertreffen. Der jüngste Anstieg des Interesses an der KI ist weitgehend auf die Erfolge zurückzuführen, die durch ML ermöglicht wurden. Wie der Begriff "statistische KI" schon sagt, stützt sich ML auf Konzepte der Statistik und Wahrscheinlichkeitstheorie. Viele Formen von ML gehen jedoch über die traditionellen statistischen Methoden hinaus, weshalb wir ML oft als ein aufregendes neues Gebiet betrachten. Doch trotz des Hypes um diese technologische Entwicklung ist die Grenze zwischen ML und Statistik fließend. Es gibt Kontexte, in denen ML am besten als ein Kontinuum mit traditionellen statistischen Methoden und nicht als ein klar definierter, separater Bereich betrachtet wird. Unabhängig von den definitorischen Grenzen wird ML häufig für die gleichen analytischen Aufgaben eingesetzt, für die in der Vergangenheit herkömmliche statistische Methoden verwendet wurden.

ML ist ein sehr aktives Forschungsgebiet, das ein breites und sich ständig weiterentwickelndes Spektrum an Methoden umfasst. Auf oberster Ebene lassen sich drei primäre Ansätze unterscheiden: überwachtes Lernen, unüberwachtes Lernen und verstärktes Lernen.

 

Überwachtes Lernen (Supervised Learning)

Beim überwachten Lernen besteht die Aufgabe des ML-Algorithmus darin, den Wert einer vordefinierten Zielvariablen (oder Ausgangsvariablen) auf der Grundlage bekannter Werte von Merkmalsvariablen (oder Eingangsvariablen) abzuleiten. Das Vorhandensein von markierten Daten (d. h. Daten mit bekannten Werten für die betreffende Zielvariable) ist eine Voraussetzung für das überwachte Lernen. Der Lernprozess besteht in der Entwicklung eines Modells der Beziehung zwischen Merkmals- und Zielvariablen auf der Grundlage von markierten Trainingsdaten. Dieser Prozess wird auch als "Modelltraining" bezeichnet. Nach einer erfolgreichen Trainingsphase (die durch eine Testphase bestätigt wird, die ebenfalls auf gekennzeichneten Daten basiert) kann das resultierende Modell auf nicht gekennzeichnete Daten angewendet werden, um den wahrscheinlichsten Wert der Zielvariablen abzuleiten. Dies wird als Inferenzphase bezeichnet.

Überwachtes Lernen kann zwei Haupttypen von analytischen Problemen lösen:

Regressionsprobleme

, bei denen die Zielvariable von Interesse kontinuierlich ist. Beispiele sind die Vorhersage zukünftiger Aktienkurse oder Versicherungskosten.

Klassifizierungsprobleme

, bei denen das Ziel von Interesse eine kategoriale Variable ist. Dazu gehören Probleme, bei denen die Zielvariable binär ist (z. B. ob eine Finanztransaktion betrügerisch oder nicht betrügerisch ist) und Mehr-klassenprobleme, die mehr als zwei Kategorien umfassen. Die Klassifizierung kann zum Beispiel verwendet werden, um die Wahrscheinlichkeit zu bewerten, dass Kunden mit der Rückzahlung von Krediten in Verzug geraten.

 

Unüberwachtes Lernen (Unsupervised Learning)

Beim unüberwachten Lernen geht es darum, Muster und Beziehungen in Daten zu erkennen, ohne dass eine vordefinierte Beziehung von Interesse besteht. Im Gegensatz zum überwachten Lernen ist dieser Ansatz nicht auf markierte Trainingsdaten angewiesen. Daher kann unüberwachtes Lernen explorativer sein, obwohl die Ergebnisse nicht unbedingt weniger aussagekräftig sind.

Unüberwachtes Lernen ist von Vorteil, wenn markierte Daten nicht verfügbar oder teuer zu produzieren sind. Dieser Ansatz kann verwendet werden, um Probleme wie die folgenden zu lösen:

Bei der Clusteranalyse werden Beobachtungseinheiten auf der Grundlage von Ähnlichkeiten und Unähnlichkeiten zwischen ihnen gruppiert. Beispiele für Aufgaben, bei denen die Clusteranalyse hilfreich sein kann, sind Kundensegmentierungsübungen.

Assoziationsanalyse, bei der das Ziel darin besteht, auffällige Beziehungen zwischen Variablen innerhalb eines Datensatzes zu ermitteln. Assoziationsregeln (d. h. formale Wenn-dann-Aussagen) beschreiben in der Regel solche Beziehungen. Diese Regeln können zu Erkenntnissen wie "Kunden, die sich für X interessieren, sind auch an Y und Z interessiert" führen. Die Assoziationsanalyse wird für Produktempfehlungen und Aufgaben des Kunden-dienstmanagements verwendet.

Verstärktes Lernen (Reinforcement Learning)

Verstärktes Lernen basiert auf dem Konzept eines "Agenten", der eine Umgebung erkundet. Die Aufgabe des Agenten besteht darin, als Reaktion auf seine Umgebung eine optimale Aktion oder Abfolge von Schritten (das Ziel von Interesse) zu bestimmen. Der Lernprozess stützt sich nicht auf Beispiele für "richtige Antworten". Stattdessen hängt er von einer Belohnungsfunktion ab, die Rückmeldung über die durchgeführten Aktionen gibt. Der Agent ist bestrebt, seine Belohnung zu maximieren und somit seine Leistung durch einen iterativen Prozess von Versuch und Irrtum zu verbessern.

Verstärkungslernen ist praktisch, wenn die optimalen Aktionen (d. h. die richtigen Antworten) unbekannt sind. In solchen Situationen stehen keine markierten Trainingsdaten zur Verfügung oder es besteht die Gefahr, dass suboptimale Ergebnisse erzielt werden, wenn Analysten überwachtes Lernen verwenden. Die konzeptionelle Struktur des Ansatzes macht ihn auch für Problemtypen relevant, die einen sequentiellen oder dynamischen Charakter haben. Beispiele hierfür sind Probleme in der Robotik oder bei Spielen.

Viele Arbeiten zum verstärkten Lernen finden im Rahmen der Grundlagenforschung statt. Dazu gehört auch die Forschung im Bereich der allgemeinen KI. Im Vergleich zu anderen ML-Ansätzen ist das verstärkende Lernen in der Wirtschaft weniger verbreitet. Die bekanntesten Geschäftsanwendungen liegen außerhalb der Finanz-dienstleistungen und umfassen autonome Fahrzeuge und andere Formen der Robotik. Zu den potenziellen Anwendungen im Finanzdienstleistungsbereich gehören der Handel bzw. die Handelsausführung und die dynamische Preisgestaltung.

Diese drei Ansätze umfassen eine Vielzahl von ML-Methoden wie lineare Regression, Entscheidungsbäume, Support-Vector-Machines, künstliche neuronale Netze und Ensemble-Methoden. Zwei allgemeine Punkte zu den methodologischen Unterschieden sind jedoch erwähnenswert.

Erstens unterscheiden sich ML-Methoden erheblich in ihrer Komplexität. Die Diskussionen über ML konzentrieren sich häufig auf Verfahren mit einem hohen Grad an Komplexität. So wird beispielsweise neuronalen Netzen, einer Familie von Verfahren, die mit Hilfe von Netzwerkstrukturen, die denen des biologischen Gehirns ähneln, nach Mustern und Beziehungen in Datensätzen suchen, große Aufmerksamkeit geschenkt. Die ML umfasst jedoch auch weniger komplexe Methoden wie die gewöhnliche Regression der kleinsten Quadrate und die logistische Regression. Diese einfacheren Methoden werden seit langem in der Statistik und Ökonometrie eingesetzt und waren bereits etabliert, bevor ML in seiner heutigen Form aufkam. Wir werden auf die Frage der Komplexität und ihrer praktischen Auswirkungen in späteren Kapiteln zurückkommen. Es ist anzumerken, dass die ML als Fachgebiet spezifische, hochkomplexe Methoden umfasst, aber nicht auf diese beschränkt ist.

Zweitens können ML-Methoden für die Entwicklung statischer oder dynamischer Systeme verwendet werden. Bei statischen Systemen wird ML verwendet, um Modelle zu entwickeln, die sich nach ihrem Einsatz nicht mehr weiterentwickeln, es sei denn, sie werden absichtlich durch ein neues Modell ersetzt. Bei dynamischen Systemen hingegen passen sich die Modelle nach dem Einsatz auf der Grundlage neuer Daten, die während des Betriebs verfügbar werden, weiter an.

Ein solches dynamisches (oder inkrementelles) Lernen kann in Situationen von großem Nutzen sein, in denen die während der Entwicklung verfügbaren Daten begrenzt sind oder in denen Modelle Phänomene mit sich schnell ändernden Eigenschaften erfassen.

 

In diesem Buch verwendete Taxonomie

Hauptbereich und Datentypen

Domäne

Datentyp

Definition

Computer

Vision

Bild

Visuelle Darstellung einer Pixelmatrix, die aus einem Kanal für Schwarz-Weiß-Bilder, drei Elementen für Farbbilder (RGB) oder vier Elementen für Farbbilder mit Deckkraft (RGBA) besteht.

Video

Eine Abfolge von Bildern (Frames), manchmal gruppiert mit einer Zeitreihe (einem Ton).

NLP / Sprache

Verarbeitung

Text

Eine Folge von Zeichen (z. B. ein Tweet, ein Textfeld).

Zeitreihen

Eine Reihe von Datenpunkten (z. B. numerisch), die in zeitlicher Reihenfolge indiziert sind.

Klassische Datenwissenschaft

Strukturierte Daten

Die Daten sind in einem vordefinierten Array-Modell mit einer spezifischen Spalte für jedes Merkmal (z. B. Text, numerische Daten, Datum) organisiert. Genauer gesagt beziehen sich strukturierte Daten auf organisierte Daten, wie sie beispielsweise in einer relationalen Datenbank zu finden sind (die, wie bereits erwähnt, Textspalten enthalten kann).

Quantitative Daten können von qualitativen Daten unterschieden werden. Quantitative Daten entsprechen numerischen Daten, die einige arithmetische Operationen unterstützen können, während qualitative Daten in der Regel als kategorische Daten verwendet werden, um Daten nach ihren Ähnlichkeiten zu klassifizieren.

 

 

 

 

Lernparadigmen mit Subtypen.

Lernparadigma

Untertyp

Definition

Überwachtes Lernen

Klassifizierung

Klassifizierung ist der Prozess der Vorhersage der Klasse von gegebenen Datenpunkten. (Ist das Bild eine Katze oder ein Hund?)

Regression

Regressionsmodelle werden verwendet, um einen kontinuierlichen Wert vorherzusagen. (Vorhersage des Preises eines Hauses auf der Grundlage seiner Merkmale).

Unüberwachtes Lernen

Clustering

Beim Clustering werden die Datenpunkte in mehrere Gruppen eingeteilt, so dass die Datenpunkte in denselben Gruppen einander ähnlicher sind als die Datenpunkte in den anderen Gruppen.

Dimensionalität-reduktion

Die Dimensionalitätsreduktion bezieht sich auf Techniken zur Verringerung der Anzahl von Eingabevariablen in den Trainingsdaten.

Reinforcement Learning

Belohnung

Die Belohnung ist ein Bereich des ML, der sich damit beschäftigt, wie intelligente Agenten in einer Umgebung handeln sollten, um den Begriff der kumulativen Belohnung zu maximieren, indem sie aus ihren Erfahrungen durch Feedback lernen.

 

 

Erklärbarkeit

Ein wichtiger Aspekt der KI-Sicherheit ist die Erklärbarkeit. Wenn man die Algorithmen versteht und sie erklärbar macht, sind sie für möglichst viele Menschen zugänglich. Darüber hinaus trägt die Erklärbarkeit dazu bei, die Vertrauenswürdigkeit von KI zu erhöhen, und unterstützt die Forensik und Analyse von Entscheidungen.

ADABOOST

 

 

 

 

 

 

Definition

AdaBoost verwendet mehrere Iterationen, um durch das iterative Hinzufügen von schwachen Lernern einen einzigen zusammengesetzten starken Lerner zu erstellen. In jeder Trainingsphase wird ein neuer schwacher Lerner zum Ensemble hinzugefügt und ein Gewichtsvektor wird angepasst, um sich auf Beispiele zu konzentrieren, die in früheren Runden falsch klassifiziert wurden.

 

Hauptbereich

 

 

Klassische Datenwissenschaft

Datenart

 

Strukturierte Daten

Umgebung der Daten

Überwachtes Lernen

Paradigma des Lernens

Klassifizierung, Regression

Erklärbarkeit

Erklärbar

 

AdaBoost (Adaptive Boosting) ist ein Ensemble-Lernalgorithmus, mit dem die Genauigkeit schwacher Klassifikatoren verbessert werden kann, indem sie zu einem starken Klassifikator kombiniert werden. Ein Klassifikator ist ein Modell, das die Klasse oder Kategorie einer Eingabe vorhersagen kann, und ein schwacher Klassifikator ist ein Modell, das besser ist als zufälliges Raten, aber nicht so gut wie ein starker Klassifikator.

Der AdaBoost-Algorithmus funktioniert, indem er iterativ eine Reihe von schwachen Klassifikatoren auf den Daten trainiert und bei jeder Iteration die Gewichte der Proben im Trainingssatz anpasst. Der Algorithmus weist den Proben, die von den vorherigen Klassifizierern falsch klassifiziert wurden, höhere Gewichte zu und den richtig klassifizierten Proben niedrigere Gewichte. Dieser Prozess wird für eine bestimmte Anzahl von Iterationen oder bis zum Erreichen eines Haltekriteriums wiederholt.

Am Ende des Prozesses kombiniert der Algorithmus die Ergebnisse aller schwachen Klassifikatoren zu einem endgültigen starken Klassifikator. Die Kombination erfolgt, indem jedem schwachen Klassifikator ein Gewicht auf der Grundlage seiner Genauigkeit zugewiesen wird. Der letzte starke Klassifikator ordnet der Eingabe eine Klasse oder Kategorie zu, indem er eine gewichtete Mehrheitsabstimmung der Ergebnisse aller schwachen Klassifikatoren vornimmt.

AdaBoost ist ein leistungsfähiger Algorithmus, der in verschiedenen Anwendungen eingesetzt wird, darunter Bild- und Spracherkennung, Objekterkennung und Bioinformatik. Er ist vorteilhaft, wenn die Daten verrauscht sind oder mehrere Merkmale aufweisen, und er ist resistent gegen Überanpassung.

Einer der Hauptvorteile von AdaBoost ist, dass es mit einer Vielzahl von schwachen Klassifikatoren verwendet werden kann, darunter Entscheidungsbäume, neuronale Netze und Support-Vektor-Maschinen. Außerdem ist es einfach zu implementieren und rechnerisch effizient. Allerdings reagiert es empfindlich auf Ausreißer und Rauschen in den Daten und kann durch die Wahl des schwachen Klassifikators und die Anzahl der Iterationen beeinflusst werden.

 

Beispiel:

Stellen Sie sich vor, wir haben einen Datensatz mit 100 Beobachtungen, jede mit zwei Merkmalen (x1 und x2) und einem binären Label (1 oder -1). Wir wollen einen Klassifikator trainieren, der das Label einer neuen Beobachtung auf der Grundlage ihrer Merkmale vorhersagen kann.

Der Algorithmus beginnt mit dem Training eines schwachen Klassifizierers für die Daten, z. B. eines Entscheidungsstumpfs (ein einstufiger Entscheidungsbaum), der die Daten auf der Grundlage eines Schwellenwerts für eines der Merkmale unterteilt. Dieser Klassifikator klassifiziert 80 der Beobachtungen richtig.

Anschließend weist der Algorithmus jeder Beobachtung ein Gewicht zu, je nachdem, ob sie richtig oder falsch klassifiziert wurde. Die Gewichtung der richtig klassifizierten Beobachtungen wird verringert, die der falsch klassifizierten Beobachtungen erhöht.

Der Algorithmus trainiert dann einen zweiten schwachen Klassifikator auf den Daten unter Verwendung der aktualisierten Gewichte. Dieser Klassifikator kann sich vom ersten unterscheiden, z. B. könnte er ein zusätzliches Merkmal oder einen anderen Schwellenwert verwenden. Dieser Klassifikator klassifiziert 85 der Beobachtungen richtig.

Der Algorithmus ordnet den Beobachtungen neue Gewichte zu und wiederholt den Prozess für eine festgelegte Anzahl von Iterationen oder bis ein Stoppkriterium erfüllt ist.

Am Ende des Prozesses hat der Algorithmus mehrere schwache Klassifikatoren auf die Daten trainiert, wobei er jedem Klassifikator ein Gewicht auf der Grundlage seiner Genauigkeit zuweist. Der endgültige starke Klassifikator ist ein gewichtetes Mehrheitsvotum aus den Ergebnissen aller schwachen Klassifikatoren.

Ein Beispiel für die Verwendung des Adaboost-Algorithmus in Python unter Verwendung der scikit-learn-Bibliothek:

from sklearn.ensemble import AdaBoostClassifier

from sklearn.datasets import make_classification

 

# Generieren Sie einige Beispieldaten

n_redundant=0, random_state=0)

 

# Erstellen Sie eine Instanz des Adaboost-Klassifikators.

 

# Anpassung des Modells an die Daten

clf.fit(X, y)

 

# Vorhersagen zu neuen Daten machen

 

In diesem Beispiel importieren wir zunächst die Klasse AdaBoostClassifier aus dem Ensemble-Modul von scikit-learn. Dann verwenden wir die Funktion make_classification, um Beispieldaten für das Modell zu erzeugen. Als Nächstes erstellen wir eine Instanz des Klassifikators, wobei wir den Zufallszustand auf 0 setzen, um die Reproduzierbarkeit zu gewährleisten. Dann verwenden wir die fit-Methode, um das Modell auf den Daten zu trainieren, und die predict-Methode, um Vorhersagen auf neuen Daten zu treffen.

Es ist erwähnenswert, dass der AdaBoostClassifier für Klassifizierungsprobleme verwendet werden kann. Wenn Sie Adaboost für Regression verwenden möchten, können Sie stattdessen die Klasse AdaBoostRegressor verwenden.

 

ADAM OPTIMIZATION

 

 

 

 

Definition

Die Adam-Optimierung ist eine Erweiterung des stochastischen Gradientenabstiegs. Sie kann anstelle des klassischen stochastischen Gradient-enabstiegs verwendet werden, um die Netzgewichte dank zweier Methoden effizienter zu aktualisieren: adaptive Lernrate und Momentum.

 

Hauptbereich

 

 

Klassische Datenwissenschaft

 

Datenart

 

 

Strukturierte Daten

Umgebung der Daten

 

-

Paradigma des Lernens

 

 

Optimierung

Erklärbarkeit

-      

Adam (Adaptive Moment Estimation) ist ein Optimierungsalgorithmus, der zur Aktualisierung der Parameter eines Modells für maschinelles Lernen während des Trainings verwendet wird. Er ist ein beliebter Algorithmus, der bei Deep Learning und neuronalen Netzen eingesetzt wird.

Adam ist eine Erweiterung des Algorithmus des stochastischen Gradientenabstiegs (SGD), einer Methode zur Optimierung der Parameter eines Modells durch deren Aktualisierung in Richtung des negativen Gradienten der Verlustfunktion. Der Adam-Algorithmus verwendet wie der SGD-Algorithmus die Gradienten der Verlustfunktion in Bezug auf die Modellparameter, um die Parameter zu aktualisieren. Darüber hinaus beinhaltet er auch das Konzept der "Dynamik" und der "adaptiven Lernraten", um den Optimierungsprozess zu verbessern.

Der "Momentum"-Term in Adam ähnelt dem Momentum-Term, der in anderen Optimierungsalgorithmen wie SGD mit Momentum verwendet wird. Er hilft dem Optimierer, sich an die Richtung der vorherigen Aktualisierung zu "erinnern" und sich weiter in diese Richtung zu bewegen, was dem Optimierer helfen kann, schneller zu konvergieren.

Der Begriff "adaptive Lernraten" in Adam passt die Lernrate für jeden Parameter auf der Grundlage der historischen Gradienteninformationen an. Dies ermöglicht es dem Optimierer, die Lernrate für jeden Parameter individuell anzupassen, so dass der Optimierer schneller und stabiler konvergieren kann.

Adam ist beim Deep Learning weit verbreitet, da es rechnerisch effizient ist und mit spärlichen Gradienten und verrauschten Optimierungslandschaften umgehen kann. Allerdings benötigt es mehr Speicherplatz, um die historischen Gradienteninformationen zu speichern, und es kann empfindlich auf die Wahl der Hyperparameter reagieren, wie z. B. die anfängliche Lernrate.

Zusammenfassend lässt sich sagen, dass Adam ein leistungsfähiger Optimierungsalgorithmus ist, der die Konvergenzgeschwindigkeit und die Stabilität des Modells während des Trainings verbessern kann, indem er die Konzepte des Impulses und der adaptiven Lernraten einbezieht; er wird häufig für Deep Learning und neuronale Netze verwendet, da er rechnerisch effizient ist und mit verrauschten Optimierungslandschaften umgehen kann.

Beispiel:

Stellen Sie sich ein neuronales Netz mit zwei Schichten vor, wobei die erste Schicht vier Neuronen und die zweite Schicht ein Neuron enthält; das Netz wird für eine binäre Klassifizierung verwendet. Das Ziel ist es, die optimalen Werte für die Gewichte und Vorspannungen der Neuronen zu finden, die die Verlustfunktion minimieren.

Der Algorithmus beginnt mit einer zufälligen Initialisierung der Gewichte und Verzerrungen der Neuronen.

Anschließend führt der Algorithmus einen Vorwärtsdurchlauf der Daten durch das Netz durch, um die Ausgabe der Neuronen und die Verlustfunktion zu berechnen.

Der Algorithmus berechnet dann die Gradienten der Verlustfunktion für die Gewichte und Verzerrungen der Neuronen.

Der Algorithmus verwendet die Gradienten, um die Gewichte und Verzerrungen der Neuronen mithilfe der Adam-Optimierung zu aktualisieren. Der Aktualisierungsschritt umfasst die Berechnung des gleitenden Durchschnitts der Gradienten und der quadrierten Gradienten, die verwendet werden, um die Lernrate für jedes Gewicht und jede Verzerrung einzeln anzupassen.

Der Algorithmus wiederholt die Schritte 2 bis 4 für eine bestimmte Anzahl von Iterationen oder bis ein Stoppkriterium erfüllt ist.

Am Ende des Prozesses hat der Algorithmus die optimalen Werte für die Gewichte und Verzerrungen der Neuronen gefunden, die die Verlustfunktion minimieren.

Das von mir angeführte Beispiel ist eine vereinfachte Version des Prozesses; in der Praxis kann das neuronale Netz mehr Schichten und Neuronen haben, und der Datensatz kann sehr viel umfangreicher sein. Außerdem zeigt das Beispiel den Prozess für ein binäres Klassifizierungsproblem, aber der Adam-Optimierungsalgorithmus kann zur Optimierung jeder differenzierbaren Verlustfunktion verwendet werden.

Codebeispiel für die Verwendung des Adam-Optimierungsalgorithmus in Python mit der Keras-Bibliothek:

from keras.optimizers import Adam

 

# Ein Modell erstellen

 

# Kompilieren Sie das Modell mit dem Adam-Optimierer.

model.compile(optimizer=opt, loss='binary_crossentropy', ['accuracy'])

 

# Das Modell trainieren

model.fit(X_train, y_train, epochs=10, batch_size=32)

 

In diesem Beispiel wird der Adam-Optimierer mit der angegebenen Lernrate (lr) und den Beta-Werten verwendet, und das Modell wird mit binären Crossentropie-Verlust- und Genauigkeitsmetriken erstellt. Das Modell wird dann auf X_train- und y_train-Daten mit 10 Epochen und einer Stapelgröße von 32 trainiert. Es ist erwähnenswert, dass dies nur eine von vielen Möglichkeiten ist, die Adam-Optimierung in Keras zu kodieren, und die spezifischen Hyperparameterwerte können je nach Datensatz und Problemstellung angepasst werden.

 

AGGLOMERATIVES CLUSTERING

 

 

 

Definition

Agglomeratives Clustering ist ein "Bottom-up"-Ansatz für hierarchisches Clustering. Jede Beobachtung beginnt in ihrem Cluster, und die Clusterpaare werden auf ihrem Weg nach oben in der Hierarchie zusammengeführt.

 

Hauptbereich

 

 

Klassische Datenwissenschaft

 

Datenart

 

 

Strukturierte Daten

Umgebung der Daten

 

 

Unüberwachtes Lernen

Paradigma des Lernens

 

 

Clustering

Erklärbarkeit

-      

 

Agglomeratives Clustering ist eine Art von hierarchischem Clustering-Algorithmus. Hierarchische Clustering-Algorithmen sind eine Klasse von Algorithmen, die eine Hierarchie von Clustern erstellen, wobei jedes Cluster eine Teilmenge des vorherigen ist. Im Gegensatz dazu bilden andere Clustering-Algorithmen wie k-means flache Cluster, bei denen jeder Punkt zu genau einem Cluster gehört.

Das agglomerative Clustering beginnt mit jedem Punkt als einzelnem Cluster und führt dann iterativ das nächstgelegene Paar von Clustern zusammen, bis alle Punkte zu einem einzigen Cluster gehören oder ein Stoppkriterium erfüllt ist. Der Grundgedanke hinter dem agglomerativen Clustering ist, dass ähnliche Themen mit größerer Wahrscheinlichkeit im selben Cluster zu finden sind. Daher beginnt der Algorithmus mit einer großen Anzahl kleiner Cluster und endet mit einer kleinen Anzahl großer Cluster.

Einer der kritischen Parameter beim agglomerativen Clustering ist das Verknüpfungskriterium, das den Abstand zwischen den Clustern bestimmt. Übliche Verknüpfungskriterien sind:

Einzelverknüpfung (der Abstand zwischen den nächstgelegenen Punkten in jedem Cluster).

Vollständige Verbindung (der Abstand zwischen den am weitesten entfernten Punkten in jedem Cluster).

Durchschnittliche Verbindung (der durchschnittliche Abstand zwischen allen Punkten in jedem Cluster).

Ward Linkage (die minimale Varianz der Abstände zwischen allen Punkten in jedem Cluster).

Agglomeratives Clustering ist ein effizienter und flexibler Algorithmus zum Clustern von Daten. Er hat jedoch einige Einschränkungen. So lässt er sich beispielsweise nicht gut auf große Datensätze skalieren, ist empfindlich gegenüber den Verknüpfungskriterien und muss eine Möglichkeit zur Bestimmung der optimalen Anzahl von Clustern bieten. Trotz dieser Einschränkungen ist er ein weit verbreiteter Algorithmus, der in vielen Anwendungen wie Bildanalyse, Bioinformatik und Kundensegmentierung eingesetzt wird.

Beispiel:

Angenommen, wir haben einen Datensatz mit 6 Punkten, die durch die Koordinaten (x, y) in einem zweidimensionalen Raum dargestellt werden: (1,2), (2,4), (3,5), (4,4), (5,2), (6,1)

Der Algorithmus beginnt damit, jeden Punkt als ein einzelnes Cluster zu behandeln. Wir haben also 6 Cluster, die jeweils einen Punkt enthalten.

Anschließend findet der Algorithmus das nächstgelegene Paar von Clustern und fasst sie zu einem neuen Cluster zusammen. Das in diesem Beispiel verwendete Verknüpfungskriterium ist "single linkage", d. h. der Algorithmus findet den geringsten Abstand zwischen den nächstgelegenen Punkten jedes Clusters. Das nächstgelegene Paar von Clustern ist zum Beispiel (1,2) und (6,1) mit einem Abstand von 1.

Der Vorgang wird wiederholt, und der Algorithmus findet das nächstgelegene Paar von Clustern. In diesem Beispiel ist das nächstgelegene Paar (2,4) und (5,2), mit einem Abstand von 2.

Der Algorithmus fährt damit fort, Cluster zu verschmelzen, bis sich alle Punkte im selben Cluster befinden. In diesem Fall enthält das endgültige Cluster alle 6 Punkte und bildet die Form eines Dreiecks.

In diesem Beispiel wird die Anzahl der Cluster durch das Abbruchkriterium bestimmt, d. h. durch die Zusammenführung aller Punkte in einem Cluster. In der Praxis können jedoch auch andere Abbruchkriterien verwendet werden, z. B. eine maximale Anzahl von Clustern oder ein Schwellenwert für den Verknüpfungsabstand.

Beachten Sie, dass es sich hier um ein einfaches Beispiel handelt und der Prozess je nach den Verknüpfungskriterien, den Abbruchkriterien und der Form der Daten unterschiedlich ausfallen kann. Außerdem wird in diesem Beispiel ein 2-dimensionaler Raum verwendet, aber der Algorithmus kann mit beliebigen Dimensionen arbeiten, und die Verknüpfungskriterien können entsprechend angepasst werden.

Codebeispiel für die Verwendung der scikit-learn-Bibliothek zur Durchführung eines agglomerativen Clustering in Python:

from sklearn.cluster import AgglomerativeClustering

from sklearn.datasets import make_blobs

 

# Einige Beispieldaten erstellen

 

# Initialisierung des agglomerativen Clustermodells

 

# Anpassung des Modells an die Daten

agg_clustering.fit(X)

 

# Vorhersage der Clusterbeschriftungen für jeden Datenpunkt

 

print(agg_clustering_labels)

 

In diesem Beispiel wird zunächst ein Beispieldatensatz mit 100 Punkten in 3 Clustern mit der Funktion make_blobs aus dem Modul sklearn.datasets erzeugt. Dann initialisieren wir ein AgglomerativeClustering-Objekt mit 3 Clustern und passen es mit der fit()-Methode an die Daten an. Schließlich werden die Cluster-Labels für jeden Datenpunkt mit dem Attribut labels_ des angepassten Modells vorhergesagt.

ARMA/ARIMA-MODELL

 

 

 

Definition

Bei einer Zeitreihe Xt ist das ARMA/ARIMA-Modell ein Instrument zum Verständnis und zur Vorhersage der zukünftigen Werte dieser Reihe. Das Modell besteht aus einem autoregressiven Teil (AR) und einem Teil mit gleitendem Durchschnitt (MA).

 

Hauptbereich

 

 

Klassische Datenwissenschaft

 

Datenart

 

 

Zeitreihen

Umgebung der Daten

 

 

Überwachtes Lernen

Paradigma des Lernens

 

 

Regression

Erklärbarkeit

Erklärbar      

ARMA (AutoRegressive Moving Average) und ARIMA (AutoRegressive Integrated Moving Average) sind Zeitreihenprognosemodelle, die zur Analyse und Vorhersage von univariaten Zeitreihendaten verwendet werden. Sie werden häufig in der Finanz- und Wirtschaftswissenschaft sowie in anderen Bereichen eingesetzt, um Trends, Muster und Schwankungen in Daten im Zeitverlauf zu analysieren und vorherzusagen.

ARMA-Modelle sind eine Kombination aus zwei Arten von Modellen:

AutoRegressive (AR) Modelle basieren auf der Idee, dass vergangene Werte einer Zeitreihe verwendet werden können, um zukünftige Werte vorherzusagen. Das Modell verwendet eine lineare Kombination vergangener Beobachtungen, um die aktuelle Beobachtung vorherzusagen.

Modelle des gleitenden Durchschnitts (MA) basieren auf der Idee, dass die aktuelle Beobachtung ein gewichteter Durchschnitt vergangener Fehler oder Residuen ist. Das Modell verwendet eine lineare Kombination vergangener Fehler, um die aktuelle Beobachtung vorherzusagen.

ARIMA-Modelle sind eine Erweiterung der ARMA-Modelle, die das Konzept der Differenzierung beinhalten, um nicht-stationäre Zeitreihendaten zu behandeln. Nicht-stationäre Daten sind durch einen Trend oder eine Saisonalität gekennzeichnet, was ihre Modellierung und Prognose erschwert.

Bei der Differenzierung werden die Daten transformiert, indem die vorherige Beobachtung von der aktuellen Beobachtung subtrahiert wird. Die differenzierten Daten werden stationär und können mit ARMA-Modellen modelliert werden.

Die Notation für ein ARIMA-Modell ist (p,d,q), wobei:

p ist die Anzahl der autoregressiven Terme (AR)

d ist die Anzahl der Differenzen, die erforderlich sind, um die Daten stationär zu machen (I für integriert)

q ist die Anzahl der Terme des gleitenden Durchschnitts (MA)

Ein ARIMA(1,1,1)-Modell würde zum Beispiel einen autoregressiven Term, einen differenzierenden Term und einen Term des gleitenden Durchschnitts enthalten.

ARIMA-Modelle eignen sich gut für die Vorhersage von Zeitreihendaten, haben aber einige Nachteile.

Beispiel:

Stellen Sie sich vor, wir haben einen Datensatz, der die monatlichen Verkäufe eines Einzelhandelsgeschäfts für die letzten 36 Monate enthält. Ziel ist es, mit Hilfe des ARIMA-Modells den Umsatz für die nächsten 12 Monate zu prognostizieren.

Es ist wichtig zu beachten, dass dies ein vereinfachtes Beispiel ist; in der Praxis ist der Prozess der Erstellung eines ARIMA-Modells komplexer und kann mehrere Iterationen erfordern, um die optimalen Werte für p, d und q und andere Parameter wie die Reihenfolge der Differenzierung und die Auswahl des geeigneten Modells zu finden. Darüber hinaus können verschiedene Techniken zur Ermittlung der optimalen Parameter und zur Validierung des Modells eingesetzt werden, z. B. das Akaike-Informationskriterium (AIC) und das Bayessche Informationskriterium (BIC).

Codebeispiel für die Implementierung eines ARIMA-Modells in Python unter Verwendung der Bibliothek statsmodels:

import statsmodels.api as sm

from statsmodels.tsa.arima_model import ARIMA

 

# Daten laden

 

# Anpassung des Modells

 

# Zusammenfassung des angepassten Modells drucken

print(arima_fit.summary())

 

# Vorhersagen machen

print(Prediction)

 

---ENDE DER LESEPROBE---