rasbt / python-machine-learning-book-2nd-edition

The "Python Machine Learning (2nd edition)" book code repository and info resource
MIT License
7.12k stars 2.82k forks source link
data-science deep-learning machine-learning python scikit-learn tensorflow

Python Machine Learning (2nd Ed.) Code Repository

Build Status Python 3.6 License

Please note that a new edition (3rd edition) is now available as of December 2019. The code repository link for the 3rd edition is https://github.com/rasbt/python-machine-learning-book-3rd-edition.

Python Machine Learning, 2nd Ed.

published September 20th, 2017

Paperback: 622 pages
Publisher: Packt Publishing
Language: English

ISBN-10: 1787125939
ISBN-13: 978-1787125933
Kindle ASIN: B0742K7HYF

Links

Table of Contents and Code Notebooks

Helpful installation and setup instructions can be found in the README.md file of Chapter 1

To access the code materials for a given chapter, simply click on the open dir links next to the chapter headlines to navigate to the chapter subdirectories located in the code/ subdirectory. You can also click on the ipynb links below to open and view the Jupyter notebook of each chapter directly on GitHub.

In addition, the code/ subdirectories also contain .py script files, which were created from the Jupyter Notebooks. However, I highly recommend working with the Jupyter notebook if possible in your computing environment. Not only do the Jupyter notebooks contain the images and section headings for easier navigation, but they also allow for a stepwise execution of individual code snippets, which -- in my opinion -- provide a better learning experience.

Please note that these are just the code examples accompanying the book, which I uploaded for your convenience; be aware that these notebooks may not be useful without the formulae and descriptive text.

  1. Machine Learning - Giving Computers the Ability to Learn from Data [open dir] [ipynb]
  2. Training Machine Learning Algorithms for Classification [open dir] [ipynb]
  3. A Tour of Machine Learning Classifiers Using Scikit-Learn [open dir] [ipynb]
  4. Building Good Training Sets – Data Pre-Processing [open dir] [ipynb]
  5. Compressing Data via Dimensionality Reduction [open dir] [ipynb]
  6. Learning Best Practices for Model Evaluation and Hyperparameter Optimization [open dir] [ipynb]
  7. Combining Different Models for Ensemble Learning [open dir] [ipynb]
  8. Applying Machine Learning to Sentiment Analysis [open dir] [ipynb]
  9. Embedding a Machine Learning Model into a Web Application [open dir] [ipynb]
  10. Predicting Continuous Target Variables with Regression Analysis [open dir] [ipynb]
  11. Working with Unlabeled Data – Clustering Analysis [open dir] [ipynb]
  12. Implementing a Multi-layer Artificial Neural Network from Scratch [open dir] [ipynb]
  13. Parallelizing Neural Network Training with TensorFlow [open dir] [ipynb]
  14. Going Deeper: The Mechanics of TensorFlow [open dir] [ipynb]
  15. Classifying Images with Deep Convolutional Neural Networks [open dir] [ipynb]
  16. Modeling Sequential Data Using Recurrent Neural Networks [open dir] [ipynb]

What’s new in the second edition from the first edition?

Oh, there are so many things that we improved or added; where should I start!? The one issue on top of my priority list was to fix all the nasty typos that were introduced during the layout stage or my oversight. I really appreciated all the helpful feedback from readers in this manner! Furthermore, I addressed all the feedback about sections that may have been confusing or a bit unclear, reworded paragraphs, and added additional explanations. Also, special thanks go to the excellent editors of the second edition, who helped a lot along the way!

Also, the figures and plots became much prettier. While readers liked the graphic content a lot, some people criticized the PowerPoint-esque style and layout. Thus, I decided to overhaul every little figure with a hopefully more pleasing choice of fonts and colors. Also, the data plots look much nicer now, thanks to the matplotlib team who put a lot of work in matplotlib 2.0 and its new styling theme.

Beyond all these cosmetic fixes, new sections were added here and there. Among these is, for example, is a section on dealing with imbalanced datasets, which several readers were missing in the first edition and short section on Latent Dirichlet Allocation among others.

As time and the software world moved on after the first edition was released in September 2015, we decided to replace the introduction to deep learning via Theano. No worries, we didn't remove it but it got a substantial overhaul and is now based on TensorFlow, which has become a major player in my research toolbox since its open source release by Google in November 2015. Along with the new introduction to deep learning using TensorFlow, the biggest additions to this new edition are three brand new chapters focussing on deep learning applications: A more detailed overview of the TensorFlow mechanics, an introduction to convolutional neural networks for image classification, and an introduction to recurrent neural networks for natural language processing. Of course, and in a similar vein as the rest of the book, these new chapters do not only provide readers with practical instructions and examples but also introduce the fundamental mathematics behind those concepts, which are an essential building block for understanding how deep learning works.

[ Excerpt from "Machine Learning can be useful in almost every problem domain:" An interview with Sebastian Raschka ]




Raschka, Sebastian, and Vahid Mirjalili. Python Machine Learning, 2nd Ed. Packt Publishing, 2017.

@book{RaschkaMirjalili2017,  
address = {Birmingham, UK},  
author = {Raschka, Sebastian and Mirjalili, Vahid},  
edition = {2},  
isbn = {978-1787125933},  
keywords = {Clustering,Data Science,Deep Learning,  
            Machine Learning,Neural Networks,Programming,  
            Supervised Learning},  
publisher = {Packt Publishing},  
title = {{Python Machine Learning, 2nd Ed.}},  
year = {2017}  
}

Translations

German

Japanese