Skip to content

A plug and play no-code-solution for training traditional supervised algorithms. Python and NumPy only!

Notifications You must be signed in to change notification settings

holaaaaa12345/SuperPlug

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

Introducing SuperPlug AutoML – your intuitive no-code-solution for training traditional supervised algorithm, meticulously brought to life by the coding prowess of ChatGPT, Claude, Bard, and me. It's intended for creating and choosing baseline model to be improved upon manually -- if you can't beat its performance, you simply suck 😝.

Currently under development with supports for Ridge, Linear, and brute-forced KNN regression.

Main Features

Simple

Just throw in your CSV file and specify the feature(s) and target. It'll train multiple models, tune the hyperparameters (if any), and present the evaluation metrics.

Lightweight

With a NumPy-only approach, SuperPlug AutoML defies the belief that Python requires an entourage of dependencies for a robust application. The backend is proprietary and inspired by Scikit-Learn, effectively a distilled version of it.

Flexible Backend and Dependency

While the main backend is custom-made, the API allows for seamless backend switch to Scikit-Learn (just uncomment the imports in api.py) if you want more runtime efficiency at the expense of additional dependency.

The Main Page

alt text

The Result Page

alt text

AutoML Pipeline

SuperPlug seeks to abstract away many of the model creation pipeline. Here lies the breakdown of what it does under the hood.

The preprocessing pipeline for each column features

  graph LR;
      A(Columns)  --> B{Is categorical?}
      B --yes--> C[Most frequent impute]
      B --no--> D[Mean impute]
      C --> E[One hot encoding]
      D --> F[Z-score standardization]
Loading

The training pipeline for each models

graph LR;
  A(Models) --> X{Is classification?}
  X --yes--> W[Stratified train test split]
  X --no-->Z[Train test split]
  Z --> B{Have hyperparameter?}
  W --> B
  B -- no --> C[Fit] --> D[Evaluate]
  B -- yes--> E[Randomized search cv]
  E --> C
Loading

How to Run Locally

Clone the repository

$ git clone https://github.com/holaaaaa12345/SuperPlug.git

Install dependencies.

Unless you opt for Scikit-Learn as backend, it only requires Python and NumPy. Most python devs should already have it. If you're an A student, setup a virtual environment first.

$ cd SuperPlug
$ pip install -r requirements.txt

Run frontend.py file

$ python frontend.py

TODO (in order of importance)

  • Finish the docs and comments in every class and function
  • Refactor the usage of "self" in the frontend
    • Some variables do not need to be an attribute
  • Figure out how to properly validate the csv input
  • Add more algorithms for regression
  • Finalize the readme
  • Add support for classification and its algorithms
    • Figure out what needs to change to do so
    • Add appropriate metrics and introduce flexibility for evaluation and scoring
    • Modify the train test split to support stratification
  • Write a more efficient KNN
  • Add support for PCA
  • Make the result window more informative
    • Figure out what other options to add

About

A plug and play no-code-solution for training traditional supervised algorithms. Python and NumPy only!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages