NickData Web Application
An End-to-End Machine Learning Web Application for Classification and Regression and clustering problem. Currently supported for csv and excel files. The application relies on these two excellent libraries for
machine learning:
- streamlit: https://github.com/streamlit/streamlit
- pycaret: https://github.com/pycaret/pycaret
Features
-
Drap and drop file from local system for training.
-
Simple Data Exploration.
- 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)
- Model Training:
- Compare all available Machine Learning Algorithm automatically.
- Train a selected single model
- Train an ensemble model
- Hyperparameter tuning for single model
- Model Result Visualization:
- All plots for Regression and Classification
- SHAP Value
-
Prediction and Save Model:
- Online Prediction
- Batch Prediction
- Save whole Machine Learning Pipeline as pickle file
Install and Run
- Clone the repository to you computer:
shell script
git clone https://github.com/nickjas/pynick
cd pynick
- Creata a conda virtual or python virtual environment and then activate it.
shell script
conda create -n myvirtual-name python=3.8 -y
conda activate myvirtual-name
-
Install requirements
shell script
pip install -r requirements.txt
- Run streamlit locally and start web service:
shell script
streamlit run app.py
Run on Docker
- Pull the Docker image:
docker pull cican/github-action:latest
- Run the Docker image locally:
docker run -p 8501:8501 cican/github-action
- Open the localhost:8501