Unified evaluation and explainability framework for ML models
Project description
📊 ExplainEval
ExplainEval is a unified evaluation and explainability framework for machine learning models. It supports classification, regression, NLP, and time series tasks, providing a consistent API to evaluate models, explain predictions, and generate interactive reports.
🚀 Features
- ✅ Easy evaluation for Classification, Regression, NLP, and Time Series models
- 🔍 Built-in explainability using SHAP and LIME
- 📊 Confusion matrix, ROC curves, MAE, RMSE, and more
- 📋 Auto-generated HTML reports for stakeholders
- 🔁 Model comparison interface
- 📦 Compatible with scikit-learn, XGBoost, LightGBM, Transformers
📦 Installation
Install via PyPI:
pip install explaineval
Or install from source:
git clone https://github.com/yourname/explaineval.git
cd explaineval
pip install -e .
🔧 Supported Tasks
| Task Type | Models Supported | Explainability |
|---|---|---|
| Classification | scikit-learn, XGBoost, LightGBM, etc. | SHAP, LIME |
| Regression | Linear, Tree-based, Boosting, etc. | SHAP |
| NLP | Sklearn Pipelines, Transformers | SHAP, Attention |
| Time Series | ARIMA, LSTM, XGBoost, etc. | SHAP |
🧠 Usage Example
🔍 Classification Example
from explaineval.main import EvalX
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = RandomForestClassifier().fit(X_train, y_train)
evalx = EvalX(model, task="classification", background_data=X_train)
evalx.evaluate(X_test, y_test)
evalx.explain(X_test[:5])
evalx.generate_report("classification_report.html")
📈 Regression Example
from sklearn.datasets import load_diabetes
from sklearn.ensemble import GradientBoostingRegressor
X, y = load_diabetes(return_X_y=True)
model = GradientBoostingRegressor().fit(X, y)
evalx = EvalX(model, task="regression", background_data=X)
evalx.evaluate(X, y)
evalx.explain(X[:5])
evalx.generate_report("regression_report.html")
📋 Auto Reports
Call generate_report("filename.html") to save a clean HTML report including:
- Task summary
- Evaluation metrics
- SHAP/LIME explanation visualizations
🧪 Model Comparison
from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier
model1 = RandomForestClassifier().fit(X_train, y_train)
model2 = GradientBoostingClassifier().fit(X_train, y_train)
results = evalx.compare([model1, model2], X_test, y_test)
print(results)
📄 License
MIT License © 2025 Shaheer Zaman Khan
🤝 Contributing
We welcome contributions! To contribute:
- Fork the repo
- Create your feature branch (
git checkout -b feature/YourFeature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin feature/YourFeature) - Open a pull request
📬 Contact
Have questions or feedback? Open an issue or contact us at shaheerzk01@gmail.com
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file explaineval-0.2.3.tar.gz.
File metadata
- Download URL: explaineval-0.2.3.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
182b96d3bc6a69d7fb06cc1a7ea774a55c88d2be8dceefc99ba12d0edc596833
|
|
| MD5 |
925e4ab0d66d6f23c2f01a76a8bcfcf5
|
|
| BLAKE2b-256 |
f3826ebed7475ca436c84f6b4a664ef45489367ff4605cce01282a6a850830e5
|
File details
Details for the file explaineval-0.2.3-py3-none-any.whl.
File metadata
- Download URL: explaineval-0.2.3-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1787dfa8352f3f31f2a75648e2f53a8b3054de2525a857613d16bc6ceb12d48c
|
|
| MD5 |
8f741b53910227d6f242870a13190b25
|
|
| BLAKE2b-256 |
56b7fcf08de70d089b1a2b7d75b9c8f79d165bf3ff529f12dd1c580afac9a5c9
|