Book Image

Machine Learning Automation with TPOT

By : Dario Radečić
Book Image

Machine Learning Automation with TPOT

By: Dario Radečić

Overview of this book

The automation of machine learning tasks allows developers more time to focus on the usability and reactivity of the software powered by machine learning models. TPOT is a Python automated machine learning tool used for optimizing machine learning pipelines using genetic programming. Automating machine learning with TPOT enables individuals and companies to develop production-ready machine learning models cheaper and faster than with traditional methods. With this practical guide to AutoML, developers working with Python on machine learning tasks will be able to put their knowledge to work and become productive quickly. You'll adopt a hands-on approach to learning the implementation of AutoML and associated methodologies. Complete with step-by-step explanations of essential concepts, practical examples, and self-assessment questions, this book will show you how to build automated classification and regression models and compare their performance to custom-built models. As you advance, you'll also develop state-of-the-art models using only a couple of lines of code and see how those models outperform all of your previous models on the same datasets. By the end of this book, you'll have gained the confidence to implement AutoML techniques in your organization on a production level.
Table of Contents (14 chapters)
1
Section 1: Introducing Machine Learning and the Idea of Automation
3
Section 2: TPOT – Practical Classification and Regression
8
Section 3: Advanced Examples and Neural Networks in TPOT

Neural networks in regression versus classification

If you've done any machine learning with scikit-learn, you know there are dedicated classes and models for regression and classification datasets. For example, if you would like to apply a decision tree algorithm to a classification dataset, you would use the DecisionTreeClassifier class. Likewise, you would use the DecisionTreeRegressor class for regression tasks.

But what do you do with neural networks? There are no dedicated classes or layers for classification and regression tasks.

Instead, you can accommodate by tweaking the number of neurons in the output layer. Put simply, if you're dealing with regression tasks, there has to be a single neuron in the output layer. If you're dealing with classification tasks, there will be as many neurons in the output layer as there are distinct classes in your target variable.

For example, you saw how the neural network in the previous section had 10 neurons in the...