O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Machine Learning mit Python - Das Praxis-Handbuch für Data Sience, Predictive Analytics und Deep Learning

Book Description

  • Datenanalyse mit ausgereiften statistischen Modellen des Machine Learnings
  • Anwendung der wichtigsten Algorithmen und Python-Bibliotheken wie NumPy, SciPy, scikit-learn, matplotlib, pandas, Theano und Keras
  • Verständlicher und eleganter Python-Code zur Optimierung Ihrer Algorithmen

Machine Learning und Predictive Analytics verändern die Arbeitsweise von Unternehmen grundlegend. Die Fähigkeit, in komplexen Daten Trends und Muster zu erkennen, ist heutzutage für den langfristigen geschäftlichen Erfolg ausschlaggebend und entwickelt sich zu einer der entscheidenden Wachstumsstrategien.

Sebastian Raschka gibt Ihnen einen detaillierten Einblick in die Techniken der Predictive Analytics. Er erläutert die grundlegenden theoretischen Prinzipien des Machine Learnings und wendet sie praktisch an.

Dabei konzentriert er sich insbesondere auf das Stellen und Beantworten der richtigen Fragen.

Python zählt zu den führenden Programmiersprachen im Bereich Data Science und ist besonders gut dazu geeignet, grundlegende Erkenntnisse aus Ihren Daten zu gewinnen sowie ausgefeilte Algorithmen und statistische Modelle auszuarbeiten, die neue Einsichten liefern und wichtige Fragen beantworten.

Der Autor erläutert in diesem Buch ein breites Spektrum leistungsfähiger Python-Bibliotheken wie scikit-learn, Theano oder Keras. Sie lernen Schritt für Schritt die Grundlagen von Python für maschinelle Lernverfahren kennen und setzen dabei eine Vielfalt von statistischen Modellen ein.

Aus dem Inhalt:
  • Regressionsanalysen zum Prognostizieren von Ergebnissen
  • Clusteranalysen zum Auffinden verborgener Muster und Strukturen in Ihren Daten
  • Optimale Organisation Ihrer Daten durch effektive Verfahren zur Vorverarbeitung
  • Datenkomprimierung durch Dimensionsreduktion
  • Neuronale Netze erzeugen mit Keras und Theano
  • Kombination verschiedener Modelle für das Ensemble Learning
  • Einbettung eines Machine-Learning-Modells in eine Webanwendung
  • Stimmungsanalyse in Social Networks

Table of Contents

  1. Impressum
  2. Vorwort
  3. Über den Autor
  4. Danksagungen
  5. Über die Korrektoren
  6. Einleitung
  7. Kapitel 1: Wie Computer aus Daten lernen können
    1. 1.1 Intelligente Maschinen, die Daten in Wissen verwandeln
    2. 1.2 Die drei Arten des Machine Learnings
      1. 1.2.1 Mit überwachtem Lernen Vorhersagen treffen
      2. 1.2.2 Interaktive Aufgaben durch verstärkendes Lernen lösen
      3. 1.2.3 Durch unüberwachtes Lernen verborgene Strukturen erkennen
    3. 1.3 Grundlegende Terminologie und Notation
    4. 1.4 Entwicklung eines Systems für das Machine Learning
      1. 1.4.1 Vorverarbeitung: Daten in Form bringen
      2. 1.4.2 Trainieren und Auswählen eines Vorhersagemodells
      3. 1.4.3 Bewertung von Modellen und Vorhersage anhand unbekannter Dateninstanzen
    5. 1.5 Machine Learning mit Python
      1. 1.5.1 Python-Pakete installieren
    6. 1.6 Zusammenfassung
  8. Kapitel 2: Lernalgorithmen für die Klassifizierung trainieren
    1. 2.1 Künstliche Neuronen: Ein kurzer Blick auf die Anfänge des Machine Learnings
    2. 2.2 Implementierung eines Perzeptron-Lernalgorithmus in Python
      1. 2.2.1 Trainieren eines Perzeptron-Modells auf die Iris-Datensammlung
    3. 2.3 Adaptive lineare Neuronen und die Konvergenz des Lernens
      1. 2.3.1 Straffunktionen mit dem Gradientenabstiegsverfahren minimieren
      2. 2.3.2 Implementierung eines adaptiven linearen Neurons in Python
      3. 2.3.3 Large-scale Machine Learning und stochastisches Gradientenabstiegsverfahren
    4. 2.4 Zusammenfassung
  9. Kapitel 3: Machine-Learning-Klassifizierer mit scikit-learn verwenden
    1. 3.1 Auswahl eines Klassifizierungsalgorithmus
    2. 3.2 Erste Schritte mit scikit-learn
      1. 3.2.1 Trainieren eines Perzeptrons mit scikit-learn
    3. 3.3 Klassenwahrscheinlichkeiten durch logistische Regression modellieren
      1. 3.3.1 Logistische Regression und bedingte Wahrscheinlichkeiten
      2. 3.3.2 Gewichtungen der logistischen Straffunktion ermitteln
      3. 3.3.3 Trainieren eines logistischen Regressionsmodells mit scikit-learn
      4. 3.3.4 Überanpassung durch Regularisierung verhindern
    4. 3.4 Maximum-Margin-Klassifizierung mit Support Vector Machines
      1. 3.4.1 Maximierung des Randbereichs
      2. 3.4.2 Handhabung des nicht linear trennbaren Falls mit Schlupfvariablen
      3. 3.4.3 Alternative Implementierungen in scikit-learn
    5. 3.5 Nichtlineare Aufgaben mit einer Kernel-SVM lösen
      1. 3.5.1 Mit dem Kernel-Trick Hyperebenen in höherdimensionalen Räumen finden
    6. 3.6 Lernen mit Entscheidungsbäumen
      1. 3.6.1 Maximierung des Informationsgewinns: Daten ausreizen
      2. 3.6.2 Konstruktion eines Entscheidungsbaums
      3. 3.6.3 Schwache Klassifizierer mit Random Forests zu besseren kombinieren
    7. 3.7 k-Nearest-Neighbor: Ein Lazy-Learning-Algorithmus
    8. 3.8 Zusammenfassung
  10. Kapitel 4: Gut geeignete Trainingsdatenmengen: Datenvorverarbeitung
    1. 4.1 Umgang mit fehlenden Daten
      1. 4.1.1 Exemplare oder Merkmale mit fehlenden Werten entfernen
      2. 4.1.2 Fehlende Werte ergänzen
      3. 4.1.3 Die Schätzer-API von scikit-learn
    2. 4.2 Handhabung kategorialer Daten
      1. 4.2.1 Zuweisung von ordinalen Merkmalen
      2. 4.2.2 Kodierung der Klassenbezeichnungen
      3. 4.2.3 One-hot-Kodierung der nominalen Merkmale
    3. 4.3 Aufteilung einer Datensammlung in Trainings- und Testdaten
    4. 4.4 Anpassung der Merkmale
    5. 4.5 Auswahl aussagekräftiger Merkmale
      1. 4.5.1 Dünnbesetzte Lösungen durch L1-Regularisierung
      2. 4.5.2 Algorithmen zur sequenziellen Auswahl von Merkmalen
    6. 4.6 Beurteilung der Bedeutung von Merkmalen mit Random Forests
    7. 4.7 Zusammenfassung
  11. Kapitel 5: Datenkomprimierung durch Dimensionsreduktion
    1. 5.1 Unüberwachte Dimensionsreduktion durch Hauptkomponentenanalyse
      1. 5.1.1 Totale Varianz und Varianzaufklärung
      2. 5.1.2 Merkmalstransformation
      3. 5.1.3 Hauptkomponentenanalyse mit scikit-learn
    2. 5.2 Überwachte Datenkomprimierung durch lineare Diskriminanzanalyse
      1. 5.2.1 Berechnung der Streumatrizen
      2. 5.2.2 Auswahl linearer Diskriminanten für den neuen Merkmalsunterraum
      3. 5.2.3 Projektion in den neuen Merkmalsraum
      4. 5.2.4 LDA mit scikit-learn
    3. 5.3 Kernel-Hauptkomponentenanalyse für nichtlineare Zuordnungen verwenden
      1. 5.3.1 Kernel-Funktionen und der Kernel-Trick
      2. 5.3.2 Implementierung einer Kernel-Hauptkomponentenanalyse in Python
      3. 5.3.3 Projizieren neuer Datenpunkte
      4. 5.3.4 Kernel-Hauptkomponentenanalyse mit scikit-learn
    4. 5.4 Zusammenfassung
  12. Kapitel 6: Bewährte Verfahren zur Modellbewertung und Hyperparameter-Abstimmung
    1. 6.1 Arbeitsabläufe mit Pipelines optimieren
      1. 6.1.1 Die Wisconsin-Brustkrebs-Datensammlung
      2. 6.1.2 Transformer und Schätzer in einer Pipeline kombinieren
    2. 6.2 Beurteilung des Modells durch k-fache Kreuzvalidierung
      1. 6.2.1 2-fache Kreuzvalidierung
      2. 6.2.2 k-fache Kreuzvalidierung
    3. 6.3 Algorithmen mit Lern- und Validierungskurven debuggen
      1. 6.3.1 Probleme mit Bias und Varianz anhand von Lernkurven erkennen
      2. 6.3.2 Überanpassung und Unteranpassung anhand von Validierungskurven erkennen
    4. 6.4 Feinabstimmung eines Lernmodells durch Rastersuche
      1. 6.4.1 Hyperparameterabstimmung durch Rastersuche
      2. 6.4.2 Algorithmenauswahl durch verschachtelte Kreuzvalidierung
    5. 6.5 Verschiedene Kriterien zur Leistungsbewertung
      1. 6.5.1 Interpretation einer Wahrheitsmatrix
      2. 6.5.2 Optimierung der Genauigkeit und der Trefferquote eines Klassifizierungsmodells
      3. 6.5.3 Receiver-Operating-Characteristic-Diagramme
      4. 6.5.4 Bewertungskriterien für Mehrfachklassifizierungen
    6. 6.6 Zusammenfassung
  13. Kapitel 7: Kombination verschiedener Modelle für das Ensemble Learning
    1. 7.1 Ensemble Learning​
    2. 7.2 Implementierung eines einfachen Mehrheitsentscheidungs-Klassifizierers
      1. 7.2.1 Kombination mehrerer Klassifizierungsalgorithmen per Mehrheitsentscheidung
    3. 7.3 Bewertung und Abstimmung des Klassifizierer-Ensembles
    4. 7.4 Bagging: Klassifizierer-Ensembles anhand von Bootstrap-Stichproben entwickeln
    5. 7.5 Schwache Klassifizierer durch adaptives Boosting verbessern
    6. 7.6 Zusammenfassung
  14. Kapitel 8: Machine Learning zur Analyse von Stimmungslagen nutzen
    1. 8.1 Die IMDb-Filmdatenbank
    2. 8.2 Das Bag-of-words-Modell
      1. 8.2.1 Wörter in Merkmalsvektoren umwandeln
      2. 8.2.2 Beurteilung der Wortrelevanz durch das Tf-idf-Maß
      3. 8.2.3 Textdaten bereinigen
      4. 8.2.4 Dokumente in Token zerlegen
    3. 8.3 Ein logistisches Regressionsmodell für die Dokumentklassifizierung trainieren
    4. 8.4 Verarbeitung großer Datenmengen: Online-Algorithmen und Out-of-Core Learning
    5. 8.5 Zusammenfassung
  15. Kapitel 9: Einbettung eines Machine-Learning-Modells in eine Webanwendung
    1. 9.1 Serialisierung angepasster Schätzer mit scikit-learn
    2. 9.2 Einrichtung einer SQLite-Datenbank zum Speichern von Daten
    3. 9.3 Entwicklung einer Webanwendung mit Flask
      1. 9.3.1 Die erste Webanwendung mit Flask
      2. 9.3.2 Formularvalidierung und -ausgabe
    4. 9.4 Der Filmbewertungsklassifizierer als Webanwendung
    5. 9.5 Einrichtung der Webanwendung auf einem öffentlich zugänglichen Webserver
      1. 9.5.1 Updaten des Filmbewertungsklassifizierers
    6. 9.6 Zusammenfassung
  16. Kapitel 10: Vorhersage stetiger Zielvariablen durch Regressionsanalyse
    1. 10.1 Ein einfaches lineares Regressionsmodell
    2. 10.2 Die Lebensbedingungen-Datensammlung
      1. 10.2.1 Visualisierung der wichtigen Eigenschaften einer Datenmenge
    3. 10.3 Implementierung eines linearen Regressionsmodells mit der Methode der kleinsten Quadrate
      1. 10.3.1 Berechnung der Regressionsparameter mit dem Gradientenabstiegsverfahren
      2. 10.3.2 Abschätzung der Koeffizienten eines Regressionsmodells mit scikit-learn
    4. 10.4 Anpassung eines robusten Regressionsmodells mit dem RANSAC-Algorithmus
    5. 10.5 Bewertung der Leistung linearer Regressionsmodelle
    6. 10.6 Regularisierungsverfahren für die Regression einsetzen
    7. 10.7 Polynomiale Regression: Umwandeln einer linearen Regression in eine Kurve
      1. 10.7.1 Modellierung nichtlinearer Zusammenhänge in der Lebensbedingungen-Datensammlung
      2. 10.7.2 Handhabung nichtlinearer Beziehungen mit Random Forests
    8. 10.8 Zusammenfassung
  17. Kapitel 11: Verwendung nicht gekennzeichneter Daten: Clusteranalyse
    1. 11.1 Gruppierung von Objekten nach Ähnlichkeit mit dem k-Means-Algorithmus
      1. 11.1.1 Der k-Means++-Algorithmus
      2. 11.1.2 »Harte« und »weiche« Clustering-Algorithmen
      3. 11.1.3 Die optimale Anzahl der Cluster mit dem Ellenbogenkriterium ermitteln
      4. 11.1.4 Quantifizierung der Clustering-Güte mit Silhouettendiagrammen
    2. 11.2 Cluster als hierarchischen Baum organisieren
      1. 11.2.1 Hierarchisches Clustering einer Distanzmatrix
      2. 11.2.2 Dendrogramme und Heatmaps verknüpfen
      3. 11.2.3 Agglomeratives Clustering mit scikit-learn
    3. 11.3 Bereiche hoher Dichte mit DBSCAN ermitteln
    4. 11.4 Zusammenfassung
  18. Kapitel 12: Künstliche neuronale Netze für die Bilderkennung trainieren
    1. 12.1 Modellierung komplexer Funktionen mit künstlichen neuronalen Netzen
      1. 12.1.1 Einschichtige neuronale Netze
      2. 12.1.2 Mehrschichtige neuronale Netzarchitektur
      3. 12.1.3 Aktivierung eines neuronalen Netzes durch Vorwärtspropagation
    2. 12.2 Klassifizierung handgeschriebener Ziffern
      1. 12.2.1 Die MNIST-Datensammlung
      2. 12.2.2 Implementierung eines mehrschichtigen Perzeptrons
    3. 12.3 Trainieren eines künstlichen neuronalen Netzes
      1. 12.3.1 Berechnung der logistischen Straffunktion
      2. 12.3.2 Trainieren neuronaler Netze durch Backpropagation
    4. 12.4 Ein Gespür für die Backpropagation entwickeln
    5. 12.5 Debugging neuronaler Netze durch Gradientenprüfung
    6. 12.6 Konvergenz in neuronalen Netzen
    7. 12.7 Weitere neuronale Netzarchitekturen
      1. 12.7.1 Konvolutionale neuronale Netze
      2. 12.7.2 Rekurrente neuronale Netze
    8. 12.8 Abschließende Bemerkungen zur Implementierung neuronaler Netze
    9. 12.9 Zusammenfassung
  19. Kapitel 13: Parallelisierung des Trainings neuronaler Netze mit Theano
    1. 13.1 Erstellen, Kompilieren und Ausführen von Ausdrücken mit Theano
      1. 13.1.1 Was genau ist Theano?
      2. 13.1.2 Erste Schritte mit Theano
      3. 13.1.3 Theano konfigurieren
      4. 13.1.4 Mit Array-Strukturen arbeiten
      5. 13.1.5 Zusammengefasst: Lineare Regression als Beispiel
    2. 13.2 Auswahl der Aktivierungsfunktionen neuronaler Feedforward-Netze
      1. 13.2.1 Die logistische Funktion kurz zusammengefasst
      2. 13.2.2 Wahrscheinlichkeiten bei der Mehrfachklassifizierung mit der softmax-Funktion abschätzen
      3. 13.2.3 Verbreiterung des Ausgabespektrums mittels Tangens hyperbolicus
    3. 13.3 Effizientes Training neuronaler Netze mit Keras
    4. 13.4 Zusammenfassung