Making developers awesome at machine learning
Making developers awesome at machine learning
The most common question I’m asked is: “how do I get started?”
My best advice for getting started in machine learning is broken down into a 5-step process:
For more on this top-down approach, see:
Many of my students have used this approach to go on and do well in Kaggle competitions and get jobs as Machine Learning Engineers and Data Scientists.
The benefit of machine learning are the predictions and the models that make predictions.
To have skill at applied machine learning means knowing how to consistently and reliably deliver high-quality predictions on problem after problem. You need to follow a systematic process.
Below is a 5-step process that you can follow to consistently achieve above average results on predictive modeling problems:
For a good summary of this process, see the posts:
Probability is the mathematics of quantifying and harnessing uncertainty. It is the bedrock of many fields of mathematics (like statistics) and is critical for applied machine learning.
Below is the 3 step process that you can use to get up-to-speed with probability for machine learning, fast.
You can seeall of the tutorials on probability here. Below is a selection of some of the most popular tutorials.
Statistical Methods an important foundation area of mathematics required for achieving a deeper understanding of the behavior of machine learning algorithms.
Below is the 3 step process that you can use to get up-to-speed with statistical methods for machine learning, fast.
You can see all of thestatistical methods posts here. Below is a selection of some of the most popular tutorials.
Linear algebra is an important foundation area of mathematics required for achieving a deeper understanding of machine learning algorithms.
Below is the 3 step process that you can use to get up-to-speed with linear algebra for machine learning, fast.
You can see alllinear algebra posts here. Below is a selection of some of the most popular tutorials.
Optimization is the core of all machine learning algorithms. When we train a machine learning model, it is doing optimization with the given dataset.
You can get familiar with optimization for machine learning in 3 steps, fast.
You can see alloptimization posts here. Below is a selection of some of the most popular tutorials.
Calculus is the hidden driver for the success of many machine learning algorithms. When we talk about the gradient descent optimization part of a machine learning algorithm, the gradient is found using calculus.
You can get familiar with calculus for machine learning in 3 steps.
You can see allcalculus posts here. Below is a selection of some of the most popular tutorials.
Python is the lingua franca of machine learning projects. Not only a lot of machine learning libraries are in Python, but also it is effective to help us finish our machine learning projects quick and neatly. Having good Python programming skills can let you get more done in shorter time!
You can get familiar with Python for machine learning in 3 steps.
You can see allPython posts here. But don’t missPython for Machine Learning (my book). Below is a selection of some of the most popular tutorials.
Machine learning is about machine learning algorithms.
You need to know what algorithms are available for a given problem, how they work, and how to get the most out of them.
Here’s how to get started with machine learning algorithms:
You can see allmachine learning algorithm posts here. Below is a selection of some of the most popular tutorials.
Weka is a platform that you can use to get started in applied machine learning.
It has a graphical user interface meaning that no programming is required and it offers a suite of state of the art algorithms.
Here’s how you can get started with Weka:
You can see allWeka machine learning posts here. Below is a selection of some of the most popular tutorials.
Python is one of the fastest growing platforms for applied machine learning.
You can use the same tools like pandas and scikit-learn in the development and operational deployment of your model.
Below are the steps that you can use to get started with Python machine learning:
You can see allPython machine learning posts here. Below is a selection of some of the most popular tutorials.
R is a platform for statistical computing and is the most popular platform among professional data scientists.
It’s popular because of the large number of techniques available, and because of excellent interfaces to these methods such as the powerful caret package.
Here’s how to get started with R machine learning:
You can see allR machine learning posts here. Below is a selection of some of the most popular tutorials.
You can learn a lot about machine learning algorithms by coding them from scratch.
Learning via coding is the preferred learning style for many developers and engineers.
Here’s how to get started with machine learning by coding everything from scratch.
You can see all of theCode Algorithms from Scratch posts here. Below is a selection of some of the most popular tutorials.
Time series forecasting is an important topic in business applications.
Many datasets contain a time component, but the topic of time series is rarely covered in much depth from a machine learning perspective.
Here’s how to get started with Time Series Forecasting:
You can see allTime Series Forecasting posts here. Below is a selection of some of the most popular tutorials.
The performance of your predictive model is only as good as the data that you use to train it.
As such data preparation may the most important parts of your applied machine learning project.
Here’s how to get started with Data Preparation for machine learning:
You can see allData Preparation tutorials here. Below is a selection of some of the most popular tutorials.
Data science is to use mathematics, statistics, and machine learning techniques to extract insights from data.
There’s a lot of data science tools in the Python ecosystem and many techniques in other machine learning projects are useful for data science, too.
Here’s how to get started with Data Science with Python
You can see all Data Science postshere andhere. Below is a selection of some of the most popular tutorials.
XGBoost is a highly optimized implementation of gradient boosted decision trees.
It is popular because it is being used by some of the best data scientists in the world to win machine learning competitions.
Here’s how to get started with XGBoost:
You can see allXGBoosts posts here. Below is a selection of some of the most popular tutorials.
Imbalanced classification refers to classification tasks where there are many more examples for one class than another class.
These types of problems often require the use of specialized performance metrics and learning algorithms as the standard metrics and methods are unreliable or fail completely.
Here’s how you can get started with Imbalanced Classification:
You can see allImbalanced Classification posts here. Below is a selection of some of the most popular tutorials.
Deep learning is a fascinating and powerful field.
State-of-the-art results are coming from the field of deep learning and it is a sub-field of machine learning that cannot be ignored.
Here’s how to get started with deep learning:
You can see alldeep learning posts here. Below is a selection of some of the most popular tutorials.
Besides Keras, PyTorch is another library for deep learning with a huge market-share. It is important to know about PyTorch and become familiar with its syntax.
Here’s how to get started with deep learning in PyTorch:
You can see allPyTorch deep learning posts here. Below is a selection of some of the most popular tutorials.
OpenCV is the most popular library for image processing but its machine learning module is less well-known.
If you are already using OpenCV, adding machine learning to your project should be at no additional cost. You can make use of the experiences you learned in scikit-learn or Keras to bring your image processing project to the next level.
Below are the steps that you can use to get started with machine learning in OpenCV:
You can see allOpenCV machine learning posts here. Below is a selection of some of the most popular tutorials.
Although it is easy to define and fit a deep learning neural network model, it can be challenging to get good performance on a specific predictive modeling problem.
There are standard techniques that you can use to improve the learning, reduce overfitting, and make better predictions with your deep learning model.
Here’s how to get started with getting better deep learning performance:
You can see all betterdeep learning posts here. Below is a selection of some of the most popular tutorials.
Predictive performance is the most important concern on many classification and regression problems. Ensemble learning algorithms combine the predictions from multiple models and are designed to perform better than any contributing ensemble member.
Here’s how to get started with getting better ensemble learning performance:
You can see allensemble learning posts here. Below is a selection of some of the most popular tutorials.
Long Short-Term Memory (LSTM) Recurrent Neural Networks are designed for sequence prediction problems and are a state-of-the-art deep learning technique for challenging prediction problems.
Here’s how to get started with LSTMs in Python:
You can see allLSTM posts here. Below is a selection of some of the most popular tutorials using LSTMs in Python with the Keras deep learning library.
Working with text data is hard because of the messy nature of natural language.
Text is not “solved” but to get state-of-the-art results on challenging NLP problems, you need to adopt deep learning methods
Here’s how to get started with deep learning for natural language processing:
You can see alldeep learning for NLP posts here. Below is a selection of some of the most popular tutorials.
Working with image data is hard because of the gulf between raw pixels and the meaning in the images.
Computer vision is not solved, but to get state-of-the-art results on challenging computer vision tasks like object detection and face recognition, you need deep learning methods.
Here’s how to get started with deep learning for computer vision:
You can see alldeep learning for Computer Vision posts here. Below is a selection of some of the most popular tutorials.
Deep learning neural networks are able to automatically learn arbitrary complex mappings from inputs to outputs and support multiple inputs and outputs.
Methods such as MLPs, CNNs, and LSTMs offer a lot of promise for time series forecasting.
Here’s how to get started with deep learning for time series forecasting:
You can see alldeep learning for time series forecasting posts here. Below is a selection of some of the most popular tutorials.
Generative Adversarial Networks, or GANs for short, are an approach to generative modeling using deep learning methods, such as convolutional neural networks.
GANs are an exciting and rapidly changing field, delivering on the promise of generative models in their ability to generate realistic examples across a range of problem domains, most notably in image-to-image translation tasks.
Here’s how to get started with deep learning for Generative Adversarial Networks:
You can see allGenerative Adversarial Network tutorials listed here. Below is a selection of some of the most popular tutorials.
Attention mechanisms are the techniques invented to mitigate the issue where recurrent neural networks failed to work well with long sequences of input. We learned that the attention mechanism itself can be used as a building block of neural networks and therefore we now have the transformer architecture.
Attention mechanisms and transformer models are shown to deliver amazing results, especially in natural language processing. There are examples of using transformer models in one way or another that make computers understand human language and perform tasks such as translation or summarizing a paragraph, in human-like quality.
Here’s how to get started to understand attention mechanisms and transformers:
You can see allAttention and Transformer tutorials listed here. Below is a selection of some of the most popular tutorials.
Large language models amused the world that computers today might already passed the Turing test. Behind the scene, the large language models are using the transformer architecture, but each model has some variation in the architecture design.
Even if you do not have enough computational resources, you can run smaller language models. Regardless the size, all models are related as they share the similar architecture. Knowing the rationale behind different design choice of the architecture can help you identify the pros and cons of a model. Then you are more proficient to pick the right model.
Here’s how to get started to understand language models and transformer architecture.
These posts are using PyTorch as most of the LLMs you know today are built using this framework. You can see allBuilding Transformer Models tutorials listed here. Below is a selection of some of the most popular tutorials.
I’m here to help you become awesome at applied machine learning.
If you still have questions and need help, you have some options: