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.
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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.
