Welcome to Hyperparameter Optimization for Machine Learning, the most comprehensive course on hyperparameter tuning available online. In this course, you will learn multiple techniques to select the best hyperparameters and improve the performance of your machine learning models.
What are hyperparameters?
Hyperparameters are parameters that are not directly learnt by the machine learning algorithm. They define and control the machine learning model, i.e., how flexible the model is to fit the training data, and they are calibrated to avoid over-fitting and improve generalization.
Some examples of hyperparameters are the regularization constants in linear models and support vector machines (SVMs), the number of estimators and the max-depth in decision trees, and the number of nodes or the learning rate in deep neural networks.
What is hyperparameter optimization?
Hyperparameter tuning or hyperparameter optimization is the process of finding the best hyperparameter values for a given machine learning algorithm and a given dataset.
There are various hyperparameter optimization methods, including grid search, random search, and sequential models, usually involving Bayesian optimization.
Hyperparameter optimization algorithms consist of a search space, a search algorithm, a cross-validation scheme to find the optimal values while avoiding over-fitting, and an objective function with the classifier or regression model and the metric to optimize.
Throughout the tutorials, you will learn each and every aspect of the tuning methods.
What will you learn in this online course?
In this course, you will learn multiple hyperparameter optimization methods to find the best set of hyperparameters for your classifier or regression models.
Specifically, you will learn:
- How to define a hyperparameter space from were to sample different hyperparameters
- Different search algorithms that guide the search for hyperparameter values
- Various cross-validation schemes to assess the model performance at each iteration
- How to define an objective function for a specific machine learning model, metric and training data set.
You will learn the following search algorithms:
- Grid search
- Random Search
- Sequential models including Bayesian optimization with Gaussian processes
- Bayesian optimization with tree parzen estimators or random forests
We'll take you step-by-step through engaging video tutorials and teach you everything you need to know about to find the best combination of hyperparameters. Throughout this comprehensive course, we cover almost every available approach to optimize hyperparameters, discussing their rationale, their advantages and shortcomings, the considerations to have when using the technique, and their implementation in Python.
By the end of the course, you will be able to set up machine learning pipelines with the hyperparameter tuning algorithm that best suits your project.
Hyperparameter tuning with Python
Throughout the course, we will use Python as the main language. We will implement the hyperparameter search with the open-source libraries Scikit-learn, Hyperopt, Optuna, Scikit-Optimize and Keras-tuner.
Who is this course for?
If you are regularly training machine learning models as a hobby or for your organization and want to improve the performance of your models; if you are keen to jump up the leader board of a data science competition, or you simply want to learn more about how to tune hyperparameters of machine learning models, this course will show you how.
To get the most out of this course, you need to have a basic knowledge of machine learning and familiarity with the most common predictive models, like linear and logistic regression, decision trees, and random forests, and the metrics used to evaluate model performance. You also need basic knowledge of Python and the open source libraries, Numpy, Pandas, and sklearn.
We will use more advanced models to find the hyperparameters of neural networks. To get the most out of this course, you should be familiar with deep learning and the open source libraries keras and tensorflow.
This comprehensive machine learning course includes over 50 lectures spread across approximately 8 hours of video, and ALL topics include hands-on Python code examples that you can use for reference and practice, as well as re-use in your own projects.