Machine Learning Kochbuch

Praktische Lösungen mit Python: von der Vorverarbeitung der Daten bis zum Deep Learning

Chris Albon

Diese Publikation zitieren

Chris Albon, Machine Learning Kochbuch (2019), O'Reilly Verlag, Heidelberg, ISBN: 9783960103066

14256
Accesses
103
Quotes

Beschreibung / Abstract


Python-Programmierer finden in diesem Kochbuch nahezu 200 wertvolle und jeweils in sich abgeschlossene Anleitungen zu Aufgabenstellungen aus dem Bereich des Machine Learning, wie sie für die tägliche Arbeit typisch sind – von der Vorverarbeitung der Daten bis zum Deep Learning.


Entwickler, die mit Python und seinen Bibliotheken einschließlich Pandas und Scikit-Learn vertraut sind, werden spezifische Probleme erfolgreich bewältigen – wie etwa Daten laden, Text und numerische Daten behandeln, Modelle auswählen, Dimensionalität reduzieren und vieles mehr.


Jedes Rezept enthält Code, den Sie kopieren, zum Testen in eine kleine Beispieldatenmenge einfügen und dann anpassen können, um Ihre eigenen Anwendungen zu konstruieren. Darüber hinaus werden alle Lösungen diskutiert und wichtige Zusammenhänge hergestellt. Dieses Kochbuch unterstützt Sie dabei, den Schritt von der Theorie und den Konzepten hinein in die Praxis zu machen. Es liefert das praktische Rüstzeug, das Sie benötigen, um funktionierende Machine-Learning-Anwendungen zu entwickeln.


In diesem Kochbuch finden Sie Rezepte für:



  • Vektoren, Matrizen und Arrays

  • den Umgang mit numerischen und kategorischen Daten, Texten, Bildern sowie Datum und Uhrzeit

  • das Reduzieren der Dimensionalität durch Merkmalsextraktion oder Merkmalsauswahl

  • Modellbewertung und -auswahl

  • lineare und logistische Regression, Bäume und Wälder und k-nächste Nachbarn

  • Support Vector Machine (SVM), naive Bayes, Clustering und neuronale Netze

  • das Speichern und Laden von trainierten Modellen


Beschreibung

Chris Albon ist Data Scientist und Politikwissenschaftler mit einem Jahrzehnt Erfahrung in der Anwendung von statistischem Lernen, künstlicher Intelligenz und Software-Engineering in den Bereichen politischer, sozialer und humanitärer Bemühungen – von der Wahlbeobachtung bis zur Katastrophenhilfe. Derzeit ist Chris der Chief Data Scientist bei BRCK, einem kenianischen Start-up-Unternehmen, das ein robustes Netzwerk für Internetnutzer des Frontier-Markts entwickelt.

Inhaltsverzeichnis

  • BEGINN
  • Einleitung
  • Kapitel 1: Vektoren, Matrizen und Arrays
  • 1.0 Einführung
  • 1.1 Einen Vektor erzeugen
  • 1.2 Eine Matrix erstellen
  • 1.3 Eine dünn besetzte Matrix erzeugen
  • 1.4 Elemente auswählen
  • 1.5 Eine Matrix beschreiben
  • 1.6 Operationen auf Elemente anwenden
  • 1.7 Die Größt- und Kleinstwerte suchen
  • 1.8 Mittelwert, Varianz und Standardabweichung berechnen
  • 1.9 Die Gestalt von Arrays ändern
  • 1.10 Einen Vektor oder eine Matrix transponieren
  • 1.11 Eine Matrix verflachen
  • 1.12 Den Rang einer Matrix ermitteln
  • 1.13 Die Determinante berechnen
  • 1.14 Die Diagonale einer Matrix ermitteln
  • 1.15 Die Spur einer Matrix berechnen
  • 1.16 Eigenwerte und Eigenvektoren suchen
  • 1.17 Punktprodukte berechnen
  • 1.18 Matrizen addieren und subtrahieren
  • 1.19 Matrizen multiplizieren
  • 1.20 Eine Matrix invertieren
  • 1.21 Zufallswerte erzeugen
  • Kapitel 2: Laden von Daten
  • 2.0 Einführung
  • 2.1 Einen Beispieldatensatz laden
  • 2.2 Einen simulierten Datensatz erzeugen
  • 2.3 Eine CSV-Datei laden
  • 2.4 Eine Excel-Datei laden
  • 2.5 Eine JSON-Datei laden
  • 2.6 Eine SQL-Datenbank abfragen
  • Kapitel 3: Datenaufbereitung
  • 3.0 Einführung
  • 3.1 Einen Dataframe erstellen
  • 3.2 Die Daten beschreiben
  • 3.3 In DataFrames navigieren
  • 3.4 Zeilen abhängig von Bedingungen auswählen
  • 3.5 Werte ersetzen
  • 3.6 Spalten umbenennen
  • 3.7 Minimum, Maximum, Summe, Mittelwert und Anzahl ermitteln
  • 3.8 Eindeutige Werte ermitteln
  • 3.9 Fehlende Werte behandeln
  • 3.10 Eine Spalte löschen
  • 3.11 Eine Zeile löschen
  • 3.12 Doppelte Zeilen löschen
  • 3.13 Zeilen nach Werten gruppieren
  • 3.14 Zeilen nach Zeit gruppieren
  • 3.15 Eine Spalte in einer Schleife durchlaufen
  • 3.16 Eine Funktion auf alle Elemente in einer Spalte anwenden
  • 3.17 Eine Funktion auf Gruppen anwenden
  • 3.18 DataFrames verketten
  • 3.19 DataFrames zusammenführen
  • Kapitel 4: Numerische Daten verarbeiten
  • 4.0 Einführung
  • 4.1 Ein Merkmal neu skalieren
  • 4.2 Ein Merkmal standardisieren
  • 4.3 Beobachtungen normalisieren
  • 4.4 Polynom- und Interaktionsmerkmale erzeugen
  • 4.5 Merkmale transformieren
  • 4.6 Ausreißer erkennen
  • 4.7 Mit Ausreißern umgehen
  • 4.8 Merkmale diskretisieren
  • 4.9 Beobachtungen durch Clustern gruppieren
  • 4.10 Beobachtungen mit fehlenden Werten löschen
  • 4.11 Fehlende Werte imputieren
  • Kapitel 5: Kategorische Daten behandeln
  • 5.0 Einführung
  • 5.1 Nominale kategorische Merkmale codieren
  • 5.2 Ordinale kategorische Merkmale codieren
  • 5.3 Wörterbücher von Merkmalen codieren
  • 5.4 Fehlende Klassenwerte imputieren
  • 5.5 Umgang mit unausgewogenen Klassen
  • Kapitel 6: Text verarbeiten
  • 6.0 Einführung
  • 6.1 Text bereinigen
  • 6.2 HTML parsen und bereinigen
  • 6.3 Satzzeichen entfernen
  • 6.4 Text in Tokens zerlegen
  • 6.5 Stoppwörter entfernen
  • 6.6 Stemming
  • 6.7 Wortarten markieren
  • 6.8 Text als Bag of Words codieren
  • 6.9 Wortbedeutung gewichten
  • Kapitel 7: Datum und Uhrzeit
  • 7.0 Einführung
  • 7.1 Strings in Datumswerte konvertieren
  • 7.2 Umgang mit Zeitzonen
  • 7.3 Datum und Uhrzeit auswählen
  • 7.4 Datumsdaten in mehrere Merkmale aufgliedern
  • 7.5 Die Differenz zwischen Datumswerten bilden
  • 7.6 Wochentage codieren
  • 7.7 Ein verzögertes Merkmal erstellen
  • 7.8 Gleitende Zeitfenster verwenden
  • 7.9 Fehlende Daten in Zeitreihen behandeln
  • Kapitel 8: Bilder verarbeiten
  • 8.0 Einführung
  • 8.1 Bilder laden
  • 8.2 Bilder speichern
  • 8.3 Bilder in der Größe ändern
  • 8.4 Bilder beschneiden
  • 8.5 Bilder weichzeichnen
  • 8.6 Bilder scharfzeichnen
  • 8.7 Kontrast erhöhen
  • 8.8 Farben isolieren
  • 8.9 Binärbilder erzeugen
  • 8.10 Hintergründe entfernen
  • 8.11 Kantendetektion
  • 8.12 Eckenerkennung
  • 8.13 Merkmale für maschinelles Lernen erzeugen
  • 8.14 Die mittlere Farbe als Merkmal codieren
  • 8.15 Farbhistogramme als Merkmale codieren
  • Kapitel 9: Verringerung der Dimensionalität durch Merkmalsextraktion
  • 9.0 Einführung
  • 9.1 Merkmale mithilfe von Hauptkomponenten reduzieren
  • 9.2 Merkmale reduzieren, wenn Daten nicht linear separierbar sind
  • 9.3 Merkmale durch Maximierung der Klassenseparierbarkeit reduzieren
  • 9.4 Merkmale durch Matrixfaktorisierung reduzieren
  • 9.5 Merkmale auf schwach besetzten Daten reduzieren
  • Kapitel 10: Dimensionalität durch Merkmalsauswahl reduzieren
  • 10.0 Einführung
  • 10.1 Numerische Merkmale nach dem Schwellenwert von Varianzen auswählen
  • 10.2 Binäre Merkmale nach dem Schwellenwert von Varianzen auswählen
  • 10.3 Stark korrelierte Merkmale verarbeiten
  • 10.4 Für eine Klassifizierung irrelevante Merkmale entfernen
  • 10.5 Merkmale rekursiv entfernen
  • Kapitel 11: Modellbewertung
  • 11.0 Einführung
  • 11.1 Kreuzvalidierungsmodelle
  • 11.2 Ein Baseline-Regressionsmodell erstellen
  • 11.3 Ein Baseline-Klassifizierungsmodell erstellen
  • 11.4 Vorhersagen binärer Klassifikatoren bewerten
  • 11.5 Schwellenwerte von binären Klassifikatoren bewerten
  • 11.6 Mehrklassige Klassifikatorvorhersagen bewerten
  • 11.7 Die Performance eines Klassifikators visualisieren
  • 11.8 Regressionsmodelle bewerten
  • 11.9 Clustermodelle bewerten
  • 11.10 Eine benutzerdefinierte Bewertungsmetrik erstellen
  • 11.11 Die Wirkung der Trainingsmengengröße visualisieren
  • 11.12 Einen Textbericht der Bewertungsmetriken erstellen
  • 11.13 Die Wirkung von Hyperparameter-Werten visualisieren
  • Kapitel 12: Modellauswahl
  • 12.0 Einführung
  • 12.1 Beste Modelle mittels erschöpfender Suche auswählen
  • 12.2 Beste Modelle mittels Zufallssuche auswählen
  • 12.3 Beste Modelle von mehreren Lernalgorithmen auswählen
  • 12.4 Beste Modelle bei Vorverarbeitung auswählen
  • 12.5 Die Modellauswahl durch Parallelisierung beschleunigen
  • 12.6 Die Modellauswahl mit algorithmusspezifischen Methoden beschleunigen
  • 12.7 Performance nach der Modellauswahl bewerten
  • Kapitel 13: Lineare Regression
  • 13.0 Einführung
  • 13.1 Eine Gerade anpassen
  • 13.2 Interaktive Effekte verarbeiten
  • 13.3 Eine nichtlineare Beziehung anpassen
  • 13.4 Varianz durch Regularisierung verringern
  • 13.5 Merkmale mit Lasso-Regression reduzieren
  • Kapitel 14: Bäume und Wälder
  • 14.0 Einführung
  • 14.1 Einen Klassifikator mittels Entscheidungsbaum trainieren
  • 14.2 Einen Entscheidungsbaumregressor trainieren
  • 14.3 Ein Entscheidungsbaummodell visualisieren
  • 14.4 Einen Random-Forest-Klassifikator trainieren
  • 14.5 Einen Random-Forest-Regressor trainieren
  • 14.6 Wichtige Merkmale in Random Forests identifizieren
  • 14.7 Wichtige Merkmale in Random Forests auswählen
  • 14.8 Unausgewogene Klassen behandeln
  • 14.9 Die Baumgröße steuern
  • 14.10 Performance durch Boosting verbessern
  • 14.11 Random Forests mit Out-of-Bag-Fehlern bewerten
  • Kapitel 15: K-nächste Nachbarn
  • 15.0 Einführung
  • 15.1 Die nächsten Nachbarn einer Beobachtung suchen
  • 15.2 Einen k-nächste-Nachbarn-Klassifikator erzeugen
  • 15.3 Die Größe der besten Nachbarschaft ermitteln
  • 15.4 Einen radiusbasierten Nächste-Nachbarn- Klassifikator erstellen
  • Kapitel 16: Logistische Regression
  • 16.0 Einführung
  • 16.1 Einen binären Klassifikator trainieren
  • 16.2 Einen Multiklassenklassifikator trainieren
  • 16.3 Varianz durch Regularisierung verringern
  • 16.4 Einen Klassifikator auf sehr großen Daten trainieren
  • 16.5 Unausgewogene Klassen verarbeiten
  • Kapitel 17: Support Vector Machines
  • 17.0 Einführung
  • 17.1 Einen linearen Klassifikator trainieren
  • 17.2 Nicht linear separierbare Klassen mit Kernels behandeln
  • 17.3 Vorhergesagte Wahrscheinlichkeiten erzeugen
  • 17.4 Stützvektoren bestimmen
  • 17.5 Unausgewogene Klassen verarbeiten
  • Kapitel 18: Naive Bayes-Klassifikatoren
  • 18.0 Einführung
  • 18.1 Einen Klassifikator für kontinuierliche Merkmale trainieren
  • 18.2 Einen Klassifikator für diskrete und abzählbare Merkmale trainieren
  • 18.3 Einen naiven Bayes-Klassifikator für binäre Merkmale trainieren
  • 18.4 Vorhergesagte Wahrscheinlichkeiten kalibrieren
  • Kapitel 19: Clustering
  • 19.0 Einführung
  • 19.1 K-Means-Clustering
  • 19.2 K-Means-Clustering beschleunigen
  • 19.3 Clustering mittels Mean-Shift
  • 19.4 Clustering durch hierarchisches Zusammenführen
  • Kapitel 20: Neuronale Netze
  • 20.0 Einführung
  • 20.1 Vorverarbeitung der Daten für neuronale Netze
  • 20.2 Ein neuronales Netz entwerfen
  • 20.3 Einen binären Klassifikator trainieren
  • 20.4 Einen Klassifikator für mehrere Klassen trainieren
  • 20.5 Einen Regressor trainieren
  • 20.6 Vorhersagen treffen
  • 20.7 Den Trainingsverlauf visualisieren
  • 20.8 Überanpassung durch Regularisierung der Gewichte vermindern
  • 20.9 Überanpassung durch frühes Stoppen verringern
  • 20.10 Überanpassung durch Dropout verringern
  • 20.11 Den Fortschritt beim Training eines Modells speichern
  • 20.12 Neuronale Netze mit k-facher Kreuzvalidierung
  • 20.13 Neuronale Netze optimieren
  • 20.14 Neuronale Netze visualisieren
  • 20.15 Bilder klassifizieren
  • 20.16 Höhere Performance durch Bildverbesserung
  • 20.17 Text klassifizieren
  • Kapitel 21: Trainierte Modelle speichern und laden
  • 21.0 Einführung
  • 21.1 Ein scikit-learn-Modell speichern und laden
  • 21.2 Ein Keras-Modell speichern und laden
  • Index
  • Über den Autor
  • Kolophon

Ähnliche Titel

    Mehr von diesem Autor