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.1.3.tar.gz (7.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.1.3-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: explaineval-0.1.3.tar.gz
  • Upload date:
  • Size: 7.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.1.3.tar.gz
Algorithm Hash digest
SHA256 235c4ba8fa1e2fc0999b5b4c1d74785fdbcf21ca6fef6bfe62eff4a9c0eb5dcd
MD5 528c10d1c2f33e975a2fb1d3907088fb
BLAKE2b-256 c4513ae6181d6c552dc453c7ec1380beed6d8f03709c862adaeed70a976d4076

See more details on using hashes here.

File details

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

File metadata

  • Download URL: explaineval-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 9.1 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.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e2b132ddc93e2b2b23f8b0cf176d3db5b3675c5ed05f778a2911c5289a42e7d3
MD5 3ebb2b3878689180c4b05e2fe10a64ea
BLAKE2b-256 ea49c3eca3e3b0e74f0de865d44013b22eaf8d529cc9f6ab76c0ae9091e97cee

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