# π Eclipsera
**A Modern Machine Learning Framework for Python**
[](https://pypi.org/project/eclipsera/)
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[]()
[]()
---
## π Overview
**Eclipsera** is a comprehensive machine learning framework built from scratch with 68 algorithms spanning classical ML, clustering, dimensionality reduction, manifold learning, AutoML, and explainability.
**Features:**
- π€ **AutoML** β Automatic algorithm selection and optimization
- π **Explainability** β Permutation importance, partial dependence, feature importance
- π **Supervised Learning** β 28 classification and regression algorithms
- π― **Clustering** β 7 algorithms including K-Means, DBSCAN, Spectral, Gaussian Mixture
- π **Dimensionality Reduction** β PCA, NMF, TruncatedSVD
- πΊοΈ **Manifold Learning** β t-SNE, Isomap, LLE
- βοΈ **Feature Selection** β Variance threshold, univariate selection, RFE
- π§ **Preprocessing** β Scalers, imputers, encoders
- π¬ **Model Selection** β Cross-validation, hyperparameter search
- π **Pipelines** β Composable ML workflows
---
## β‘ Quick Start
```python
import numpy as np
from eclipsera.ml import RandomForestClassifier
from eclipsera.model_selection import train_test_split
# Load 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 model
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
# Evaluate
score = model.score(X_test, y_test)
print(f"Accuracy: {score:.3f}")
```
### AutoML Example
```python
from eclipsera.automl import AutoClassifier
# Automatically select best algorithm
auto_clf = AutoClassifier(cv=5, verbose=1)
auto_clf.fit(X_train, y_train)
print(f"Best algorithm: {auto_clf.best_algorithm_}")
print(f"Best score: {auto_clf.best_score_:.4f}")
# Use like any classifier
y_pred = auto_clf.predict(X_test)
```
### Explainability Example
```python
from eclipsera.explainability import permutation_importance
from eclipsera.ml import RandomForestClassifier
clf = RandomForestClassifier(n_estimators=50)
clf.fit(X_train, y_train)
# Compute feature importance
result = permutation_importance(clf, X_test, y_test, n_repeats=10)
for i in range(X.shape[1]):
print(f"Feature {i}: {result['importances_mean'][i]:.4f}")
```
---
## π¦ Installation
```bash
pip install eclipsera
```
**Requirements:**
- Python 3.8+
- NumPy
- SciPy
- matplotlib (optional, for plotting)
**From source:**
```bash
git clone https://github.com/tiverse/eclipsera.git
cd eclipsera
pip install -e .
```
---
## π― Complete Feature List
### Supervised Learning (28 algorithms)
**Linear Models:**
- LogisticRegression, LinearRegression
- Ridge, Lasso
**Tree-Based Models:**
- DecisionTreeClassifier, DecisionTreeRegressor
- RandomForestClassifier, RandomForestRegressor
- GradientBoostingClassifier, GradientBoostingRegressor
**Support Vector Machines:**
- SVC (kernels: linear, rbf, poly, sigmoid)
- SVR
**Naive Bayes:**
- GaussianNB, MultinomialNB, BernoulliNB
**Nearest Neighbors:**
- KNeighborsClassifier, KNeighborsRegressor
**Neural Networks:**
- MLPClassifier, MLPRegressor
### Clustering (7 algorithms)
- KMeans, MiniBatchKMeans
- DBSCAN
- AgglomerativeClustering (4 linkage methods)
- SpectralClustering (RBF & k-NN affinity)
- MeanShift
- GaussianMixture (probabilistic)
### Dimensionality Reduction (3 algorithms)
- PCA (Principal Component Analysis)
- TruncatedSVD
- NMF (Non-negative Matrix Factorization)
### Manifold Learning (3 algorithms)
- TSNE (t-distributed Stochastic Neighbor Embedding)
- Isomap (Isometric Mapping)
- LocallyLinearEmbedding (LLE)
### Feature Selection (3 tools)
- VarianceThreshold
- SelectKBest (with f_classif, chi2)
- RFE (Recursive Feature Elimination)
### Preprocessing (10 tools)
- StandardScaler, MinMaxScaler, RobustScaler
- SimpleImputer (4 strategies)
- KNNImputer
- LabelEncoder, OneHotEncoder, OrdinalEncoder
### AutoML (2 tools)
- AutoClassifier β Automatic classification
- AutoRegressor β Automatic regression
### Explainability (4 tools)
- permutation_importance β Feature importance
- partial_dependence β Feature effect analysis
- plot_partial_dependence β Visualization
- get_feature_importance β Universal extraction
### Model Selection (8 utilities)
- train_test_split
- KFold, StratifiedKFold
- cross_val_score, cross_validate
- GridSearchCV, RandomizedSearchCV
### Pipeline (3 tools)
- Pipeline
- FeatureUnion
- make_pipeline
---
## π Usage Examples
### Complete Pipeline
```python
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
pipe = Pipeline([
('scaler', StandardScaler()),
('selector', SelectKBest(k=20)),
('pca', PCA(n_components=10)),
('clf', LogisticRegression())
])
pipe.fit(X_train, y_train)
score = pipe.score(X_test, y_test)
```
### Clustering
```python
from eclipsera.cluster import GaussianMixture
# Probabilistic clustering
gmm = GaussianMixture(n_components=3, random_state=42)
labels = gmm.fit_predict(X)
probabilities = gmm.predict_proba(X)
```
### Manifold Learning
```python
from eclipsera.manifold import TSNE
# Non-linear dimensionality reduction
tsne = TSNE(n_components=2, perplexity=30)
X_embedded = tsne.fit_transform(X_high_dim)
```
### Hyperparameter Optimization
```python
from eclipsera.model_selection import GridSearchCV
from eclipsera.ml import RandomForestClassifier
param_grid = {
'n_estimators': [50, 100, 200],
'max_depth': [5, 10, None],
}
grid = GridSearchCV(RandomForestClassifier(), param_grid, cv=5)
grid.fit(X_train, y_train)
print(f"Best params: {grid.best_params_}")
print(f"Best score: {grid.best_score_:.4f}")
```
---
## π Project Statistics
- **Total Features**: 68 algorithms/tools
- **Lines of Code**: ~10,500
- **Test Coverage**: 88%
- **Total Tests**: 618 (passing)
- **Modules**: 12
- **Python Version**: 3.8+
## π€ Contributing
Contributions are welcome! Areas of interest:
- Additional algorithms
- Performance optimizations
- Documentation improvements
- Bug fixes
- Example notebooks
### Development Setup
```bash
git clone https://github.com/tiverse/eclipsera.git
cd eclipsera
pip install -e .
pytest tests/
```
---
## π License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
---
## π Citation
If you use Eclipsera in your research, please cite:
```bibtex
@software{eclipsera2024,
title = {Eclipsera: A Modern Machine Learning Framework},
author = {Roy, Eshan},
year = {2024},
url = {https://github.com/tiverse/eclipsera},
version = {1.1.0}
}
```
---
## π Links
- **Homepage**: [https://github.com/tiverse/eclipsera](https://github.com/tiverse/eclipsera)
- **Issues**: [https://github.com/tiverse/eclipsera/issues](https://github.com/tiverse/eclipsera/issues)
## π Why Eclipsera?
- **Comprehensive**: 68 algorithms covering all major ML workflows
- **100% Scikit-learn Compatible**: Drop-in replacement for most use cases
- **Type-Safe**: Complete type hints throughout
- **Well-Documented**: Google-style docstrings for all APIs
- **Tested**: 88% test coverage with 618 passing tests
- **Modern**: Built for Python 3.8+ with best practices
- **Minimal Dependencies**: Only NumPy and SciPy required
- **Extensible**: Easy to add custom estimators
---
**Built with precision by Eshan Roy**
Raw data
{
"_id": null,
"home_page": null,
"name": "eclipsera",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "Eshan Roy <eshanized@proton.me>",
"keywords": "machine-learning, automl, explainability, clustering, scikit-learn, dimensionality-reduction, manifold-learning, feature-selection, preprocessing, classification, regression",
"author": null,
"author_email": "Eshan Roy <eshanized@proton.me>",
"download_url": "https://files.pythonhosted.org/packages/e1/61/c7a3d3f4ffd1ea87aaa55603abeff91f710c631c4f59feffde79db2e3596/eclipsera-1.1.0.tar.gz",
"platform": null,
"description": "# \ud83c\udf12 Eclipsera\n\n**A Modern Machine Learning Framework for Python**\n\n[](https://pypi.org/project/eclipsera/)\n[](https://www.python.org/downloads/)\n[](https://opensource.org/licenses/MIT)\n[]()\n[]()\n\n---\n\n## \ud83d\ude80 Overview\n\n**Eclipsera** is a comprehensive machine learning framework built from scratch with 68 algorithms spanning classical ML, clustering, dimensionality reduction, manifold learning, AutoML, and explainability.\n\n**Features:**\n- \ud83e\udd16 **AutoML** \u2014 Automatic algorithm selection and optimization\n- \ud83d\udd0d **Explainability** \u2014 Permutation importance, partial dependence, feature importance\n- \ud83d\udcca **Supervised Learning** \u2014 28 classification and regression algorithms\n- \ud83c\udfaf **Clustering** \u2014 7 algorithms including K-Means, DBSCAN, Spectral, Gaussian Mixture\n- \ud83d\udcc9 **Dimensionality Reduction** \u2014 PCA, NMF, TruncatedSVD\n- \ud83d\uddfa\ufe0f **Manifold Learning** \u2014 t-SNE, Isomap, LLE\n- \u2699\ufe0f **Feature Selection** \u2014 Variance threshold, univariate selection, RFE\n- \ud83d\udd27 **Preprocessing** \u2014 Scalers, imputers, encoders\n- \ud83d\udd2c **Model Selection** \u2014 Cross-validation, hyperparameter search\n- \ud83d\udd17 **Pipelines** \u2014 Composable ML workflows\n\n---\n\n## \u26a1 Quick Start\n\n```python\nimport numpy as np\nfrom eclipsera.ml import RandomForestClassifier\nfrom eclipsera.model_selection import train_test_split\n\n# Load data\nX = np.random.randn(150, 4)\ny = np.random.randint(0, 3, 150)\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)\n\n# Train model\nmodel = RandomForestClassifier(n_estimators=100, random_state=42)\nmodel.fit(X_train, y_train)\n\n# Evaluate\nscore = model.score(X_test, y_test)\nprint(f\"Accuracy: {score:.3f}\")\n```\n\n### AutoML Example\n\n```python\nfrom eclipsera.automl import AutoClassifier\n\n# Automatically select best algorithm\nauto_clf = AutoClassifier(cv=5, verbose=1)\nauto_clf.fit(X_train, y_train)\n\nprint(f\"Best algorithm: {auto_clf.best_algorithm_}\")\nprint(f\"Best score: {auto_clf.best_score_:.4f}\")\n\n# Use like any classifier\ny_pred = auto_clf.predict(X_test)\n```\n\n### Explainability Example\n\n```python\nfrom eclipsera.explainability import permutation_importance\nfrom eclipsera.ml import RandomForestClassifier\n\nclf = RandomForestClassifier(n_estimators=50)\nclf.fit(X_train, y_train)\n\n# Compute feature importance\nresult = permutation_importance(clf, X_test, y_test, n_repeats=10)\n\nfor i in range(X.shape[1]):\n print(f\"Feature {i}: {result['importances_mean'][i]:.4f}\")\n```\n\n---\n\n## \ud83d\udce6 Installation\n\n```bash\npip install eclipsera\n```\n\n**Requirements:**\n- Python 3.8+\n- NumPy\n- SciPy\n- matplotlib (optional, for plotting)\n\n**From source:**\n```bash\ngit clone https://github.com/tiverse/eclipsera.git\ncd eclipsera\npip install -e .\n```\n\n---\n\n## \ud83c\udfaf Complete Feature List\n\n### Supervised Learning (28 algorithms)\n\n**Linear Models:**\n- LogisticRegression, LinearRegression\n- Ridge, Lasso\n\n**Tree-Based Models:**\n- DecisionTreeClassifier, DecisionTreeRegressor\n- RandomForestClassifier, RandomForestRegressor\n- GradientBoostingClassifier, GradientBoostingRegressor\n\n**Support Vector Machines:**\n- SVC (kernels: linear, rbf, poly, sigmoid)\n- SVR\n\n**Naive Bayes:**\n- GaussianNB, MultinomialNB, BernoulliNB\n\n**Nearest Neighbors:**\n- KNeighborsClassifier, KNeighborsRegressor\n\n**Neural Networks:**\n- MLPClassifier, MLPRegressor\n\n### Clustering (7 algorithms)\n- KMeans, MiniBatchKMeans\n- DBSCAN\n- AgglomerativeClustering (4 linkage methods)\n- SpectralClustering (RBF & k-NN affinity)\n- MeanShift\n- GaussianMixture (probabilistic)\n\n### Dimensionality Reduction (3 algorithms)\n- PCA (Principal Component Analysis)\n- TruncatedSVD\n- NMF (Non-negative Matrix Factorization)\n\n### Manifold Learning (3 algorithms)\n- TSNE (t-distributed Stochastic Neighbor Embedding)\n- Isomap (Isometric Mapping)\n- LocallyLinearEmbedding (LLE)\n\n### Feature Selection (3 tools)\n- VarianceThreshold\n- SelectKBest (with f_classif, chi2)\n- RFE (Recursive Feature Elimination)\n\n### Preprocessing (10 tools)\n- StandardScaler, MinMaxScaler, RobustScaler\n- SimpleImputer (4 strategies)\n- KNNImputer\n- LabelEncoder, OneHotEncoder, OrdinalEncoder\n\n### AutoML (2 tools)\n- AutoClassifier \u2014 Automatic classification\n- AutoRegressor \u2014 Automatic regression\n\n### Explainability (4 tools)\n- permutation_importance \u2014 Feature importance\n- partial_dependence \u2014 Feature effect analysis\n- plot_partial_dependence \u2014 Visualization\n- get_feature_importance \u2014 Universal extraction\n\n### Model Selection (8 utilities)\n- train_test_split\n- KFold, StratifiedKFold\n- cross_val_score, cross_validate\n- GridSearchCV, RandomizedSearchCV\n\n### Pipeline (3 tools)\n- Pipeline\n- FeatureUnion\n- make_pipeline\n\n---\n\n## \ud83d\udcda Usage Examples\n\n### Complete Pipeline\n\n```python\nfrom eclipsera.pipeline import Pipeline\nfrom eclipsera.preprocessing import StandardScaler\nfrom eclipsera.feature_selection import SelectKBest\nfrom eclipsera.decomposition import PCA\nfrom eclipsera.ml import LogisticRegression\n\npipe = Pipeline([\n ('scaler', StandardScaler()),\n ('selector', SelectKBest(k=20)),\n ('pca', PCA(n_components=10)),\n ('clf', LogisticRegression())\n])\n\npipe.fit(X_train, y_train)\nscore = pipe.score(X_test, y_test)\n```\n\n### Clustering\n\n```python\nfrom eclipsera.cluster import GaussianMixture\n\n# Probabilistic clustering\ngmm = GaussianMixture(n_components=3, random_state=42)\nlabels = gmm.fit_predict(X)\nprobabilities = gmm.predict_proba(X)\n```\n\n### Manifold Learning\n\n```python\nfrom eclipsera.manifold import TSNE\n\n# Non-linear dimensionality reduction\ntsne = TSNE(n_components=2, perplexity=30)\nX_embedded = tsne.fit_transform(X_high_dim)\n```\n\n### Hyperparameter Optimization\n\n```python\nfrom eclipsera.model_selection import GridSearchCV\nfrom eclipsera.ml import RandomForestClassifier\n\nparam_grid = {\n 'n_estimators': [50, 100, 200],\n 'max_depth': [5, 10, None],\n}\n\ngrid = GridSearchCV(RandomForestClassifier(), param_grid, cv=5)\ngrid.fit(X_train, y_train)\n\nprint(f\"Best params: {grid.best_params_}\")\nprint(f\"Best score: {grid.best_score_:.4f}\")\n```\n\n---\n\n## \ud83d\udcca Project Statistics\n\n- **Total Features**: 68 algorithms/tools\n- **Lines of Code**: ~10,500\n- **Test Coverage**: 88%\n- **Total Tests**: 618 (passing)\n- **Modules**: 12\n- **Python Version**: 3.8+\n\n## \ud83e\udd1d Contributing\n\nContributions are welcome! Areas of interest:\n- Additional algorithms\n- Performance optimizations\n- Documentation improvements\n- Bug fixes\n- Example notebooks\n\n### Development Setup\n```bash\ngit clone https://github.com/tiverse/eclipsera.git\ncd eclipsera\npip install -e .\npytest tests/\n```\n\n---\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## \ud83d\ude4f Citation\n\nIf you use Eclipsera in your research, please cite:\n\n```bibtex\n@software{eclipsera2024,\n title = {Eclipsera: A Modern Machine Learning Framework},\n author = {Roy, Eshan},\n year = {2024},\n url = {https://github.com/tiverse/eclipsera},\n version = {1.1.0}\n}\n```\n\n---\n\n## \ud83d\udd17 Links\n\n- **Homepage**: [https://github.com/tiverse/eclipsera](https://github.com/tiverse/eclipsera)\n- **Issues**: [https://github.com/tiverse/eclipsera/issues](https://github.com/tiverse/eclipsera/issues)\n\n## \ud83c\udf1f Why Eclipsera?\n\n- **Comprehensive**: 68 algorithms covering all major ML workflows\n- **100% Scikit-learn Compatible**: Drop-in replacement for most use cases\n- **Type-Safe**: Complete type hints throughout\n- **Well-Documented**: Google-style docstrings for all APIs\n- **Tested**: 88% test coverage with 618 passing tests\n- **Modern**: Built for Python 3.8+ with best practices\n- **Minimal Dependencies**: Only NumPy and SciPy required\n- **Extensible**: Easy to add custom estimators\n\n---\n\n**Built with precision by Eshan Roy**\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A comprehensive machine learning framework with 68 algorithms spanning classical ML, clustering, AutoML, and explainability",
"version": "1.1.0",
"project_urls": {
"Changelog": "https://github.com/TIVerse/eclipsera/blob/master/docs/changelog.rst",
"Homepage": "https://github.com/TIVerse/eclipsera",
"Issues": "https://github.com/TIVerse/eclipsera/issues",
"Repository": "https://github.com/TIVerse/eclipsera"
},
"split_keywords": [
"machine-learning",
" automl",
" explainability",
" clustering",
" scikit-learn",
" dimensionality-reduction",
" manifold-learning",
" feature-selection",
" preprocessing",
" classification",
" regression"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "91efee9f2c2f421a61920a24548659238a9ad354359621c2204e5b372c522d82",
"md5": "37630ba390ceaab2a0e9664cabaada47",
"sha256": "31c1dc951633cb5355a5ea0378c53a8868f16ddcdc1e4764fcdd743bb79294bf"
},
"downloads": -1,
"filename": "eclipsera-1.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "37630ba390ceaab2a0e9664cabaada47",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 113298,
"upload_time": "2025-10-19T21:21:03",
"upload_time_iso_8601": "2025-10-19T21:21:03.088048Z",
"url": "https://files.pythonhosted.org/packages/91/ef/ee9f2c2f421a61920a24548659238a9ad354359621c2204e5b372c522d82/eclipsera-1.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e161c7a3d3f4ffd1ea87aaa55603abeff91f710c631c4f59feffde79db2e3596",
"md5": "d0d19cb7912460b814ec67d85f17430f",
"sha256": "5a8c6e141fea61bedef688ca5d975df33616c8d53bf8c90c866375af611979b7"
},
"downloads": -1,
"filename": "eclipsera-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "d0d19cb7912460b814ec67d85f17430f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 122559,
"upload_time": "2025-10-19T21:21:06",
"upload_time_iso_8601": "2025-10-19T21:21:06.447765Z",
"url": "https://files.pythonhosted.org/packages/e1/61/c7a3d3f4ffd1ea87aaa55603abeff91f710c631c4f59feffde79db2e3596/eclipsera-1.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-19 21:21:06",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "TIVerse",
"github_project": "eclipsera",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "eclipsera"
}