Skip to content

RetroML is a nostalgic, configuration-driven AutoML pipeline that brings a ‘90s flair to modern machine learning workflows. It allows users to run ML classification tasks via JSON configs, with optional support for interactive UIs and demos (e.g., customer churn prediction).

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

Agile-Creative-Labs/retroml

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

RetroML

RetroML Banner

Welcome to RetroML, a nostalgic, config-driven machine learning pipeline that brings the radical vibes of the '90s to modern AutoML workflows. Run interpretable ML models through JSON configs or interactively via UI demos — no coding required!

Quick Start

  1. Install Dependencies

    pip install -r requirements.txt
  2. Run a Pipeline

    python retroml.py configs/classification_example.json
  3. Try the Interactive UI (if you have the UI file)

    python retroml_ui.py

Run the Demo for RetroML Classification Demo

Demo Focus:

The included classification demo specifically demonstrates:

  • Customer Churn Prediction (Binary Classification)
    • Predicts whether customers will leave (churn=1) or stay (churn=0)
    • Uses features like contract type, monthly charges, and tenure
    • Showcases model interpretability (feature importance)
  1. Run the interactive demo
  python retroml_demo.py
  1. Analyze the model in detail
  python3 retroml_model_analyzer.py
  1. Ensure that you have flask installed
      pip install flask
  2. Launch the demo web application
  python3 retroml_web_demo.py

Project Structure

retroml/
├── retroml.py              # Main pipeline script
├── retroml_ui.py          # Interactive terminal UI (optional)
├── requirements.txt       # Python dependencies
├── configs/              # Configuration files
│   ├── classification_example.json
│   └── regression_example.json
├── data/                 # Sample datasets
│   ├── customers.csv     # Customer churn data
│   └── houses.csv        # House price data
└── results/              # Output directory
    ├── classification/
    └── regression/

Configuration Format

{
  "dataset": {
    "path": "data/your_data.csv",
    "target_column": "target"
  },
  "problem_type": "classification",  // or "regression"
  "preprocessing": {
    "impute_missing": "mean",        // "mean", "median", "mode"
    "scale_features": true
  },
  "model": {
    "auto_select": true,
    "options": ["logistic_regression", "random_forest", "xgboost"]
  },
  "output": {
    "save_dir": "results/",
    "format": "pickle"
  }
}

Features

  • Automated model selection - Tests multiple algorithms automatically
  • Config-driven workflow - No coding required, just JSON configuration
  • Retro 90s UI - ASCII art, colored output, loading animations
  • Comprehensive reporting - Detailed evaluation reports and metrics
  • Model persistence - Save and load trained models
  • Extensible architecture - Easy to add new algorithms and preprocessing steps

Supported Algorithms

Classification:

  • Logistic Regression
  • Random Forest
  • XGBoost (if installed)

Regression:

  • Linear Regression
  • Random Forest
  • XGBoost (if installed)

The Retro Experience

RetroML brings back the radical vibes of 90s computing:

  • ASCII art banners and loading screens
  • Colorful terminal output with Rich formatting
  • Progress bars that look like old-school installers
  • Nostalgic terminology and messaging

Example Usage

# Run classification pipeline
python retroml.py configs/classification_example.json

# Run regression pipeline  
python retroml.py configs/regression_example.json

# Create your own config and run
python retroml.py configs/my_config.json

Output Files

After running a pipeline, you'll find:

  • best_model.pkl - The trained model (with preprocessing)
  • evaluation_report.txt - Detailed performance metrics
  • Console output with colorful retro styling

Extending RetroML

Want to add new algorithms or preprocessing steps? The modular design makes it easy:

  1. Add new models to _get_default_models()
  2. Extend preprocessing options in preprocess_data()
  3. Add new problem types (clustering, NLP, etc.)

Coming Soon (Roadmap)

  • Clustering algorithms (K-means, DBSCAN)
  • NLP support with transformers
  • Hyperparameter tuning with Optuna
  • Model explainability with SHAP
  • MLflow experiment tracking
  • Web-based UI with Flask/Streamlit

"Dude, this ML pipeline is totally tubular!" - RetroML, probably

Troubleshooting

ModuleNotFoundError: Install requirements with pip install -r requirements.txt

FileNotFoundError: Make sure your dataset path in the config is correct

Performance Issues: Try reducing dataset size or using simpler models for large datasets

License

This project is open source. Feel free to modify and distribute! MIT License


🎮 RetroML - Bringing 90s vibes to modern ML! 🎮 Made with ❤️ by Agile Creative Labs

About

RetroML is a nostalgic, configuration-driven AutoML pipeline that brings a ‘90s flair to modern machine learning workflows. It allows users to run ML classification tasks via JSON configs, with optional support for interactive UIs and demos (e.g., customer churn prediction).

Topics

Resources

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published