Skip to content

Repository files navigation

🩺 Kidney Disease Classification – MLflow & DVC

Python VGG16 MLflow DVC Streamlit License

An end-to-end kidney disease classification system with experiment tracking, reproducible pipelines, and production-ready ML workflows.

🌐 Live App🔁 Workflow🏗️ Architecture🚀 Quick Start📊 MLflow & DVC


🎯 Overview

This project is a production-style machine learning system for kidney disease classification, designed with MLOps best practices in mind.

It focuses on:

  • Modular ML pipelines
  • Experiment tracking with MLflow
  • Reproducibility using DVC
  • Configuration-driven development
  • Deployment-ready Streamlit interface

The project structure closely resembles real-world industry ML systems.


🔁 Workflows

The entire pipeline is configuration-driven and modular:

  1. Update config.yaml
  2. Update secrets.yaml (optional)
  3. Update params.yaml
  4. Define entities
  5. Update configuration manager in src/config
  6. Update individual components
  7. Update pipeline logic
  8. Update main.py
  9. Update dvc.yaml
  10. Update app.py

This design ensures clean separation of concerns and easy experimentation.


🏗️ Architecture

Data Ingestion
      ↓
Data Validation
      ↓
Data Transformation
      ↓
Base Model Preparation (VGG16)
      ↓
Model Training
      ↓
Model Evaluation
      ↓
MLflow Logging & Registry
      ↓
Streamlit Inference App

DVC orchestrates the pipeline, while MLflow tracks experiments and models.


🛠️ Tech Stack

Layer Technology
Language Python 3.10
Model VGG16 (Transfer Learning)
ML Framework TensorFlow / Keras
Experiment Tracking MLflow
Pipeline Orchestration DVC
Frontend Streamlit
Configuration YAML
Tracking Server DagsHub

🚀 Quick Start

Prerequisites

  • Conda
  • Python 3.10
  • Git
  • DVC

Clone the Repository

git clone https://github.com/vivek34561/kidney_disease_classification
cd kidney_disease_classification

Create Conda Environment

conda create -n myenv python=3.10 -y
conda activate myenv

Install Dependencies

pip install -r requirements.txt

Run the Application

python app.py

Open your browser and navigate to the local Streamlit URL shown in the terminal.


📊 MLflow & DVC

MLflow

  • Tracks experiments, parameters, metrics, and artifacts
  • Maintains model registry
  • Enables reproducibility and comparison

Useful commands:

mlflow ui

Documentation:


MLflow with DagsHub

Tracking URI:

https://dagshub.com/vivek34561/kidney_disease_classification.mlflow

Set environment variables:

export MLFLOW_TRACKING_URI=https://dagshub.com/vivek34561/kidney_disease_classification.mlflow
export MLFLOW_TRACKING_USERNAME=vivek34561
export MLFLOW_TRACKING_PASSWORD=your_token_here

Then run:

python main.py

DVC Commands

dvc init
dvc repro
dvc dag
  • dvc repro runs the entire ML pipeline
  • dvc dag visualizes pipeline dependencies

🧠 Why MLflow & DVC?

MLflow

  • Production-grade experiment tracking
  • Parameter, metric, and artifact logging
  • Model versioning and comparison

DVC

  • Lightweight pipeline orchestration
  • Reproducible experiments
  • Data and model version control
  • Ideal for PoC and research-to-production workflows

🔮 Future Improvements

  • CI/CD integration for ML pipelines
  • Automated model promotion rules
  • Cloud-based artifact storage
  • Model drift detection
  • API-based inference service

👨‍💻 Author

Vivek Kumar Gupta AI Engineering Student | ML & MLOps Enthusiast

GitHub: https://github.com/vivek34561

LinkedIn: https://linkedin.com/in/vivek-gupta-0400452b6

Portfolio: https://resume-sepia-seven.vercel.app/


📄 License

MIT License © 2025 Vivek Kumar Gupta

  • Align it directly with ML Engineer / MLOps Engineer job descriptions
  • Create a system design diagram explanation for interviews

About

An end-to-end kidney disease classification system with experiment tracking, reproducible pipelines, and production-ready ML workflows.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages