Skip to main content

A transparent machine learning framework focused on explainability and diagnostics.

Project description

GlassBoxML

Machine Learning you can actually see.

Python Tests License PyPI

Overview

GlassBoxML is a theory-first machine learning library built from scratch using pure NumPy.

Unlike traditional libraries that prioritize abstraction and convenience, GlassBoxML emphasizes transparency and understanding. Every model exposes:

what it learns how it learns where it fails

This project bridges the gap between mathematical learning theory and practical implementation.

Philosophy

Most ML libraries behave like black boxes:

model.fit(X, y)
# magic happens

GlassBoxML is different:

model.fit(X, y)

model.loss_history
model.gradients
model.assumptions
model.failure_modes
model.generalization_estimate

You don't just train models — you inspect learning itself.

Goals Implement core ML algorithms from first principles Expose optimization behavior during training Make model assumptions explicit Demonstrate overfitting and generalization Provide educational transparency without sacrificing code quality Non-Goals Competing with high-performance libraries like scikit-learn GPU acceleration Massive algorithm coverage Production deployment pipelines

This is a learning and reasoning library, not a benchmarking tool.


Implemented / Planned Algorithms

Core Models

  • Linear Regression
  • Logistic Regression
  • k‑Nearest Neighbors
  • Ridge Regression
  • Lasso Regression
  • Decision Trees
  • Random Forest
  • SVM

Optimization

  • Batch Gradient Descent
  • Stochastic Gradient Descent
  • Momentum

Diagnostics

  • Loss curves
  • Bias–variance indicators
  • Overfitting detection
  • Condition number warnings

Theory Tools

  • Generalization estimates — implemented as model.generalization_estimate, a lightweight, capacity-vs-sample-size heuristic that works without a held-out validation set
  • Capacity indicators
  • Noise sensitivity analysis

Feature Extraction & Pipelines

  • TF-IDF Vectorizer (sparse and dense modes)
  • Sparse Random Projection
  • Pipeline for chaining preprocessing and models

Example

from glassboxml import LinearRegression

model = LinearRegression()
model.fit(X, y)

print(model.loss_history)
print(model.explain())
print(model.diagnose())  # dataset profile, training error, failure modes, and generalization_estimate

Project Structure

glassboxml/
│
├── core/               # optimizers, model selection, Pipeline, base classes
├── models/             # ML algorithms
├── diagnostics/        # overfitting & model insights
├── datasets/           # synthetic data generators
├── metrics/            # evaluation metrics
├── preprocessing/      # scaling and transformations
├── feature_extraction/ # TF-IDF vectorizer
├── tuning/             # hyperparameter search
└── examples/           # demos & experiments

Installation

From PyPI:

pip install glassboxml

From source:

git clone https://github.com/hogwarts-coder10/GlassBox-ML.git
cd GlassBox-ML
pip install -r requirements.txt

Dependencies are intentionally minimal:

  • numpy
  • matplotlib
  • scipy

Why This Project Exists

Modern ML education often teaches usage before understanding.

This creates developers who can:

train models ❌ but not explain, debug, or trust them ❌

GlassBoxML reverses that:

Understand → Implement → Experiment → Trust


Contributing

This project values clarity over cleverness.

Contributions should:

Prefer readable, math-aligned code Include explanation comments Demonstrate failure cases, not just success


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

glassboxml-0.2.0.tar.gz (50.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

glassboxml-0.2.0-py3-none-any.whl (61.7 kB view details)

Uploaded Python 3

File details

Details for the file glassboxml-0.2.0.tar.gz.

File metadata

  • Download URL: glassboxml-0.2.0.tar.gz
  • Upload date:
  • Size: 50.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for glassboxml-0.2.0.tar.gz
Algorithm Hash digest
SHA256 4357ebb5ba809dcda7803ebd89cba8d9bfdd15c4d97ed61eefe4519a41c0cb08
MD5 7f20ad10490922d3172185de15770566
BLAKE2b-256 e897ce07eec35eec942bf58497aa36defad74df7fcb3428f3bb389fed19133a5

See more details on using hashes here.

File details

Details for the file glassboxml-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: glassboxml-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 61.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for glassboxml-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 59af052cba01688e71e8e4c7dcdac981c15d58bb09cb2544df5e9ce829c31167
MD5 2d634b5ea2f9d14dd29338cf3c958ed0
BLAKE2b-256 c0d099c0a47df5036740af7736f4b4185a22e20266136472f977d1d6a1013393

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page