Tim Smans

Mood Machine

Mood Machine

Developed a complete NLP-based sentiment classification system powered by an MLOps pipeline with Kubeflow, MLflow, and MinIO. Deployed and served as a scalable ML system on Kubernetes.

Project Description

Mood Machine is a machine learning pipeline that classifies user text into emotional categories: joy, anger, sadness, and optimism. The system is built around a Logistic Regression NLP model trained on TF-IDF features and optimized using hyperparameter tuning with GridSearchCV.

To support scalability and reproducibility, I integrated the model into a full MLOps pipeline (Metro-MLOps, created by me) using Kubeflow Pipelines. Each stage—data loading, model training, evaluation, and registration—is automated in the pipeline. The system tracks experiments and model versions using MLflow, and stores artifacts such as metrics, reports, and models in MinIO, a local S3-compatible object store.

The model is deployed via MLflow Serving, making predictions accessible through a REST API. A simple Streamlit frontend is also included for real-time emotion analysis based on user input.

Project Gallery

StreamLit frontend
Kubeflow pipeline overview
MLFlow overview
Tags
MLOps
scikit-learn
Streamlit
Kubernetes
Python