Skip to content

AI / ML with Python

Build ML engineering skills through projects you can show and explain: data foundations (NumPy, pandas, viz, SQL), classical machine learning with honest evaluation, deep learning (CNNs, RNNs, transf…

Build ML engineering skills through projects you can show and explain: data foundations (NumPy, pandas, viz, SQL), classical machine learning with honest evaluation, deep learning (CNNs, RNNs, transformers), modern LLM/generative-AI application work with your model provider's API, and the MLOps that gets models into production. Pairs naturally with the Python Core track (its prerequisite) and the AI-Native/LLM track.

6 phases · 49 projects · v3.2.0

Target roles: ML Engineer, Data Scientist, AI/ML Software Engineer, Applied Scientist (entry)

Stack: Python 3.12, NumPy, pandas, matplotlib, scikit-learn, PyTorch, XGBoost, LLM provider SDK, FastAPI, MLflow, SQL

PHASE 1 · 8 projects

Data Foundations

Wrangle, explore, and visualize data with NumPy, pandas, and SQL — the daily reality of ML work.

  1. 01 · featured

    NumPy Fundamentals

    Learn the ndarray: creation, dtypes, indexing, slicing, reshaping, and axis-based aggregation — the foundation of all numerical computing and ML in Python.

    Python 3.12 · NumPy

  2. 02

    Vectorization & Broadcasting

    Replace Python loops with vectorized NumPy operations and broadcasting, measuring the speedup and understanding why vectorized code is faster.

    Python 3.12 · NumPy

  3. 03 · featured

    pandas: Series & DataFrames

    Load, select, filter, and compute on real tabular data with pandas Series and DataFrames — indexing with loc/iloc, boolean filtering, and adding computed columns.

    Python 3.12 · pandas

  4. 04

    Data Cleaning with pandas

    Clean a genuinely messy dataset: handle missing values, duplicates, wrong dtypes, inconsistent categories, and outliers — making explicit, defensible decisions.

    Python 3.12 · pandas

  5. 05

    groupby & merge

    Aggregate data with split-apply-combine (groupby) and combine datasets with merge/join, the two operations behind almost every analytical question.

    Python 3.12 · pandas

  6. 06

    Data Visualization

    Create clear, correct charts with matplotlib (and pandas plotting): line, bar, histogram, scatter, and box plots — each chosen to answer a specific question.

    Python 3.12 · matplotlib · pandas

  7. 07 · featured

    Exploratory Data Analysis (EDA)

    Run a full EDA on a real dataset: summary statistics, distributions, correlations, and segment comparisons, surfacing real patterns and forming hypotheses before modeling.

    Python 3.12 · pandas · matplotlib

  8. 08

    SQL for Data

    Query and aggregate data at the source with SQL (via sqlite3): SELECT, WHERE, JOIN, GROUP BY, and subqueries — and learn when to aggregate in SQL vs pandas.

    Python 3.12 · sqlite3 · SQL · pandas

PHASE 2 · 9 projects

Machine Learning Foundations

Train, evaluate, and reason about classical models honestly — no leakage, the right metric, real error analysis.

  1. 01 · featured

    Linear Regression

    Train your first supervised model: predict a continuous value with scikit-learn LinearRegression, with a proper train/test split and an appropriate regression metric.

    Python 3.12 · scikit-learn · pandas

  2. 02 · featured

    Classification with Logistic Regression

    Predict a category (not a number) with logistic regression, and evaluate it honestly with accuracy, precision, recall, and a confusion matrix — learning why accuracy alone misleads.

    Python 3.12 · scikit-learn

  3. 03

    Cross-Validation

    Replace a single train/test split with k-fold cross-validation for a more reliable performance estimate, and learn how to read the variance across folds.

    Python 3.12 · scikit-learn

  4. 04 · featured

    Overfitting & Regularization

    Deliberately produce overfit and underfit models, diagnose them with train-vs-validation curves, and fix overfitting with regularization — the central skill of ML.

    Python 3.12 · scikit-learn · matplotlib

  5. 05 · featured

    Feature Engineering & Pipelines

    Engineer features and wrap preprocessing + model in an sklearn Pipeline/ColumnTransformer so preprocessing is fit on training data only — preventing the most common cause of leakage.

    Python 3.12 · scikit-learn

  6. 06

    Model Evaluation & Error Analysis

    Go beyond aggregate metrics: build a confusion matrix, inspect concrete misclassified examples, and form grounded hypotheses about why the model fails and how to improve it.

    Python 3.12 · scikit-learn · pandas

  7. 07 · featured

    Decision Trees & Random Forests

    Train interpretable decision trees and powerful random forests, learning how trees split, why a single tree overfits, and how ensembling fixes it — plus feature importance.

    Python 3.12 · scikit-learn

  8. 08 · featured

    Gradient Boosting with XGBoost

    Train a gradient-boosted tree model (XGBoost/LightGBM or sklearn HistGradientBoosting), learning how boosting differs from bagging and how to use early stopping to control overfitting.

    Python 3.12 · xgboost · scikit-learn

  9. 09

    Unsupervised Learning: Clustering & PCA

    Find structure in unlabeled data with k-means clustering and reduce dimensionality with PCA, learning how to choose k and what principal components represent.

    Python 3.12 · scikit-learn · matplotlib

PHASE 3 · 7 projects

Advanced ML & Model Tuning

Get more from models: tuning, imbalanced data, ensembles, recommenders, and time series.

  1. 01 · featured

    Hyperparameter Tuning

    Tune model hyperparameters systematically with GridSearchCV and RandomizedSearchCV, cross-validating inside the search to avoid leakage and overfitting to the validation set.

    Python 3.12 · scikit-learn

  2. 02

    Imbalanced Data

    Handle datasets where one class is rare (fraud, disease) using class weights, resampling (SMOTE/undersampling), and the right metrics (PR-AUC, recall) instead of accuracy.

    Python 3.12 · scikit-learn · imbalanced-learn

  3. 03

    Feature Selection

    Reduce features to the ones that matter using filter (variance, univariate), wrapper (RFE), and embedded (L1/importance) methods, improving generalization and interpretability.

    Python 3.12 · scikit-learn

  4. 04

    Ensemble Methods: Voting & Stacking

    Combine diverse models with VotingClassifier and StackingClassifier to beat any single model, learning why model diversity is the key to ensemble gains.

    Python 3.12 · scikit-learn

  5. 05

    Recommender Systems

    Build content-based and collaborative-filtering recommenders, learning user-item matrices, similarity, and matrix factorization — and how to evaluate ranking quality.

    Python 3.12 · scikit-learn · numpy · pandas

  6. 06

    Time Series Forecasting

    Forecast temporal data: handle datetime indexing, resampling, lag/rolling features, and the special train/test split time series requires — never shuffle the future into the past.

    Python 3.12 · pandas · scikit-learn

  7. 07

    Text Features with TF-IDF

    Turn raw text into numerical features with bag-of-words and TF-IDF, then train a text classifier — the classical NLP pipeline that's still a strong baseline.

    Python 3.12 · scikit-learn

PHASE 4 · 9 projects

Deep Learning

Build and train neural networks with PyTorch — from a hand-written training loop to CNNs, RNNs, and transformers.

  1. 01 · featured

    PyTorch Tensors & Autograd

    Learn PyTorch tensors (NumPy-like, GPU-capable) and automatic differentiation (autograd) — the engine that computes gradients for neural network training.

    Python 3.12 · PyTorch

  2. 02 · featured

    Neural Network Training Loop

    Build and train a small neural network in PyTorch from scratch — define nn.Module, write the forward/loss/backward/step loop yourself, and track loss and a held-out metric.

    Python 3.12 · PyTorch

  3. 03

    Improving Training: Regularization & Optimizers

    Combat overfitting and speed up convergence in neural nets with dropout, batch normalization, weight decay, learning-rate scheduling, and mini-batching via DataLoader.

    Python 3.12 · PyTorch

  4. 04 · featured

    CNNs for Image Classification

    Build a convolutional neural network to classify images (MNIST/FashionMNIST), learning convolutions, pooling, and why CNNs beat dense nets on images.

    Python 3.12 · PyTorch · torchvision

  5. 05 · featured

    Transfer Learning

    Fine-tune a pretrained CNN (e.g. ResNet) on a new image task, learning to freeze/unfreeze layers and why transfer learning beats training from scratch with limited data.

    Python 3.12 · PyTorch · torchvision

  6. 06

    RNNs & LSTMs for Sequences

    Model sequential data with recurrent networks (RNN/LSTM) — predict the next value or classify a sequence — and learn why LSTMs handle long-range dependencies better than vanilla RNNs.

    Python 3.12 · PyTorch

  7. 07 · featured

    Attention & Transformers

    Understand self-attention and build a small transformer encoder, learning why attention replaced recurrence and powers modern AI (BERT, frontier and open-weights models).

    Python 3.12 · PyTorch

  8. 08 · featured

    Embeddings & Semantic Similarity

    Represent text as dense vectors with a sentence-embedding model and measure semantic similarity with cosine distance — the foundation of search, clustering, and RAG.

    Python 3.12 · sentence-transformers · numpy

  9. 09 · featured

    NLP with Pretrained Transformers

    Use the transformers library to run and fine-tune a pretrained language model (e.g. DistilBERT) for text classification — applying transfer learning to NLP.

    Python 3.12 · transformers · datasets · PyTorch

PHASE 5 · 8 projects

LLMs & Generative AI

Build real applications on large language models with your model provider's API: prompting, structured output, RAG, evaluation, and agents.

  1. 01 · featured

    LLM API Basics

    Make your first calls to the model with your model provider's SDK: messages, system prompts, multi-turn conversations, model/token parameters, and reading the response and usage.

    Python 3.12 · provider SDK

  2. 02

    Prompt Engineering Patterns

    Apply reliable prompting techniques with the model — clear instructions, few-shot examples, role/system prompts, chain-of-thought, and XML-tag structuring — and measure their effect.

    Python 3.12 · provider SDK

  3. 03 · featured

    Structured Output Extraction

    Get guaranteed schema-valid JSON from the model using structured outputs (output_config.format / messages.parse) so LLM responses can flow directly into your code.

    Python 3.12 · provider SDK · pydantic

  4. 04 · featured

    Tool Use & Function Calling

    Let the model call your Python functions: define tools, run the agentic loop (tool_use -> execute -> tool_result), and let the model decide when to use them.

    Python 3.12 · provider SDK

  5. 05 · featured

    Retrieval-Augmented Generation (RAG)

    Ground the model's answers in your own documents: embed a knowledge base, retrieve the most relevant chunks for a question, and pass them as context so the model answers from your data.

    Python 3.12 · provider SDK · sentence-transformers · numpy

  6. 06

    Evaluating LLM Outputs

    Measure LLM quality systematically: build a test set, score with exact/structured checks and an LLM-as-judge, and track quality across prompt or model changes instead of guessing.

    Python 3.12 · provider SDK

  7. 07

    Streaming, Caching & Cost

    Make LLM apps responsive and affordable: stream responses token-by-token, use prompt caching for repeated context, count tokens, and choose models by cost/quality.

    Python 3.12 · provider SDK

  8. 08 · featured

    Build an LLM Agent

    Combine tool use, the agentic loop, and a system prompt into a small autonomous agent that plans, calls multiple tools across turns, and produces a final answer — with guardrails.

    Python 3.12 · provider SDK

PHASE 6 · 8 projects

MLOps & Production

Track, serve, monitor, and ship models — turn notebooks into reliable production systems.

  1. 01 · featured

    Experiment Tracking with MLflow

    Track ML experiments with MLflow: log parameters, metrics, and artifacts; compare runs; and make results reproducible instead of lost in notebooks.

    Python 3.12 · mlflow · scikit-learn

  2. 02

    Model Serialization

    Save and load trained models safely with joblib/pickle and the full preprocessing pipeline, learning versioning, the security risk of pickle, and saving everything needed for inference.

    Python 3.12 · scikit-learn · joblib

  3. 03 · featured

    Model Serving with FastAPI

    Wrap a trained model behind a FastAPI prediction endpoint: validate input, load the model once at startup, return predictions, and handle bad input gracefully.

    Python 3.12 · FastAPI · pydantic · scikit-learn

  4. 04

    Data & Model Versioning with DVC

    Version large datasets and model artifacts with DVC alongside git, so an experiment ties code + data + model together and is fully reproducible.

    Python 3.12 · DVC · git

  5. 05

    Model Monitoring & Drift Detection

    Detect when a deployed model degrades: log predictions, monitor input/prediction distributions, and flag data drift so you know when to retrain.

    Python 3.12 · scikit-learn · scipy · pandas

  6. 06 · featured

    Containerizing ML with Docker

    Package a model-serving app in Docker so it runs identically anywhere: write a Dockerfile, pin dependencies, keep the image small, and run the container.

    Python 3.12 · Docker · FastAPI

  7. 07

    CI for Machine Learning

    Set up continuous integration for an ML project with GitHub Actions: run tests, lint, and a small model-quality check on every push so regressions are caught automatically.

    Python 3.12 · GitHub Actions · pytest

  8. 08

    Batch vs Online Inference

    Implement both serving patterns — real-time online inference and offline batch scoring — and learn when each fits based on latency, throughput, and cost.

    Python 3.12 · scikit-learn · pandas

Next step

Request AI / ML with Python

An advisor reviews the fit and confirms terms in writing. A request is not an acceptance and nothing is charged until you agree.