Skip to content

Latest commit

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date

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:

CREATEDATABASEmlflow_db;
CREATEUSERmlforge_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

PanelPurpose
Data SourceConnect to PostgreSQL, SQLite, CSV or Parquet. Browse tables, write custom SQL, select features and target.
Data PreviewFull tabular preview with search, column filter, and null highlighting.
AnalysisFeature statistics, distributions, correlation matrix, target balance analysis, data quality warnings.
TrainingAlgorithm picker (10 classifiers, 12 regressors), dynamic hyperparameter sliders, preprocessing config, live training log, metrics, SHAP feature importance, confusion matrix / residual plot, generated Python code.
Clustering8 clustering algorithms, KMeans elbow/silhouette search, PCA scatter plot, cluster profiling table, export labeled CSV.
RegistryFull 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

LayerLibraries
UIPySide6 (Qt6), pyqtgraph
Datapandas, pyarrow, SQLAlchemy, psycopg3
MLscikit-learn, xgboost, lightgbm, optuna
Clusteringscikit-learn (KMeans, DBSCAN, etc.)
Explainabilityshap, scikit-plot
TrackingMLflow (Postgres backend)
PackagingPyInstaller, uv

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages