Eric Ristol

AI student at UAB · Barcelona

I'm building a portfolio of machine learning projects from scratch — from classical regression to transformers with LoRA and CNNs from the original paper. Each project is a complete pipeline: data, training, evaluation, prediction, tests, and (where it makes sense) a live web demo you can try right now.

Projects

Sentiment Classifier (DistilBERT + LoRA)

Live Demo

Fine-tunes DistilBERT for binary sentiment classification using LoRA — only 0.3% of parameters are updated, producing a ~1 MB adapter that matches full fine-tuning accuracy. Three-way comparison: zero-shot baseline vs LoRA vs full fine-tune. Served via FastAPI with a web interface.

PyTorch Transformers LoRA / PEFT FastAPI

Bicing Availability Predictor

Live Demo

Predicts bike availability at Barcelona Bicing stations 15 minutes ahead. Time-series regression with proper temporal train/test split, lag features, rolling means, and a persistence baseline to beat. RandomForest and LightGBM compared. REST API + web demo.

scikit-learn LightGBM Time Series FastAPI

ResNet-20 Image Classifier (from scratch)

Live Demo

A from-scratch reimplementation of ResNet-20 from the original He et al. 2016 paper. Nothing imported from torchvision.models — BasicBlock, residual connections, batch norm, He initialisation, all written by hand. Trained on CIFAR-10. Drag-and-drop web demo.

PyTorch CNN CIFAR-10 FastAPI

LLM Fine-Tune (SmolLM2 ML Tutor)

NLP

Fine-tunes SmolLM2-360M with LoRA to act as a machine learning tutor. Trained on 40 curated Q&A pairs with chat templates. Uses HuggingFace Trainer with gradient accumulation and cosine LR scheduling. Includes automated evaluation comparing base vs fine-tuned outputs.

PyTorch HuggingFace Trainer LoRA / PEFT SmolLM2

Student Performance Predictor

Tabular ML

Predicts a student's final grade from study habits, sleep, attendance, and previous grades. Compares Linear Regression, Ridge, Lasso, Decision Tree, Random Forest, and SVR. Proper train/test split with StandardScaler fitted only on training data.

scikit-learn Regression Feature Scaling

KNN Classifier (from scratch)

From Scratch

K-Nearest Neighbours implemented from zero — Euclidean distance, majority voting, no scikit-learn. Classifies tree species from physical measurements. Built to understand the algorithm at the lowest level before using library implementations.

NumPy Classification From Scratch