Machine Learning · Level 103
Machine Learning 103 — Your Own Project
Pick your own dataset and architecture, train a network, and write up the results — with no step-by-step script.
Machine Learning · Level 103
Machine Learning 103 — Your Own Project
Pick your own dataset and architecture, train a network, and write up the results — with no step-by-step script.
Prerequisite: Machine Learning 102.
Machine Learning 101 and 102 were guided. This project is yours.
Module 1 — Your Own Project
Manager email
From: Priya Shah
Subject: One model — your choiceYou've trained a neuron by hand, built a real neural network in Keras, and evaluated one honestly on two datasets. Now I want to see how you handle an open brief, the way you'd get one from a client.
Choose one project below (or propose your own of similar scope). Deliver:
- A notebook with your full workflow
- One chart
- A short report in
report/ml103_project_report.md(500–700 words)Write for a manager who is busy, not a fellow engineer. Numbers first, jargon only with an explanation.
— Priya
Why this matters
ML engineers are hired to turn an open-ended request into a working, evaluated model — nobody hands them a numbered list of code cells. The guided modules taught you the tools. This module tests whether you can assemble them for a question nobody spelled out step by step.
Step 1 — Choose your project
Pick one. Each is achievable with the skills from Machine Learning 101 and 102.
Option A — A tougher image classifier: CIFAR-10
Fashion-MNIST and MNIST digits are small, greyscale, and centred. Real photos are messier. CIFAR-10 is a built-in Keras dataset of 60,000 small colour photos across ten categories (aeroplane, car, bird, cat, and more).
Task: Build and train a neural network on CIFAR-10. Expect noticeably lower accuracy than Fashion-MNIST or digits — that is the point. Investigate why it's harder (colour channels, more visual variety within a category, smaller, blurrier images) and report it honestly.
from tensorflow import keras
(X_train, y_train), (X_test, y_test) = keras.datasets.cifar10.load_data()Option B — A deeper network on Fashion-MNIST
Return to the Fashion-MNIST client from Machine Learning 102. Priya's retail client wants to know: can you do meaningfully better than Module 3's network?
Task: Try at least two architecture changes — for example, an extra
hidden layer, more hidden units, or a Dropout layer to fight overfitting
— and compare each against your Machine Learning 102 baseline honestly,
using test accuracy and a confusion matrix.
Option C — Predicting a number, not a category
Not every neural network predicts a class. A different Solstice AI client — an estate agency — wants to estimate house prices from property features. This is regression: predicting a continuous number.
Task: Use scikit-learn's built-in California housing dataset to train a
small neural network that predicts median house value from features like
location, rooms and income. You will need a different output layer (one
neuron, no activation) and a different loss (mean_squared_error) — research
these before you start.
from sklearn.datasets import fetch_california_housing
data = fetch_california_housing()Option D — Your own question
Propose something of similar scope — one dataset, one trained network, one honest evaluation. Write a one-paragraph proposal to Priya in your notebook before you start, as if you sent it.
Step 2 — Follow the ML workflow
Whatever you choose, use this structure in
notebooks/ml103_project.ipynb:
- Business question — who is asking, and what decision does the model inform?
- Data — source, size, what each feature/pixel represents, class balance or output range.
- Preparation — splitting, normalising, and any reshaping the data needs.
- Model — architecture, activation functions, loss function, and why you chose them.
- Training — epochs chosen, and how you checked for overfitting (compare training vs validation, the way you did in Machine Learning 102).
- Evaluation — the right metric for your problem (accuracy and a confusion matrix for classification; mean error for regression), plus specific examples the model gets wrong.
- Chart — save to
outputs/charts/ml103_main.png. - Recommendation — one clear paragraph, with numbers.
- Limitations — what you did not test, and what you'd want to check before this went near a real client.
Step 3 — Starter code (adapt to your option)
Question
Which option did you choose? State the decision your chosen client needs to make.
Code — load your data and confirm its shape
import numpy as np
import matplotlib.pyplot as plt
# Replace this with the loading code for your chosen option.
# Example (Option A):
from tensorflow import keras
(X_train, y_train), (X_test, y_test) = keras.datasets.cifar10.load_data()
X_train.shape, y_train.shape, X_test.shapeWhat the code does
Confirms you can load your chosen dataset and see its shape before writing any modelling code — the same first step you took in Machine Learning 101 and 102.
Add cells below for your preparation, model, training and evaluation.
Code — chart template
plt.figure(figsize=(8, 5))
# Build a chart that supports your recommendation.
# Examples: training curve, confusion matrix, predicted-vs-actual scatter
# (for regression), a grid of misclassified images.
plt.title("Chart title Priya will understand at a glance")
plt.tight_layout()
plt.savefig("../outputs/charts/ml103_main.png", dpi=150)
plt.show()Step 4 — Write the project report
Create report/ml103_project_report.md:
To: Priya Shah, Lead ML Engineer, Solstice AI
From: [Your name]
Subject: [Your project title]
- Executive summary — your recommendation in the first four sentences.
- Background — why this question matters to the client.
- Method — data, architecture, training choices.
- Results — headline numbers; refer to your chart.
- Recommendation — is this model ready to help the client, and for what, specifically?
- Limitations — what could make your model unreliable in practice.
- Personal reflection — did you enjoy this kind of open-ended project?
Reflection questions
- Which part felt most like real ML engineering — the architecture choices, the training, or the honest write-up of limitations?
- Did you feel comfortable recommending (or not recommending) your model despite its imperfections?
- Would you rather work on images, text, or tabular data day to day?
- Has this track helped you decide whether to explore machine learning further at university or in a career?
Manager feedback
From: Priya Shah
Open projects separate people who wait for instructions from people who structure an ambiguous problem themselves. You do not need a state-of-the-art model at 17 or 18 — you need an honestly evaluated one and a clear write-up.
If you found yourself more excited about explaining why the model fails on certain examples than about the headline accuracy number, you were thinking like an ML engineer.
— Priya
AQA Mathematics links
- Modelling cycle — preparation, training, evaluation, communication
- Probability and proportion — accuracy, confusion matrices, and error as ways of expressing "how good"
- Critical thinking — limitations and where a model is likely to fail
Beyond A-Level
Look up Kaggle. It hosts real, ongoing machine learning competitions with public datasets — a natural next step once you've enjoyed working through a project like this one on your own.
Module 2 — What You Have Learned
When you finish Machine Learning 103, you will have learned to:
- choose a machine learning project and scope it for a real decision-maker;
- assemble tools from 101 and 102 without step-by-step guidance;
- prepare data, choose an architecture, and train a network for a genuinely new problem;
- evaluate a model honestly and communicate its limitations clearly;
- recommend under uncertainty and reflect on whether this career path fits you.
You have finished the Solstice AI machine learning track:
- Machine Learning 101 — Could I be an ML engineer?
- Machine Learning 102 — Building a neural network
- Machine Learning 103 — Your own project
If turning an open-ended problem into a trained, honestly evaluated model felt motivating, machine learning may be worth exploring further at university and beyond.