Skip to content

vivek34561/kidney_disease_classification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

42 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

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

Releases

No releases published

Packages

 
 
 

Contributors