Skip to main content

A comprehensive machine learning framework with 68 algorithms spanning classical ML, clustering, AutoML, and explainability

Project description

๐ŸŒ’ Eclipsera

Modern Machine Learning, Built from Scratch

PyPI version PyPI - Downloads Python 3.11+ License: MIT Build Coverage

Version 1.2.0 โ€ข 68+ Algorithms โ€ข 100% Python โ€ข Scikit-learn Compatible

๐Ÿ“– Documentation โ€ข ๐Ÿš€ Quick Start โ€ข ๐Ÿ“ฆ Installation โ€ข ๐Ÿค Contributing


๐ŸŽฏ About Eclipsera

Eclipsera is a comprehensive machine learning framework built from the ground up in Python. Designed for researchers, developers, and data scientists who need a unified, powerful, and transparent ML ecosystem without the complexity of heavy dependencies.

โœจ Key Highlights

  • ๐Ÿง  68+ Algorithms - From classical ML to modern AutoML
  • ๐Ÿ”ง Drop-in Compatible - 100% Scikit-learn API compatibility
  • โšก Performance Optimized - FastAlloc object pooling for 5-15% speedup
  • ๐Ÿ›ก๏ธ Production Ready - 88% test coverage with 618 passing tests
  • ๐Ÿ” Explainable AI - Built-in model interpretation tools
  • ๐ŸŽจ Modern Python - Full type hints, Python 3.11+ support

๐Ÿš€ Quick Start

Installation

# Core package
pip install eclipsera

# With performance optimizations (recommended)
pip install eclipsera[perf]

# For plotting and visualization
pip install eclipsera[plot]

# Everything
pip install eclipsera[all]

First Steps

import numpy as np
from eclipsera.ml import RandomForestClassifier
from eclipsera.model_selection import train_test_split

# Generate sample data
X = np.random.randn(150, 4)
y = np.random.randint(0, 3, 150)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# Train and evaluate
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
score = model.score(X_test, y_test)

print(f"โœ… Accuracy: {score:.3f}")

๐ŸŒŸ Advanced Features

๐Ÿค– AutoML - Automatic Algorithm Selection

from eclipsera.automl import AutoClassifier

# Let Eclipsera find the best algorithm
auto_clf = AutoClassifier(cv=5, verbose=1)
auto_clf.fit(X_train, y_train)

print(f"๐Ÿ† Best: {auto_clf.best_algorithm_} (score: {auto_clf.best_score_:.4f})")

๐Ÿ” Model Explainability

from eclipsera.explainability import permutation_importance

# Understand what drives your model
result = permutation_importance(model, X_test, y_test, n_repeats=10)
for i, importance in enumerate(result['importances_mean']):
    print(f"๐Ÿ“Š Feature {i}: {importance:.4f}")

๐Ÿ”— Complete ML Pipeline

from eclipsera.pipeline import Pipeline
from eclipsera.preprocessing import StandardScaler
from eclipsera.feature_selection import SelectKBest
from eclipsera.decomposition import PCA
from eclipsera.ml import LogisticRegression

# Build sophisticated workflows
pipe = Pipeline([
    ('scaler', StandardScaler()),
    ('selector', SelectKBest(k=20)),
    ('pca', PCA(n_components=10)),
    ('classifier', LogisticRegression())
])

pipe.fit(X_train, y_train)
print(f"๐ŸŽฏ Pipeline Score: {pipe.score(X_test, y_test):.4f}")

๐Ÿ“š Algorithm Library

๐ŸŽ“ Supervised Learning (28 Algorithms)

  • Linear Models: LogisticRegression, LinearRegression, Ridge, Lasso
  • Tree-Based: DecisionTree, RandomForest, GradientBoosting
  • Support Vector Machines: SVC, SVR (linear, rbf, poly, sigmoid)
  • Naive Bayes: GaussianNB, MultinomialNB, BernoulliNB
  • Nearest Neighbors: KNeighborsClassifier, KNeighborsRegressor
  • Neural Networks: MLPClassifier, MLPRegressor

๐ŸŽฏ Clustering (7 Methods)

  • K-Means (Standard & MiniBatch)
  • DBSCAN (Density-based)
  • Agglomerative (4 linkage methods)
  • Spectral (RBF & k-NN affinity)
  • MeanShift (Kernel density)
  • Gaussian Mixture (Probabilistic EM)

๐Ÿ“‰ Dimensionality Reduction

  • PCA, TruncatedSVD, NMF

๐Ÿ—บ๏ธ Manifold Learning

  • t-SNE, Isomap, LocallyLinearEmbedding

โš™๏ธ Preprocessing & Feature Selection

  • Scalers: StandardScaler, MinMaxScaler, RobustScaler
  • Imputers: SimpleImputer, KNNImputer
  • Encoders: LabelEncoder, OneHotEncoder, OrdinalEncoder
  • Selection: VarianceThreshold, SelectKBest, RFE

๐Ÿค– AutoML & Explainability

  • AutoClassifier, AutoRegressor
  • permutation_importance, partial_dependence
  • plot_partial_dependence, get_feature_importance

๐Ÿ“Š Project Metrics

Metric Value
๐ŸŽฏ Total Algorithms 68+
๐Ÿ“ Lines of Code ~10,500
โœ… Test Coverage 88%
๐Ÿงช Tests Passing 618/618
๐Ÿ“ฆ Python Version 3.11+
๐Ÿ”— Dependencies NumPy, SciPy, Pandas, Joblib

๐Ÿ”„ Version History

๐Ÿ›ก๏ธ Version 1.2.0 - Security Hardening (Current)

Security & Code Quality Focus

  • โœ… Security hardening with pickle deserialization controls
  • โœ… GitHub Actions supply chain hardening (pinned SHAs)
  • โœ… Added Bandit and detect-secrets security scanning
  • โœ… Fixed 522 flake8 linting errors
  • โœ… SBOM generation for supply chain transparency
  • โœ… Enhanced CLI security with confirmation gates

๐Ÿ“ˆ Previous Versions

  • v1.1.0 - Performance optimizations with FastAlloc
  • v1.0.0 - Initial stable release

๐Ÿ“‹ Full Changelog


๐Ÿ› ๏ธ Development

Setup for Contributors

git clone https://github.com/tiverse/eclipsera.git
cd eclipsera
pip install -e ".[dev,perf]"
pytest tests/

Contributing Guidelines

We welcome all contributions! Here's how you can help:

  • ๐Ÿ› Report bugs - Found an issue? Open an issue
  • โœจ Request features - Have an idea? Share it
  • ๐Ÿ“ Improve docs - Help others understand Eclipsera
  • ๐Ÿงช Add tests - Improve our coverage
  • ๐Ÿ’ป Write code - Add algorithms or optimize existing ones

๐Ÿ“„ License & Citation

License

This project is licensed under the MIT License - see the LICENSE file for details.

Citation

If you use Eclipsera in your research, please cite:

@software{eclipsera2024,
  title = {Eclipsera: A Modern Machine Learning Framework},
  author = {Roy, Eshan},
  year = {2024},
  url = {https://github.com/tiverse/eclipsera},
  version = {1.2.0}
}

๐Ÿ”— Useful Links

Documentation Performance Guide Roadmap Issues


๐ŸŒŸ Why Eclipsera?

๐ŸŽฏ Comprehensive ๐Ÿ”ง Compatible ๐Ÿ›ก๏ธ Reliable
68 algorithms covering all major ML workflows 100% Scikit-learn compatible API 88% test coverage with 618 passing tests
๐ŸŽจ Modern โšก Lightweight ๐Ÿ” Transparent
Built for Python 3.11+ with complete type hints Minimal dependencies - only NumPy, SciPy, Pandas, Joblib Clear, documented implementations

Built with โค๏ธ by Eshan Roy

Empowering the next generation of machine learning applications

Made with Love Python Open Source

โญ If you find Eclipsera useful, consider giving it a star! โญ

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

eclipsera-1.2.0.tar.gz (127.7 kB view details)

Uploaded Source

Built Distribution

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

eclipsera-1.2.0-py3-none-any.whl (115.8 kB view details)

Uploaded Python 3

File details

Details for the file eclipsera-1.2.0.tar.gz.

File metadata

  • Download URL: eclipsera-1.2.0.tar.gz
  • Upload date:
  • Size: 127.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for eclipsera-1.2.0.tar.gz
Algorithm Hash digest
SHA256 40dc7f1fc15d858eff50129b9f242b598bc26f15e55af3df0743d9a2ffa8438a
MD5 405abdc5a868c682b78469a9a90de536
BLAKE2b-256 5fb2e19c9a35275b11efbb89cc5085c8dad30ccc63c5a98eed7b918d7efa475b

See more details on using hashes here.

File details

Details for the file eclipsera-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: eclipsera-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 115.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for eclipsera-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2311e511a63583ec702b04f5198b00b0bb2bcc529a1ca49938ddd969cb46d1b5
MD5 fd42d1e66c8bed89701ed4446811ad72
BLAKE2b-256 51d21dc688612eb800166ef6a2fc3a62bc1e13bfd6a39b13c9a3b4437516b4a0

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