Version 1.2.0 β’ 68+ Algorithms β’ 100% Python β’ Scikit-learn Compatible
π Documentation β’ π Quick Start β’ π¦ Installation β’ π€ Contributing
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.
- π§ 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
# 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]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}")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})")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}")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}")- 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
- K-Means (Standard & MiniBatch)
- DBSCAN (Density-based)
- Agglomerative (4 linkage methods)
- Spectral (RBF & k-NN affinity)
- MeanShift (Kernel density)
- Gaussian Mixture (Probabilistic EM)
- PCA, TruncatedSVD, NMF
- t-SNE, Isomap, LocallyLinearEmbedding
- Scalers: StandardScaler, MinMaxScaler, RobustScaler
- Imputers: SimpleImputer, KNNImputer
- Encoders: LabelEncoder, OneHotEncoder, OrdinalEncoder
- Selection: VarianceThreshold, SelectKBest, RFE
- AutoClassifier, AutoRegressor
- permutation_importance, partial_dependence
- plot_partial_dependence, get_feature_importance
| 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 |
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
- v1.1.0 - Performance optimizations with FastAlloc
- v1.0.0 - Initial stable release
git clone https://github.com/tiverse/eclipsera.git
cd eclipsera
pip install -e ".[dev,perf]"
pytest tests/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
This project is licensed under the MIT License - see the LICENSE file for details.
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}
}| π― 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
β If you find Eclipsera useful, consider giving it a star! β