Skip to content

WangCHEN9/gem

Repository files navigation

Give Everybody MachineLearning

Docker Image CI Build and deploy container app to Azure Web App - gem-fr

An End-to-End Auto-ML Web Application for Classification and Regression problem.

Supported for csv and excel files. Build with below two libraries:

Demo video

https://youtu.be/PsQ2efLdRCc


Features

  1. Drap and drop file from local system for training.

  2. Simple Data Exploration.

  3. Many Preprocessing methods:

    • Sample and Split
    • Data Preprocessing (Missing Values Imputation, One Hot Encoding, Handle Unknown Levels, Fix Imbalance for Classification)
    • Scale and Transform (Normalization, Transformation, Target Transformation)
    • Feature Engineering (Feature Interaction, Polynomial Features, Trigonometry Features, Group Features, Bin Numeric Features, Combine Rare Levels)
    • Feature Selection (Feature Importance, Remove Multicollinearity, Principal Components Analysis, Ignore Variances)
    • Unsupervised (Create Clusters, Remove Outliers)
  4. Model Training:

    • Compare all available Machine Learning Algorithm automatically.
    • Train a selected single model
    • Train an ensemble model
    • Hyperparameter tuning for single model
  5. Model Result Visualization:

    • All plots for Regression and Classification
    • SHAP Value

Install and Run

  1. Clone the repository to you computer:
git clone https://github.com/WangCHEN9/gem
cd gem
  1. Creata a conda virtual or python virtual environment and then activate it.
conda create -n myvirtual-name python=3.8 -y
conda activate myvirtual-name
  1. Install requirements
pip install -r requirements.txt
  1. Run streamlit locally and start web service:
streamlit run app.py

Run on Docker

  1. Pull the Docker image:
docker pull wangchen9/gem:latest
  1. Run the Docker image locally:
docker run -p 80:80 wangchen9/gem
  1. Open the localhost:80

Deploy in heroku (free tier only have 500MB memory -> Not enough for this app)

  1. Download and install the Heroku CLI
heroku login
  1. we will add a new remote to our git repo (only need run once)
heroku git:remote -a g-e-m
  1. Push code to the repository and deploy it to Heroku using Git. (only step needed for future deployment)
git push heroku main

Deploy in Azure

  1. Download and install the Azure CLI
az login
  1. Push to azure acr which triggers the prod deployment
az acr build --registry GemApp --resource-group gem --image gem .

OR Use github action -> see https://github.com/WangCHEN9/gem/actions/workflows/prod_gem-fr.yml