Skip to main content

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:

  1. Fork the repo
  2. Create your feature branch (git checkout -b feature/YourFeature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin feature/YourFeature)
  5. Open a pull request

📬 Contact

Have questions or feedback? Open an issue or contact us at shaheerzk01@gmail.com

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

explaineval-0.2.2.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

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

explaineval-0.2.2-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file explaineval-0.2.2.tar.gz.

File metadata

  • Download URL: explaineval-0.2.2.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for explaineval-0.2.2.tar.gz
Algorithm Hash digest
SHA256 aeeefe0cc4d82e49d2c08a0cb0a79e001760a6c61f086ccfd7f936cccab185d9
MD5 c937e278df2e51976e79353ce6590763
BLAKE2b-256 c8072cdd7e61b97124d16390d78c4b29a4b220d2b93552209261063a818325e9

See more details on using hashes here.

File details

Details for the file explaineval-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: explaineval-0.2.2-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

Hashes for explaineval-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5f0524b5b837e92922458ed5dae927d86fa92b34f16dd5cd406230f5f2a3fb06
MD5 d0ad8d181e24ced971963035b5230701
BLAKE2b-256 2fc4abf693be3212a2abdbf4e23006f9b83ae5957da2d4e5713c090c0d00ae9c

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