Einführung in maschinelles Lernen mit scikit-learn
In dieser Videoserie erfahren Sie, wie Sie Probleme des maschinellen Lernens mithilfe der beliebten Scikit-Learn-Bibliothek von Python lösen. Es gibt 10 Video-Tutorials mit einer Gesamtdauer von 4,5 Stunden, jeweils mit einem entsprechenden Jupyter-Notebook .
Sie können die gesamte Serie auf YouTube ansehen und alle Notizbücher mit nbviewer ansehen.
Die Reihe ist auch als kostenloser Online-Kurs verfügbar, der aktualisierte Inhalte, Quizze und ein Abschlusszertifikat umfasst.
Hinweis: Die Notebooks in diesem Repository wurden aktualisiert, um Python 3.9.1 und scikit-learn 0.23.2 zu verwenden. Die Originalnotizbücher (im Video gezeigt) verwendeten Python 2.7 und scikit-learn 0.16 und können im Archivzweig heruntergeladen werden. Wie ich den Code aktualisiert habe, können Sie in diesem Blogbeitrag nachlesen.
Inhaltsverzeichnis
Was ist maschinelles Lernen und wie funktioniert es? (Video, Notizbuch)
- Was ist maschinelles Lernen?
- Was sind die beiden Hauptkategorien des maschinellen Lernens?
- Was sind einige Beispiele für maschinelles Lernen?
- Wie „funktioniert“ maschinelles Lernen?
Einrichten von Python für maschinelles Lernen: scikit-learn und Jupyter Notebook (Video, Notizbuch)
- Was sind die Vor- und Nachteile von scikit-learn?
- Wie installiere ich scikit-learn?
- Wie verwende ich das Jupyter-Notebook?
- Was sind einige gute Ressourcen zum Erlernen von Python?
Erste Schritte mit Scikit-Learn mit dem berühmten Iris-Datensatz (Video, Notizbuch)
- Was ist der berühmte Iris-Datensatz und in welcher Beziehung steht er zum maschinellen Lernen?
- Wie laden wir den Iris-Datensatz in scikit-learn?
- Wie beschreiben wir einen Datensatz mithilfe der Terminologie des maschinellen Lernens?
- Was sind die vier wichtigsten Anforderungen von scikit-learn für die Arbeit mit Daten?
Trainieren eines Modells für maschinelles Lernen mit scikit-learn (Video, Notizbuch)
- Was ist das Klassifizierungsmodell für K-nächste Nachbarn?
- Was sind die vier Schritte für das Modelltraining und die Vorhersage in scikit-learn?
- Wie kann ich dieses Muster auf andere Modelle des maschinellen Lernens anwenden?
Vergleich von Modellen für maschinelles Lernen in scikit-learn (Video, Notizbuch)
- Wie wähle ich das Modell aus, das ich für meine überwachte Lernaufgabe verwenden möchte?
- Wie wähle ich die besten Tuning-Parameter für dieses Modell aus?
- Wie schätze ich die wahrscheinliche Leistung meines Modells anhand von Daten außerhalb der Stichprobe?
Data-Science-Pipeline: Pandas, Seaborn, Scikit-Learn (Video, Notizbuch)
- Wie verwende ich die Pandas-Bibliothek, um Daten in Python einzulesen?
- Wie verwende ich die Seaborn-Bibliothek zur Visualisierung von Daten?
- Was ist lineare Regression und wie funktioniert sie?
- Wie trainiere und interpretiere ich ein lineares Regressionsmodell in scikit-learn?
- Was sind einige Bewertungsmetriken für Regressionsprobleme?
- Wie wähle ich aus, welche Funktionen in mein Modell aufgenommen werden sollen?
Kreuzvalidierung für Parameteroptimierung, Modellauswahl und Funktionsauswahl (Video, Notebook)
- Was ist der Nachteil der Verwendung des Zug-/Test-Split-Verfahrens zur Modellbewertung?
- Wie überwindet die K-fache Kreuzvalidierung diese Einschränkung?
- Wie kann die Kreuzvalidierung zur Auswahl von Optimierungsparametern, zur Auswahl zwischen Modellen und zur Auswahl von Funktionen verwendet werden?
- Welche möglichen Verbesserungen gibt es bei der Kreuzvalidierung?
Effiziente Suche nach optimalen Tuning-Parametern (Video, Notebook)
- Wie kann die K-fache Kreuzvalidierung verwendet werden, um nach einem optimalen Abstimmungsparameter zu suchen?
- Wie kann dieser Prozess effizienter gestaltet werden?
- Wie sucht man nach mehreren Tuning-Parametern gleichzeitig?
- Was machen Sie mit diesen Tuning-Parametern, bevor Sie echte Vorhersagen treffen?
- Wie kann der Rechenaufwand dieses Prozesses reduziert werden?
Bewertung eines Klassifizierungsmodells (Video, Notizbuch)
- Was ist der Zweck der Modellbewertung und welche gängigen Bewertungsverfahren gibt es?
- Wozu dient die Klassifizierungsgenauigkeit und wo liegen ihre Grenzen?
- Wie beschreibt eine Verwirrungsmatrix die Leistung eines Klassifikators?
- Welche Metriken können aus einer Verwirrungsmatrix berechnet werden?
- Wie können Sie die Leistung des Klassifikators anpassen, indem Sie den Klassifizierungsschwellenwert ändern?
- Was ist der Zweck einer ROC-Kurve?
- Wie unterscheidet sich die Fläche unter der Kurve (AUC) von der Klassifizierungsgenauigkeit?
Erstellen eines Workflows für maschinelles Lernen (Video, Notizbuch)
- Warum sollten Sie eine Pipeline verwenden?
- Wie codieren Sie kategoriale Features mit OneHotEncoder?
- Wie wendet man OneHotEncoder mit ColumnTransformer auf ausgewählte Spalten an?
- Wie erstellt und validiert man eine Pipeline?
- Wie können Sie mithilfe einer Pipeline Vorhersagen zu neuen Daten treffen?
- Warum sollten Sie für die Vorverarbeitung scikit-learn (anstelle von pandas) verwenden?
Bonusvideo
Auf der PyCon 2016-Konferenz habe ich ein dreistündiges Tutorial gehalten, das auf dieser Videoreihe aufbaut und sich auf textbasierte Daten konzentriert. Sie können das Tutorial-Video auf YouTube ansehen.
Hier sind die Themen, die ich behandelt habe:
- Modellbau in scikit-learn (Auffrischung)
- Darstellung von Text als numerische Daten
- Einlesen eines textbasierten Datensatzes in Pandas
- Vektorisierung unseres Datensatzes
- Erstellen und Bewerten eines Modells
- Vergleich von Modellen
- Untersuchen eines Modells für weitere Erkenntnisse
- Üben Sie diesen Workflow an einem anderen Datensatz
- Optimieren des Vektorisierers (Diskussion)
Besuchen Sie dieses GitHub-Repository, um auf die Tutorial-Notebooks und viele andere empfohlene Ressourcen zuzugreifen.