DALEX

moDel Agnostic Language for Exploration and eXplanation

https://github.com/modeloriented/dalex

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    3 of 27 committers (11.1%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.7%) to scientific vocabulary

Keywords

black-box dalex data-science explainable-ai explainable-artificial-intelligence explainable-ml explanations explanatory-model-analysis fairness iml interpretability interpretable-machine-learning machine-learning model-visualization predictive-modeling responsible-ai responsible-ml xai

Keywords from Contributors

interactive visual-explanations breakdown shapley mlops
Last synced: 6 months ago · JSON representation

Repository

moDel Agnostic Language for Exploration and eXplanation

Basic Info
  • Host: GitHub
  • Owner: ModelOriented
  • License: gpl-3.0
  • Language: Python
  • Default Branch: master
  • Homepage: https://dalex.drwhy.ai
  • Size: 798 MB
Statistics
  • Stars: 1,435
  • Watchers: 50
  • Forks: 169
  • Open Issues: 25
  • Releases: 4
Topics
black-box dalex data-science explainable-ai explainable-artificial-intelligence explainable-ml explanations explanatory-model-analysis fairness iml interpretability interpretable-machine-learning machine-learning model-visualization predictive-modeling responsible-ai responsible-ml xai
Created about 8 years ago · Last pushed 7 months ago
Metadata Files
Readme Changelog Contributing Funding License

README.md

moDel Agnostic Language for Exploration and eXplanation

R build status Coverage
Status CRAN_Status_Badge Total Downloads DrWhy-eXtrAI

Python-check Supported Python versions PyPI version Downloads

Overview

Unverified black box model is the path to the failure. Opaqueness leads to distrust. Distrust leads to ignoration. Ignoration leads to rejection.

The DALEX package xrays any model and helps to explore and explain its behaviour, helps to understand how complex models are working. The main function explain() creates a wrapper around a predictive model. Wrapped models may then be explored and compared with a collection of local and global explainers. Recent developents from the area of Interpretable Machine Learning/eXplainable Artificial Intelligence.

The philosophy behind DALEX explanations is described in the Explanatory Model Analysis e-book. The DALEX package is a part of DrWhy.AI universe.

If you work with scikit-learn, keras, H2O, tidymodels, xgboost, mlr or mlr3 in R, you may be interested in the DALEXtra package, which is an extension of DALEX with easy to use explain_*() functions for models created in these libraries.

Additional overview of the dalex Python package is available.

Installation

The DALEX R package can be installed from CRAN

r install.packages("DALEX")

The dalex Python package is available on PyPI and conda-forge

```console pip install dalex -U

conda install -c conda-forge dalex ```

Learn more

Machine Learning models are widely used and have various applications in classification or regression tasks. Due to increasing computational power, availability of new data sources and new methods, ML models are more and more complex. Models created with techniques like boosting, bagging of neural networks are true black boxes. It is hard to trace the link between input variables and model outcomes. They are use because of high performance, but lack of interpretability is one of their weakest sides.

In many applications we need to know, understand or prove how input variables are used in the model and what impact do they have on final model prediction. DALEX is a set of tools that help to understand how complex models are working.

Resources

R package

Python package

Talks about DALEX

Citation

If you use DALEX in R or dalex in Python, please cite our JMLR papers:

```html @article{JMLR:v19:18-416, author = {Przemyslaw Biecek}, title = {DALEX: Explainers for Complex Predictive Models in R}, journal = {Journal of Machine Learning Research}, year = {2018}, volume = {19}, number = {84}, pages = {1-5}, url = {http://jmlr.org/papers/v19/18-416.html} }

@article{JMLR:v22:20-1473, author = {Hubert Baniecki and Wojciech Kretowicz and Piotr Piatyszek and Jakub Wisniewski and Przemyslaw Biecek}, title = {dalex: Responsible Machine Learning with Interactive Explainability and Fairness in Python}, journal = {Journal of Machine Learning Research}, year = {2021}, volume = {22}, number = {214}, pages = {1-7}, url = {http://jmlr.org/papers/v22/20-1473.html} } ```

Why

76 years ago Isaac Asimov devised Three Laws of Robotics: 1) a robot may not injure a human being, 2) a robot must obey the orders given it by human beings and 3) A robot must protect its own existence. These laws impact discussion around Ethics of AI. Today’s robots, like cleaning robots, robotic pets or autonomous cars are far from being conscious enough to be under Asimov’s ethics.

Today we are surrounded by complex predictive algorithms used for decision making. Machine learning models are used in health care, politics, education, judiciary and many other areas. Black box predictive models have far larger influence on our lives than physical robots. Yet, applications of such models are left unregulated despite many examples of their potential harmfulness. See Weapons of Math Destruction by Cathy O'Neil for an excellent overview of potential problems.

It's clear that we need to control algorithms that may affect us. Such control is in our civic rights. Here we propose three requirements that any predictive model should fulfill.

  • Prediction's justifications. For every prediction of a model one should be able to understand which variables affect the prediction and how strongly. Variable attribution to final prediction.
  • Prediction's speculations. For every prediction of a model one should be able to understand how the model prediction would change if input variables were changed. Hypothesizing about what-if scenarios.
  • Prediction's validations For every prediction of a model one should be able to verify how strong are evidences that confirm this particular prediction.

There are two ways to comply with these requirements. One is to use only models that fulfill these conditions by design. White-box models like linear regression or decision trees. In many cases the price for transparency is lower performance. The other way is to use approximated explainers – techniques that find only approximated answers, but work for any black box model. Here we present such techniques.

Acknowledgments

Work on this package was financially supported by the NCN Opus grant 2016/21/B/ST6/02176 and NCN Opus grant 2017/27/B/ST6/01307.

Owner

  • Name: Model Oriented
  • Login: ModelOriented
  • Kind: organization
  • Location: MI2DataLab @ Warsaw University of Technology

GitHub Events

Total
  • Issues event: 3
  • Watch event: 67
  • Issue comment event: 5
  • Push event: 2
  • Pull request event: 1
  • Fork event: 3
Last Year
  • Issues event: 3
  • Watch event: 67
  • Issue comment event: 5
  • Push event: 2
  • Pull request event: 1
  • Fork event: 3

Committers

Last synced: 12 months ago

All Time
  • Total Commits: 657
  • Total Committers: 27
  • Avg Commits per committer: 24.333
  • Development Distribution Score (DDS): 0.501
Past Year
  • Commits: 16
  • Committers: 4
  • Avg Commits per committer: 4.0
  • Development Distribution Score (DDS): 0.188
Top Committers
Name Email Commits
Przemysław Biecek p****k@g****m 328
Hubert Baniecki h****i@g****m 173
maksymiuks 3****s 47
Piotr Piątyszek p****p@w****z 30
Wojciech Kretowicz 3****z 17
kevinykuo k****o@g****m 10
Jakub Wiśniewski 4****n 9
Frankie f****4@g****m 7
Logan f****n@k****m 5
Alicja Gosiewska a****a@g****m 5
Artur Żółkowski 5****i 4
Mateusz Staniak m****k@m****l 3
kmatusz k****i@g****m 2
Adrian Stańdo 5****o 2
Cahid Arda c****z@b****r 2
Mateusz Staniak m****k@m****l 2
lionel kusch l****h@g****g 1
danielarifmurphy 4****y 1
Tobias Schmidt r****s@g****m 1
Sam Forward 1****6 1
Sai Krishna s****9@g****m 1
Philip Khor 3****r 1
Mateusz Krzyziński m****i@w****l 1
Marcin Kosiński m****i@g****m 1
Katarzyna Pękala g****t@p****t 1
teng-gao g****g@w****u 1
Emilia Wiśnios 5****s 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 103
  • Total pull requests: 21
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 15 days
  • Total issue authors: 54
  • Total pull request authors: 11
  • Average comments per issue: 3.06
  • Average comments per pull request: 1.1
  • Merged pull requests: 16
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 4
  • Pull requests: 3
  • Average time to close issues: 3 days
  • Average time to close pull requests: about 12 hours
  • Issue authors: 4
  • Pull request authors: 2
  • Average comments per issue: 3.25
  • Average comments per pull request: 1.33
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • hbaniecki (21)
  • Nehagupta90 (10)
  • pbiecek (6)
  • nilslacroix (5)
  • neuideas (3)
  • asheetal (3)
  • danielarifmurphy (2)
  • mayer79 (2)
  • CahidArda (2)
  • Vu5e (2)
  • adrianstando (2)
  • ming-cui (2)
  • MJimitater (2)
  • cpadillia (1)
  • Tato14 (1)
Pull Request Authors
  • mcavs (4)
  • maksymiuks (3)
  • hbaniecki (3)
  • Chip2916 (2)
  • CahidArda (2)
  • lionelkusch (2)
  • piotrpiatyszek (2)
  • danielarifmurphy (2)
  • adrianstando (2)
  • krzyzinskim (1)
  • emiliawisnios (1)
Top Labels
Issue Labels
Python 🐍 (40) R 🐳 (32) question ❔ (30) feature 💡 (23) maintenance 🔨 (13) invalid ❕ (8) long term 📆 (8) bug 💣 (6) documentation 📚 (5) short term ⏰ (3) looking for help (2)
Pull Request Labels
maintenance 🔨 (1) feature 💡 (1) Python 🐍 (1)

Packages

  • Total packages: 6
  • Total downloads:
    • cran 7,741 last-month
    • pypi 27,099 last-month
  • Total docker downloads: 124,132
  • Total dependent packages: 30
    (may contain duplicates)
  • Total dependent repositories: 56
    (may contain duplicates)
  • Total versions: 86
  • Total maintainers: 3
pypi.org: dalex

Responsible Machine Learning in Python

  • Versions: 28
  • Dependent Packages: 3
  • Dependent Repositories: 13
  • Downloads: 27,099 Last month
  • Docker Downloads: 81,028
Rankings
Docker downloads count: 1.2%
Stargazers count: 1.9%
Downloads: 2.2%
Dependent packages count: 2.4%
Average: 2.6%
Forks count: 3.9%
Dependent repos count: 4.0%
Maintainers (2)
Last synced: 6 months ago
proxy.golang.org: github.com/ModelOriented/DALEX
  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.5%
Average: 5.7%
Dependent repos count: 5.9%
Last synced: 6 months ago
proxy.golang.org: github.com/modeloriented/dalex
  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.5%
Average: 5.7%
Dependent repos count: 5.9%
Last synced: 6 months ago
cran.r-project.org: DALEX

moDel Agnostic Language for Exploration and eXplanation

  • Versions: 30
  • Dependent Packages: 26
  • Dependent Repositories: 43
  • Downloads: 7,741 Last month
  • Docker Downloads: 43,104
Rankings
Stargazers count: 0.2%
Forks count: 0.4%
Dependent packages count: 2.9%
Dependent repos count: 3.9%
Downloads: 5.8%
Average: 6.7%
Docker downloads count: 27.4%
Maintainers (1)
Last synced: 6 months ago
conda-forge.org: r-dalex
  • Versions: 18
  • Dependent Packages: 1
  • Dependent Repositories: 0
Rankings
Stargazers count: 10.7%
Forks count: 13.5%
Average: 21.8%
Dependent packages count: 28.8%
Dependent repos count: 34.0%
Last synced: 6 months ago
conda-forge.org: dalex
  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 10.7%
Forks count: 13.5%
Average: 27.3%
Dependent repos count: 34.0%
Dependent packages count: 51.2%
Last synced: 6 months ago