← All courses

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.

2 modules Solstice AI VS Code · Jupyter Notebook · Python · pandas · numpy · matplotlib · scikit-learn · TensorFlow/Keras

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.

2 modules Solstice AI VS Code · Jupyter Notebook · Python · pandas · numpy · matplotlib · scikit-learn · TensorFlow/Keras

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 choice

You'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:

  1. A notebook with your full workflow
  2. One chart
  3. 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:

  1. Business question — who is asking, and what decision does the model inform?
  2. Data — source, size, what each feature/pixel represents, class balance or output range.
  3. Preparation — splitting, normalising, and any reshaping the data needs.
  4. Model — architecture, activation functions, loss function, and why you chose them.
  5. Training — epochs chosen, and how you checked for overfitting (compare training vs validation, the way you did in Machine Learning 102).
  6. 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.
  7. Chart — save to outputs/charts/ml103_main.png.
  8. Recommendation — one clear paragraph, with numbers.
  9. 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.shape

What 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]

  1. Executive summary — your recommendation in the first four sentences.
  2. Background — why this question matters to the client.
  3. Method — data, architecture, training choices.
  4. Results — headline numbers; refer to your chart.
  5. Recommendation — is this model ready to help the client, and for what, specifically?
  6. Limitations — what could make your model unreliable in practice.
  7. 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:

  1. choose a machine learning project and scope it for a real decision-maker;
  2. assemble tools from 101 and 102 without step-by-step guidance;
  3. prepare data, choose an architecture, and train a network for a genuinely new problem;
  4. evaluate a model honestly and communicate its limitations clearly;
  5. recommend under uncertainty and reflect on whether this career path fits you.

You have finished the Solstice AI machine learning track:

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.