Einleitung
Warum Machine Learning?
Wer bin ich? Wie ist dieser Kurs aufgebaut?
Python oder R?
Download der benötigten Materialien
Einrichtung der Python-Umgebung
Installation der benötigten Tools
Crashkurs: Unsere Jupyter-Umgebung
Wie findest du die richtige Datei in den Kursmaterialien?
Einrichtung der R-Umgebung
Installation von R und RStudio
Crashkurs: R und RStudio
Wie findest du die richtige Datei in den Kursmaterialien?
Hinweis zu den nächsten Lektionen
Kurzeinführung: Vektoren in R
Kurzeinführung: data.table in R
Grundlagen Machine-Learning
Was ist ein Modell?
Was für Problemstellungen gibt es im Machine Learning?
Lineare Regression
Intuition: Lineare Regression (Teil 1)
Intuition: Lineare Regression (Teil 2)
Intuition nachvollziehen mit Geogebra
Check: Lineare Regression
Python: Daten einlesen und Grafik zeichnen
Hinweis zu Excel
Python: Lineare Regression (Teil 1)
Python: Lineare Regression (Teil 2)
R: Lineare Regression (Teil 1)
R: Lineare Regression (Teil 2)
R: Lineare Regression (Teil 3)
R: Lineare Regression (Teil 4)
Exkurs (optional): Warum verwenden wir den quadratischen Fehler?
Praxisprojekt: Lineare Regression
Vorstellung: Praxisprojekt Lineare Regression (Gebrauchtwagenverkäufe)
Praxisprojekt: Lineare Regression
Python: Musterlösung
R: Musterlösung
Train / Test
Intuition: Train / Test
Check: Train / Test
Python: Train / Test (Teil 1)
Python: Train / Test (Teil 2)
Python: Train / Test - Aufgabe
R: Train / Test (Teil 1)
R: Train / Test (Teil 2)
R: Train / Test - Aufgabe
Lineare Regression mit mehreren Variablen
Intuition: Lineare Regression mit mehreren Variablen (Teil 1)
Intuition: Lineare Regression mit mehreren Variablen (Teil 2)
Check: Lineare Regression mit mehreren Variablen
Python: Lineare Regression mit mehreren Variablen (Teil 1)
Python: Lineare Regression mit mehreren Variablen (Teil 2)
R: Lineare Regression mit mehreren Variablen (Teil 1 + 2)
Modelle vergleichen: Bestimmtheitsmaß
Intuition: R² - Das Bestimmtheitsmaß (Teil 1)
Intuition: R² - Das Bestimmtheitsmaß (Teil 2)
Check: R² / Bestimmtheitsmaß
Python: R² ausrechnen
Python: Modelle anhand von R² vergleichen
R: R² ausrechnen
R: Modelle anhand von R² vergleichen
Praxisprojekt: Bestimmtheitsmaß
Einführung: Praxisprojekt Bestimmtheitsmaß
Hinweis: Wo findest du das Projekt?
Python, Praxisprojekt: Bestimmtheitsmaß berechnen
R, Praxisprojekt: Bestimmtheitsmaß berechnen
Konzept: Arten von Daten und wie du sie verarbeiten kannst
Intuition: Datenarten (Teil 1) - Welche Arten gibt es?
Intuition: Datenarten (Teil 2) - Metrische & Nominale Daten
Intuition: Datenarten (Teil 3) - Ordinale Daten
Python: Nominale Daten verarbeiten (Teil 1, Daten vorbereiten)
Prüfe deine Lösung!
Python: Nominale Daten verarbeiten (Teil 2)
R: Nominale Daten verarbeiten (Teil 1 + 2)
Optionaler Exkurs: Warum haben wir eine Spalte entfernen dürfen?
Polynomiale Regression
Intuition: Polynomiale Regression (Teil 1)
Intuition: Polynomiale Regression (Teil 2)
Python: Polynomiale Regression (Teil 1)
Python: Polynomiale Regression (Teil 2)
R: Polynomiale Regression (Teil 1)
R: Polynomiale Regression (Teil 2)
Praxisprojekt: Polynomiale Regression
Vorstellung: Praxisprojekt Polynomiale Regression
Python: Musterlösung: Projekt Polynomiale Regression
R: Musterlösung: Projekt Polynomiale Regression
Exkurs R: Berechnungen vektorisieren in R (Matrizen, ...)
R: Vektoren und Matrizen
R: Auf Elemente in Vektoren zugreifen
R: Benennung von Elementen
R: Matrizen
R: Matrizen benennen
R: DataTables
Exkurs Python: Berechnungen vektorisieren (Numpy)
Exkurs Python: Warum Numpy? (Teil 1)
Exkurs Python: Warum Numpy? (Teil 2)
Exkurs Python: Numpy (Arrays)
Exkurs Python: Numpy (Arrays - Anwendung)
Exkurs Python: Numpy (Matrizen)
Exkurs Python: Die np.where()-Funktion
Stabilere Testergebnisse mit der K-Fold Cross-Validation
Intuition: K-Fold Cross-Validation
K-Fold Cross-Validation
Python: K-Fold Cross-Validation (Teil 1)
Python: K-Fold Cross-Validation (Teil 2)
Python: K-Fold Cross-Validation (Teil 3)
R: K-Fold Cross-Validation (Teil 1-3)
Intuition: Repeated K-Fold Cross-Validation
Repeated K-Fold Cross-Validation
Python: Repeated K-Fold Cross-Validation
R: Repeated K-Fold Cross-Validation
Praxisprojekt: K-Fold Cross-Validation
Aufgabenstellung: K-Fold Cross-Validation
Python: Musterlösung K-Fold Cross-Validation
R: Musterlösung K-Fold Cross-Validation
Statistische Grundlagen
Warum brauchen wir statistische Grundlagen?
Intuition: Mittelwert vs. Median
Mittelwert und Median
Python: Mittelwert & Median berechnen
R: Mittelwert & Median berechnen
Intuition: Stichprobe
Intuition: Varianz und Standardabweichung
Varianz und Standardabweichung
Expertenwissen (optional): Korrigierte Stichprobenvarianz
Python: Histogramme zeichnen
R: Histogramme zeichnen
Projekt: Statistische Grundlagen
Einführung: Praxisprojekt "Statistische Grundlagen"
Python Exkurs: Daten öffnen und filtern
R Exkurs: Daten öffnen und filtern
Python: Musterlösung Projekt "Statistische Grundlagen"
R: Musterlösung Projekt "Statistische Grundlagen"
Klassifizierung
Intuition: Was ist Klassifizierung?
Klassifizierung
Vorstellung: Unsere Beispieldaten
Logistische Regression
Intuition: Logistische Regression
Logistische Regression
Intuition: Logistische Regression (Fehlerterm)
Python: Daten anzeigen
Python: Daten skalieren
Python: Daten vorhersagen
Python: Entscheidungsgrenze visualisieren
Python: Entscheidungsgrenze visualisieren (fließender Übergang)
Python (optional): Wie wird Entscheidungsgrenze visualisiert? (Teil 1)
Python (optional): Wie wird Entscheidungsgrenze visualisiert? (Teil 2)
Python: Dein Klassifizierungs-Template
R: Daten anzeigen
R: Daten skalieren
R: Entscheidungsgrenze visualisieren
R: Entscheidungsgrenze visualisieren (fließender Übergang)
R (optional): Wie wird Entscheidungsgrenze visualisiert?
R: Genauigkeit ausrechnen
R: Dein Klassifizierungs-Template
Praxisprojekt: Brustkrebs vorhersagen
Python: Aufgabe Projekt Brustkrebs
Python: Musterlösung Projekt Brustkrebs
R: Aufgabe Projekt Brustkrebs
R: Musterlösung Projekt Brustkrebs
Klassifizierung mit mehreren Klassen
Intuition: One-Vs-All, One-Vs-One
Onv-vs-all, One-vs-one
Python: One-Vs-All, One-Vs-One
R: One-Vs-All
Intuition: Multinomiale Logistische Regression
Python: Multinomiale Logistische Regression
R: Multinomiale Logistische Regression
K-Nächste-Nachbar (KNN)
Intuition: KNN
KNN
Python: KNN
Python: KNN (Auswirkungen von k)
R: KNN
R: KNN (Auswirkungen von k)
R: KNN (Tipp: Die predict-Funktion)
Praxisprojekt: Iris-Blütenblätter klassifizieren
Projekt: Iris (Einführung)
Python: Aufgabe Projekt "Iris"
Python: Musterlösung Projekt "Iris"
R: Aufgabe Projekt "Iris"
R: Musterlösung Projekt "Iris"
Entscheidungsbäume
Intuition: Entropie
Entropie
Intuition: Entscheidungsbäume
Entscheidungsbäume
Weiterführende Informationen: Entropie
Python: Entscheidungsbäume
Python: Entscheidungsbäume visualisieren (Teil 1)
Python: Entscheidungsbäume visualisieren (Teil 2)
Python: Entscheidungsbäume beschränken
Python: Entscheidungsbäume exportieren
R: Entscheidungsbäume
R: Entscheidungsbäume visualisieren (Teil 1)
R: Entscheidungsbäume visualisieren (Teil 2)
R: Entscheidungsbäume (die predict()-Funktion)
R: Entscheidungsbäume beschränken
R: Entscheidungsbäume exportieren
Praxisprojekt: Pilze klassifizieren
Aufgabe: Projekt Pilze klassifizieren
Python: Lösungshinweise
Python: Musterlösung
R: Lösungshinweise
R: Musterlösung
Random Forests
Intuition: Random Forest
Random Forest
Python: Random Forest
R: Random Forest
Aufgabe: RandomForest
Das Bias/Varianz-Dilemma
Intuition: Trainings- vs. Testerror
Intuition: Bias vs. Varianz
Bias & Varianz
Intuition: Vergleich Modelle mit hohem Bias bzw. hoher Varianz
Intuition: Validation-Curve
Python: Validation-Curve
Python: Aufgabe Validation-Curve
Python: Musterlösung Validation-Curve
R: Validation-Curve
R: Validation-Curve (die sapply-Funktion)
R: Aufgabe Validation-Curve
R: Musterlösung Validation-Curve
Intuition: Wann benötigst du mehr Daten?
Intuition: Lernkurve
Lernkurve
Python: Lernkurve zeichnen
R: Lernkurve zeichnen (Teil 1)
R: Lernkurve zeichnen (Teil 2)
Naiver Bayes
Einführung: Naiver Bayes
Intuition: Naiver Bayes (Wahrscheinlichkeiten)
Intuition: Naiver Bayes (Bedingte Wahrscheinlichkeiten)
Intuition: Naiver Bayes (Satz von Bayes)
Intuition: Naiver Bayes (Exkurs Normalverteilung)
Intuition: Naiver Bayes (Teil 1)
Intuition: Naiver Bayes (Teil 2)
Python: Naiver Bayes
R: Naiver Bayes
Praxisprojekt: Spam-Filter entwickeln
Projektvorstellung: Spam-Filter
Intuition: Text-Daten einlesen
Intuition: Multinomialer Naiver Bayes
Python: Spamfilter entwickeln (Teil 1)
Python: Spamfilter entwickeln (Teil 2)
R: Spamfilter entwickeln (Teil 1)
R: Spamfilter entwickeln (Teil 2)
R: Spamfilter entwickeln (Teil 3)
R + Python: Unterschiede zwischen den Implementierungen
SVM (ohne Kernel)
Intuition: SVM
Support Vector Machines
Python: SVM
R: SVM
Intuition: Was sind Support Vectors?
Intuition: Der Parameter C
Der Parameter C
Python: Der Parameter C
R: Der Parameter C
SVM (mit Kernel)
Intuition: SVM (poly Kernel)
Kernel-Trick
Python: SVM (poly Kernel)
R: SVM (poly Kernel)
Intuition: SVM (rbf Kernel)
Gamma vs. Sigma?
Python: SVM (rbf Kernel)
R: SVM (rbf Kernel)
Intuition: Die Parameter C und gamma bei der SVM mit rbf Kernel
Der RBF-Kernel
Praxisprojekt: Ziffernerkennung programmieren
Einführung: Praxisprojekt MNIST Ziffernerkennung
Einführung: Vorstellung der MNIST-Daten
Python: MNIST-Daten öffnen (Teil 1)
Python: MNIST-Daten öffnen (Teil 2)
Python: MNIST-Daten öffnen (Teil 3)
Python: MNIST-Daten öffnen (Performance Hinweise)
R: MNIST-Daten öffnen (Teil 1)
R: MNIST-Daten öffnen (Teil 2)
MNIST-Daten können nicht gefunden werden
Fordere andere Teilnehmer heraus!
Frage: Passt das so? Ausführlichere Lösung gewünscht?
Wie optimierst du die Genauigkeit von Modellen?
Intuition: Warum reicht die Genauigkeit nicht immer aus?
Intuition: Fehlertypen
Fehlertypen
Confusion Matrix
Python: Confusion Matrix berechnen
R: Confusion Matrix berechnen
Intuition: ROC-Curve, AUC-Score
Python: ROC-Curve, AUC-Score
R: ROC-Curve, AUC-Score
R: Exkurs Objektorientierung
Hyperparameter
Intuition: Hyperparameter
Python: Hyperparameter optimieren (Pipeline erstellen)
Python: Hyperparameter optimieren (GridSearchCV)
R: Hyperparameter optimieren (Teil 1)
R: Hyperparameter optimieren (Teil 2)
R: Hyperparameter optimieren (Teil 3)
R: Andere Modelle trainieren (mit caret)
Intuition: Train/Validation/Test
Train / Validation / Test
Python: Train/Validation/Test
R: Train/Validation/Test
Python: Aufgabe Hyperparameter optimieren (SVM)
Python: Musterlösung Hyperparameter optimieren (SVM)
R: Aufgabe Hyperparameter optimieren (SVM)
R: Musterlösung Hyperparameter optimieren (SVM)
Dimensionsreduktion mit der PCA
Intuition: PCA
PCA
Python: PCA zum Visualisieren von Daten (Teil 1)
Python: PCA zum Visualisieren von Daten (Teil 2)
Python: PCA zum Visualisieren von Daten (Teil 3)
Python: PCA zum Visualisieren von Daten (Teil 4)
Python: PCA zum Komprimieren von Daten (Teil 1)
Python: PCA zum Komprimieren von Daten (Teil 2)
Python: Freie Aufgabe - Weiter mit den Daten herumspielen
R: PCA zum Visualisieren von Daten (Teil 1)
R: PCA zum Visualisieren von Daten (Teil 2)
R: PCA zum Visualisieren von Daten (Teil 3)
R: PCA zum Komprimieren von Daten (Teil 1)
R: PCA zum Komprimieren von Daten (Teil 2)
R: Freie Aufgabe - Weiter mit den Daten herumspielen
Intuition: PCA für Komprimierung von Daten
Statistische Grundlagen (Teil 2)
Intuition: Kovarianz
Intuition: Korrelation
Kovarianz und Korrelation
Python: Kovarianz & Korrelation ausrechnen
Python: Kovarianz & Korrelation ausrechnen - Tipps
R: Kovarianz & Korrelation ausrechnen
R: Kovarianz & Korrelation ausrechnen (Tipps)
Daten einlesen
Python: Daten einlesen und filtern
Python: Daten ersetzen
Python: Daten sortieren und Informationen anzeigen
R: Spalten ändern mit data.table (Teil 1)
R: Spalten ändern mit data.table (Teil 2)
R: Daten sortieren
R: Werte abfragen
Komplettes Projekt: Wert von Gebrauchtwagen schätzen
Intuition: So gehst du an echte Daten heran
Python: Praxisprojekt Autos (Teil 1)
Python: Praxisprojekt Autos (Teil 2)
Python: Praxisprojekt Autos (Teil 3)
Python: Praxisprojekt Autos (Teil 4)
Python: Praxisprojekt Autos (Teil 5)
Python: Praxisprojekt Autos (Teil 6)
Python: Praxisprojekt Autos (Teil 7)
Python: Praxisprojekt Autos (Teil 8)
Hinweis zu den nächsten Lektionen
R: Praxisprojekt Autos (Teil 1)
R: Praxisprojekt Autos (Teil 2)
R: Praxisprojekt Autos (Teil 3)
R: Praxisprojekt Autos (Teil 4)
R: Praxisprojekt Autos (Teil 5)
R: Praxisprojekt Autos (Teil 6)
R: Praxisprojekt Autos (Teil 7)
R: Praxisprojekt Autos (Teil 8)
Clustering: KMeans
Intuition: KMeans
K-Means Clustering
Python: KMeans (Teil 1)
Python: KMeans (Teil 2)
R: KMeans (Teil 1)
R: KMeans (Teil 2)
R: KMeans (Teil 3, weitere Parameter)
Intuition: Die Elbow-Method
Die Elbow-Method
Python: Die Elbow-Method
R: Die Elbow-Method
Praxisbeispiel: Bilder mit KMeans komprimieren
Intuition: Bilder mit KMeans komprimieren (Teil 1)
Intuition: Bilder mit KMeans komprimieren (Teil 2)
Python: Ekurs Skimage
Python: Farben mit KMeans komprimieren
Python: Farben mit KMeans komprimieren (Datei abspeichern)
R: Exkurs Imager (Teil 1)
R: Exkurs Imager (Teil 2)
R: Farben mit KMeans komprimieren
R: Farben mit KMeans komprimieren (Datei abspeichern)
Natural Language Processing
Intuition: Was ist Natural Language Processing?
Reguläre Ausdrücke
Intuition: Reguläre Ausdrücke
Python: Reguläre Ausdrücke (Teil 1)
Python: Reguläre Ausdrücke (Teil 2)
Python: Reguläre Ausdrücke - E-Mails extrahieren
Python: Aufgabe Reguläre Ausdrücke
Python: Musterlösung Reguläre Ausdrücke
R: Reguläre Ausdrücke (Teil 1)
R: Reguläre Ausdrücke (Teil 2)
R: Reguläre Ausdrücke - E-Mails extrahieren (Teil 1)
R: Reguläre Ausdrücke - E-Mails extrahieren (Teil 2)
R: Aufgabe Reguläre Ausdrücke
R: Musterlösung Reguläre Ausdrücke
Python: Natural Language Processing mit NLTK
Python: Was erwartet dich in diesem Abschntit?
Python: Was tun bei: NLTK - LookupError
Python: Einführung NLTK
Python: Part-of-Speech-Tagging
Python: Part-of-Speech-Tagging - Wie funktioniert es?
Python: Wortendungen entfernen (Stemming)
Python: Wortendungen entfernen (Lemmatizer)
Woher kommen die Daten?
Python: Praxisprojekt: Bedeutung von Adjektiven erlernen (Teil 1)
Python: Praxisprojekt: Bedeutung von Adjektiven erlernen (Teil 2)
Python: Praxisprojekt: Bedeutung von Adjektiven erlernen (Teil 3)
R: Natural Language Processing
R: Natural Language Processing - Einführung
R: Installation der benötigten Tools (Windows)
R: Installation der benötigten Tools (Mac / Linux)
R: Text zerlegen (Tokenizer)
R: Wortendungen entfernen (Stemming)
R: Part-of-Speech-Tagging
Woher kommen die Daten?
R: Praxisprojekt: Bedeutung von Adjektiven lernen (Teil 1)
R: Praxisprojekt: Bedeutung von Adjektiven lernen (Teil 2)
R: Praxisprojekt: Bedeutung von Adjektiven lernen (Teil 3)
Bonus: Neuronale Netze in Python (Einführung)
Wie ist dieser Bonus aufgebaut?
WICHTIG: Keras und Python 3.7!
Crashkurs: Ein lineares Neuron
Aktivierungsfunktion (Intuition)
Aktivierungsfunktion (in Python)
Optionaler Exkurs: Warum lassen sich Neuronen nicht "hintereinanderschalten"?
Wie ist ein Neuronales Netz aufgebaut?
Wie werden die Gewichte aktualisiert? - Teil 1
Wie werden die Gewichte aktualisiert? - Teil 2
Das Gradientenabstiegsverfahren
Stochastic Gradient Descent
Backpropagation (Teil 1)
Backpropagation (Teil 2)
Bonus: Neuronale Netze in Python (Regression)
Vorstellung Keras und Tensorflow
Installation von Keras und Tensorflow
Vorstellung des Projekts
Vorstellung der Daten
Unser erstes Neuronales Netz
Wir machen erste Vorhersagen
Genauigkeit berechnen (manuell)
Genauigkeit berechnen (mit Keras)
Train / Test mit Keras
Bonus: Neuronale Netze in Python (Mehrere Ausgänge)
Ein Neuronales Netz mit mehreren Ausgängen
Wie beurteilen wir die Genauigkeit vom Netz?
Confusion-Matrix generieren lassen
Vorstellung: Softmax
Neuronales Netz mit Softmax
Aktivierungsfunktionen
Neuronales Netz mit verschiedenen Aktivierungsfunktionen
Vorstellung der verschiedenen Optimizer
Neuronales Netz mit verschiedenen Optimizern trainieren
Wie komplex darf überhaupt unser Netz sein?
Bonus: Neuronale Netze in Python (CNN)
Motivation: CNN
Exkurs: Wie ist ein Bild aufgebaut?
Wie ist ein CNN-Layer aufgebaut?
CNN mit Keras (inkl. Aufgabe)
CNN - Lösungstipps
CNN mit Keras (Musterlösung)
Gewichte visualisieren
Aktivierungen visualisieren
Intuition: Max-Pooling-Layer
Max-Pooling mit Keras
Visualisierung eines neuronalen Netzes
Dropout
Dropout mit Keras
Weitere Hinweise