MACHINE LEARNING
Machine Learning Tutorials
Machine learning with Python, from the concepts through to applied projects and career questions. These guides cover what the terms mean, which library to use, what the work looks like on real problems, and how people get paid to do it.
- 42 guides
- 9 topics
- Concepts to careers
What machine learning actually involves
Machine learning means fitting a model to examples so that it can make predictions about data it has not seen. That is the whole idea. A model learns from labelled historical rows — customers who churned, transactions that were fraudulent, prices that were paid — and applies that pattern to new ones.
The work is less glamorous than the phrase suggests. Most of a real project is framing the problem, gathering data, cleaning it, and building features — then a few lines to fit a model, and a surprising amount of time deciding whether the result can be trusted. Choosing the algorithm is rarely the hard part, and rarely where the gains are.
It also splits more cleanly than the marketing implies. If your data has meaningful columns, classical models from scikit-learn are usually the best answer, and gradient-boosted trees remain hard to beat on tabular problems. If your data is images, audio or free text, that is where deep learning with Keras or PyTorch earns its complexity.
One more thing worth saying plainly, because it saves people months: you do not need to learn deep learning first, and for most jobs you may not need it at all. The demand for people who can frame a problem, prepare data properly and ship a well-evaluated gradient-boosted model is far larger than the demand for people who can implement a transformer from scratch.
The guides below are grouped by what you want from them: the concepts and vocabulary, applied problems in vision, text, business and engineering, honest answers to the “X versus Y” questions, project ideas to build a portfolio, and the career side — roles, salaries and interviews.
Where to start if you are new
You need less than people expect: Python, Pandas for handling the data, and scikit-learn for the models. No GPU, no cloud account, no deep learning framework until you have a reason for one.
Begin with a dataset small enough to understand and a question specific enough to answer. “Which of these customers will cancel next month” is a project. “Learn machine learning” is not.
Split your data before you look at it too closely, and never report a score measured on rows the model trained on. Nearly every surprisingly good first result turns out to be some version of that mistake.
If you are starting today
A sensible order to learn machine learning in
Six steps that follow a real project rather than a syllabus. Deployment is included because a model nobody can call is not finished.
- 1
Learn how a project runs
Problem framing, data, features, training, evaluation and monitoring — the shape of every real project.
- 2
Understand regression and classification
Predicting a number versus predicting a category, and which one your problem actually is.
- 3
Fit models with scikit-learn
Where the theory becomes code, with one consistent interface across every algorithm.
- 4
Get better at features
The part that most often separates a mediocre model from a good one.
- 5
Learn to explain a model
If nobody can see why a prediction was made, nobody will act on it.
- 6
Ship something
A REST API in a container — the step that turns a notebook into a portfolio piece.
The vocabulary, first
The three types of machine learning
Almost every technique you will read about is one of these three. Knowing which one a tutorial is describing saves a lot of confusion.
Supervised learning
Learning from answersYou have historical examples and the correct answer for each one. The model learns the mapping between them. This covers the large majority of working machine learning, and it is where beginners should start.
# features and the known answer model.fit(X, y) model.predict(X_new)
Use it when: you can label the outcome: churned or not, the price paid, the category.
Unsupervised learning
Finding structureNo labels at all — you are asking what natural groupings or patterns exist in the data. Clustering customers into segments is the common business case, and it is often a step before labelling.
# no y at all kmeans.fit(X) kmeans.predict(X_new)
Use it when: you have data but nobody has said what the right answer is.
Reinforcement learning
Learning from consequencesAn agent takes actions in an environment and learns from rewards and penalties over time. It powers game-playing and robotics, and it is the smallest slice of commercial work by a wide margin.
# act, observe, adjust action = agent.act(state) agent.learn(reward)
Use it when: decisions happen in sequence and each one changes what comes next.
Quick reference
The terms people get stuck on
The vocabulary that appears in every tutorial and rarely gets defined, in plain words.
| Task | Code | Worth knowing |
|---|---|---|
| Feature | X | An input column. The things the model learns from. |
| Label | y | The answer you are predicting. Also called the target. |
| Training set | X_train, y_train | Rows the model learns from. |
| Test set | X_test, y_test | Held back to measure honestly. Never train on it. |
| Overfitting | train 0.99 / test 0.71 | Memorised the training rows, learned nothing general. |
| Underfitting | train 0.62 / test 0.61 | Too simple to capture the pattern at all. |
| Classification | predict_proba() | Predicting a category: churn or not, spam or not. |
| Regression | predict() | Predicting a number: price, demand, temperature. |
| Supervised | fit(X, y) | Learning from labelled examples. |
| Unsupervised | fit(X) | Finding structure with no labels, such as clustering. |
| Inference | model.predict(new) | Using a trained model on new data. |
| Cross-validation | cross_val_score(m, X, y, cv=5) | Several splits, for a score you can trust. |
A realistic timeline
A beginner-to-advanced learning path
Roughly how long each stage takes with steady part-time study. Treat the weeks as a shape, not a promise — what matters is finishing each level’s project.
| Level | Roughly | What you learn | What you should be able to build |
|---|---|---|---|
| Complete beginner | Weeks 1–4 | Python, Pandas, reading a CSV, basic plotting. | A notebook that loads a dataset and describes it with charts and summary stats. |
| Building confidence | Weeks 5–8 | Train/test splits, logistic regression, decision trees, accuracy and confusion matrices. | A working classifier on a public dataset, scored honestly on held-out data. |
| Intermediate | Weeks 9–16 | Feature engineering, cross-validation, random forests and gradient boosting, pipelines. | A tuned model that beats your first baseline, plus a REST API that serves it. |
| Deep learning | Weeks 17–28 | Neural networks, CNNs for images, transfer learning, and one framework in depth. | An image or text model fine-tuned from a pretrained backbone, deployed somewhere. |
Choosing a tool
Which library for which problem
Most of the “what should I use” question comes down to the shape of your data. This is the short version.
| Your data | Start with | Why |
|---|---|---|
| Rows and columns | scikit-learn | Consistent interface, trains in seconds, easy to explain to a stakeholder. |
| Rows and columns, and accuracy matters | Gradient boosting | XGBoost, LightGBM or scikit-learn’s own boosting still beat neural networks on most tabular problems. |
| Images | Keras or PyTorch | Convolutional layers and vision transformers need a deep learning framework. |
| Free text | Keras, PyTorch or a pretrained model | Fine-tuning an existing language model usually beats training from scratch. |
| A time series | scikit-learn or statistical models | Classical methods are strong here; deep learning only pays off with a lot of data. |
| No labels at all | Clustering in scikit-learn | k-means or DBSCAN to find structure before you invest in labelling. |
| Very little data | Simpler models | A complex model on a few hundred rows memorises rather than learns. |
Every tutorial, by topic
Every machine learning guide, by topic
Concepts, applied problems, comparisons, project ideas and career questions — grouped so you can go straight to the kind of answer you need.
ML Concepts & Theory Tutorials
10The ideas the rest of it rests on: inference, regression, feature extraction, interpretability, quantization, design patterns and the project life cycle — plus which Python libraries matter and why the language won. Read the life cycle guide first if you are new — it gives the rest of these somewhere to sit.
Computer Vision & Image Processing
2Machine learning applied to images: the processing steps that come first, and recognition once the pixels are ready. Both lead naturally into the Keras and PyTorch hubs, where the models themselves live.
Natural Language Processing & Text
2Working with written language — the standard techniques for text, and classifying documents at scale — still one of the most common and most commercially useful applications of machine learning.
Business & Analytics
6Where machine learning earns its keep: customer segmentation, price optimisation and forecasting, business analytics, and what managers need to know before approving any of it. These are the use cases that get funded, which makes them worth understanding even if your interest is technical.
Engineering & Signal Processing
2Predictive maintenance on equipment, and machine learning applied to signals rather than tables — a field where classical methods and domain knowledge still matter as much as the model.
Project Ideas to Build Your Portfolio
2Projects worth building if you are trying to get hired, including deploying a model as a REST API with FastAPI and Docker — the step most portfolios skip. A deployed project with an honest evaluation is worth more in an interview than three notebooks that were never finished.
ML Comparisons — Common Questions Answered
8Straight answers to the questions that come up constantly: generative AI versus machine learning, neural networks versus ML, data science versus ML, and which language to use. Useful for interviews, and for explaining your work to people who use these terms interchangeably.
ML Career Guides
9Becoming an ML engineer, how the role differs from data science and product management, what the work pays, where the field is heading, and interview preparation. Read these alongside the project ideas — what you build determines which of these roles you are a credible candidate for.
Free Python & Machine Learning Training Course
1A free course covering Python and machine learning together, if you would rather follow a structured path than pick tutorials one at a time.
Keep going
The libraries you will actually use
Machine learning in Python is really these libraries. Each has its own hub here.
Questions people ask
Frequently asked questions
Do I need to be good at maths to start machine learning?
Not to start. You can fit useful models with school-level algebra and a clear head about what the numbers mean. Maths becomes important when you want to understand why a model behaves as it does or read papers — and by then you will have context that makes it much easier to learn.
Which library should I learn first?
Pandas, then scikit-learn. Pandas is how you get data into a usable shape, and scikit-learn covers classical models with one consistent interface. Add Keras or PyTorch only when you move to images, audio or text.
What is the difference between machine learning and AI?
AI is the broad field of making machines do things that seem to require intelligence. Machine learning is one approach within it: learning patterns from data rather than following hand-written rules. Most of what is currently called AI, including large language models, is machine learning.
How long does it take to become employable?
For someone already comfortable with Python, six to twelve months of consistent work is a realistic range — and portfolio projects that are deployed and explainable matter far more than course certificates. Being able to talk through why you made each decision counts for more than the accuracy you reached.
Do I need a GPU?
Not for classical machine learning, which runs fine on a laptop CPU. You only need one for deep learning on sizeable data, and Colab and Kaggle provide free GPUs that are enough to learn on before you spend anything.
What should my first machine learning project be?
Something small, labelled and genuinely interesting to you. A public dataset with a clear yes or no outcome works well, because you can judge whether the result is sensible without domain expertise. Finish it properly — split the data, fit a simple baseline, then try to beat it — rather than starting something ambitious you abandon halfway.
What is the difference between supervised and unsupervised learning?
Supervised learning has the right answer for each historical example and learns the mapping to it — which customers churned, what price was paid. Unsupervised learning has no answers and looks for structure instead, such as clustering customers into segments. Nearly all commercial machine learning is supervised, so start there.
Is a bootcamp or a degree necessary?
Neither is required, and neither substitutes for work you can show. Employers hiring for machine learning want evidence that you can take a messy dataset to a model that is evaluated honestly and deployed somewhere. Two or three projects like that, which you can explain the decisions behind, carry more weight than a list of completed courses.
Why is my model accurate in testing but wrong in production?
The usual causes are data leakage — something in your features quietly encoded the answer — or a distribution shift, where live data no longer resembles what you trained on. Both are why monitoring after deployment is part of the life cycle rather than an afterthought.
Pick one dataset and see it through
Frame a question, clean the data, fit a model, check it honestly. One finished project teaches more than a dozen tutorials.
