Iris
Coursework project: Iris flower species classification with a NoSQL pipeline (MongoDB, Redis), a Machine Learning model (Random Forest) and an interactive prediction web app.
Context
Coursework project for a NoSQL databases and Machine Learning class. Goal: analyze the Iris dataset (Fisher, 1936) and build an end-to-end pipeline, from data storage to a real-time prediction web app.
Features
Iris dataset ingestion into MongoDB (document schema with a nested "features" sub-document) and caching in Redis
Descriptive statistical analysis and visualizations (pairplot, correlation matrix, boxplots) with Pandas and Seaborn
Simple and multiple linear regression (Statsmodels) — up to 96.8% explained variance
Supervised classification with Random Forest (Scikit-learn), ~96% accuracy, served through a FastAPI endpoint
Distributed classification with Spark MLlib
Performance benchmark comparing MongoDB and Redis (latency, throughput)
Interactive web interface (SvelteKit) with a real-time prediction form and analysis visualizations
Fully containerized environment with Docker Compose and a GitLab CI/CD pipeline
Tech stack
Backend: Python, FastAPI, Scikit-learn, Pandas, Statsmodels
Big Data: Apache Spark (MLlib)
Databases: MongoDB, Redis
Frontend: SvelteKit
Infrastructure: Docker, Docker Compose, GitLab CI/CD