

GitHub - microsoft/interpret: Fit interpretable models. Explain blackbox machine...
source link: https://github.com/microsoft/interpret
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md
InterpretML - Alpha Release
Equal contributions: Samuel Jenkins & Harsha Nori & Paul Koch & Rich Caruana
In the beginning machines learned in darkness, and data scientists struggled in the void to explain them.
Let there be light.
InterpretML is an open-source package for training interpretable models and explaining blackbox systems. Interpretability is essential for:
- Model debugging - Why did my model make this mistake?
- Detecting bias - Does my model discriminate?
- Human-AI cooperation - How can I understand and trust the model's decisions?
- Regulatory compliance - Does my model satisfy legal requirements?
- High-risk applications - Healthcare, finance, judicial, ...
Historically, the most intelligible models were not very accurate, and the most accurate models were not intelligible. Microsoft Research has developed an algorithm called the Explainable Boosting Machine (EBM)* which has both high accuracy and intelligibility. EBM uses modern machine learning techniques like bagging and boosting to breathe new life into traditional GAMs (Generalized Additive Models). This makes them as accurate as random forests and gradient boosted trees, and also enhances their intelligibility and editability.
Notebook for reproducing table
Dataset/AUROC Domain Logistic Regression Random Forest XGBoost Explainable Boosting Machine Adult Income Finance .907±.003 .903±.002 .922±.002 .928±.002 Heart Disease Medical .895±.030 .890±.008 .870±.014 .916±.010 Breast Cancer Medical .995±.005 .992±.009 .995±.006 .995±.006 Telecom Churn Business .804±.015 .824±.002 .850±.006 .851±.005 Credit Fraud Security .979±.002 .950±.007 .981±.003 .975±.005In addition to EBM, InterpretML also supports methods like LIME, SHAP, linear models, partial dependence, decision trees and rule lists. The package makes it easy to compare and contrast models to find the best one for your needs.
* EBM is a fast implementation of GA2M. Details on the algorithm can be found here.
Installation
Python 3.5+ | Linux, Mac OS X, Windows
pip install numpy scipy pyscaffold pip install -U interpret
Getting Started
Let's fit an Explainable Boosting Machine
from interpret.glassbox import ExplainableBoostingClassifier ebm = ExplainableBoostingClassifier() ebm.fit(X_train, y_train) # EBM supports pandas dataframes, numpy arrays, and handles "string" data natively.
Understand the model
from interpret import show ebm_global = ebm.explain_global() show(ebm_global)
Understand individual predictions
ebm_local = ebm.explain_local(X_test, y_test)
show(ebm_local)
And if you have multiple models, compare them
show([logistic_regression, decision_tree])
Example Notebooks
- Interpretable models for binary classification
- Interpretable models for regression
- Blackbox interpretability for binary classification
- Blackbox interpretability for regression
Roadmap
Currently we're working on:
- Multiclass Classification Support
- Missing Values Support
- Improved Categorical Encoding
...and lots more! Get in touch to find out more.
Contributing
If you are interested contributing directly to the code base, please see CONTRIBUTING.md
Acknowledgements
Many people have supported us along the way. Check out ACKNOWLEDGEMENTS.md!
We also build on top of many great packages. Please check them out!
plotly | dash | scikit-learn | lime | shap | salib | skope-rules | gevent | joblib | pytest | jupyter
Contact us
Multiple ways to get in touch:
- Email us at [email protected]
- Or, feel free to raise a GitHub issue
Reporting Security Issues (we had to include this...)
Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) at [email protected]. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the Security TechCenter.
If a tree fell in your random forest, would anyone notice?
Recommend
-
51
-
22
(This article was first published on R on notast , and kindly contributed toR-bloggers)
-
64
README.md Blackbox exporter
-
26
Increase confidence in your machine-learning model by understanding its predictions.
-
10
Programmatically interpretable reinforcement learning , Verma et al., ICML 2018 Being able to trust (interpret, verify) a controller learned...
-
143
BERTopic BERTopic is a topic modeling technique that leverages transformers and c-TF-IDF to create dense clusters allowing for easily inter...
-
16
Copy link Contributor hyd-dev commented
-
8
How to interpret PostgreSQL EXPLAIN ANALYZE output © Laurenz Albe 2021...
-
12
BlackBox Safely store secrets in a VCS repo (i.e. Git, Mercurial, Subversion or Perforce). These commands make it easy for you to Gnu Privacy Guard (GPG) encrypt specific files in a repo so they are "encrypted at rest" in your repo...
-
5
Contents observability.sh This script will handle the automated install of a basic monitoring stack on OpenShift utilizing Prometheus, Grafana, and Blackbox Exporter. The script will do the following: Crea...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK