Skip to content

codinnvrends/mlforge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MLForge — Desktop ML Workbench

A native cross-platform desktop application for supervised learning (classification, regression) and unsupervised clustering — with team model sharing via PostgreSQL-backed MLflow.

Requirements

  • Python 3.11+
  • PostgreSQL (optional, for team sharing)

Quick Start

1. Install dependencies

Using uv (recommended — fast):

pip install uv
uv venv
source .venv/bin/activate        # Linux / macOS
.venv\Scripts\activate           # Windows
uv pip install -e .

Or with pip:

python -m venv .venv
source .venv/bin/activate
pip install -e .

2. (Optional) Set up shared MLflow Postgres database

On your team's shared PostgreSQL server:

CREATE DATABASE mlflow_db;
CREATE USER mlforge_user WITH PASSWORD 'admin123';
GRANT ALL PRIVILEGES ON DATABASE mlflow_db TO mlforge_user;

3. Launch

python -m mlforge.main
# or if installed as script:
mlforge

On first launch, go to Settings → MLflow & Team Sharing and enter your PostgreSQL URI:

postgresql+psycopg://mlforge_user:yourpassword@your-server:5432/mlflow_db

All teammates point to the same URI — runs and registered models are shared automatically.


Application Panels

Panel Purpose
Data Source Connect to PostgreSQL, SQLite, CSV or Parquet. Browse tables, write custom SQL, select features and target.
Data Preview Full tabular preview with search, column filter, and null highlighting.
Analysis Feature statistics, distributions, correlation matrix, target balance analysis, data quality warnings.
Training Algorithm picker (10 classifiers, 12 regressors), dynamic hyperparameter sliders, preprocessing config, live training log, metrics, SHAP feature importance, confusion matrix / residual plot, generated Python code.
Clustering 8 clustering algorithms, KMeans elbow/silhouette search, PCA scatter plot, cluster profiling table, export labeled CSV.
Registry Full MLflow run history, side-by-side run comparison, model staging (Staging/Production/Archived), .pkl export.

Supported Algorithms

Classification

Random Forest, XGBoost, LightGBM, Logistic Regression, SVM, KNN, Decision Tree, Extra Trees, AdaBoost, Naive Bayes

Regression

Random Forest, XGBoost, LightGBM, Linear, Ridge, Lasso, ElasticNet, SVR, KNN, Decision Tree, Extra Trees, Gradient Boosting

Clustering

K-Means, DBSCAN, Agglomerative, Gaussian Mixture, OPTICS, Birch, Mean Shift, Spectral Clustering

Project Structure

mlforge/
├── main.py                    # Entry point
├── core/
│   ├── constants.py           # Algorithms, hyperparams, config
│   ├── connection.py          # Postgres/SQLite/CSV/Parquet connector
│   ├── tracker.py             # MLflow wrapper
│   ├── trainer.py             # Supervised training engine
│   ├── clusterer.py           # Clustering engine
│   └── analysis.py            # Feature analysis utilities
├── workers/
│   ├── training_worker.py     # QRunnable for background training
│   └── clustering_worker.py   # QRunnable for background clustering
└── ui/
    ├── main_window.py          # Main window + navigation
    ├── styles.py               # Dark / light Qt stylesheets
    ├── panels/
    │   ├── data_panel.py       # Connection + feature selector
    │   ├── preview_panel.py    # Tabular data preview
    │   ├── analysis_panel.py   # EDA workbench
    │   ├── training_panel.py   # Training console
    │   ├── clustering_panel.py # Clustering workbench
    │   └── registry_panel.py  # Model registry
    └── dialogs/
        ├── connection_dialog.py
        └── settings_dialog.py

Packaging for Distribution

Windows (.exe)

pip install pyinstaller
pyinstaller --onefile --windowed --name MLForge mlforge/main.py

macOS (.app)

pyinstaller --onefile --windowed --name MLForge mlforge/main.py

Linux (AppImage)

Use pyinstaller then wrap with appimagetool.

Team Workflow

  1. DBA creates mlflow_db on shared Postgres server
  2. Each team member installs MLForge, enters the same postgresql+psycopg://... URI in Settings
  3. Team member A trains a model → it appears in everyone's Registry panel
  4. Team member B opens Registry, promotes it to Production stage
  5. Everyone can export .pkl from the Registry for deployment

Tech Stack

Layer Libraries
UI PySide6 (Qt6), pyqtgraph
Data pandas, pyarrow, SQLAlchemy, psycopg3
ML scikit-learn, xgboost, lightgbm, optuna
Clustering scikit-learn (KMeans, DBSCAN, etc.)
Explainability shap, scikit-plot
Tracking MLflow (Postgres backend)
Packaging PyInstaller, uv

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages