Repository files navigation

drawing

An integrated Python toolbox for interpretable machine learning


March 30, 2025 by Dr. Agus Sudjianto: Farewell PiML, Hello MoDeVa!

After three impactful years of empowering model developers and validators, we’re thrilled to introduce the next evolution: MoDeVa – MOdel DEvelopment & VAlidation.

MoDeVa builds on the success of PiML, taking transparency, interpretability, and robustness in machine learning to a whole new level. Whether you’re in a high-stakes regulatory setting or exploring cutting-edge model architectures, MoDeVa is built to support your journey.

Why MoDeVa?

• Next-Gen Models: Interpretable ML models like Boosted Trees, Mixture of Experts, and Neural Trees—built for confident decision-making.

• Model Hacking Redefined: Tools to uncover failure modes, analyze robustness, reliability and resilience.

• Interactive Statistical Visualizations: Bring models to life with dynamic graphs that go beyond static charts.

• Seamless Validation: Effortlessly validate external black-box models using flexible wrappers.

Check it out here: https://modeva.ai/


pip install PiML

🎄 Dec 1, 2023: V0.6.0 is released with enhanced data handling and model analytics.

🚀 May 4, 2023: V0.5.0 is released together with PiML user guide.

🚀 October 31, 2022: V0.4.0 is released with enriched models and enhanced diagnostics.

🚀 July 26, 2022: V0.3.0 is released with classic statistical models.

🚀 June 26, 2022: V0.2.0 is released with high-code APIs.

📢 May 4, 2022: V0.1.0 is launched with low-code UI/UX.

PiML (or π-ML, /ˈpaɪ·ˈem·ˈel/) is a new Python toolbox for interpretable machine learning model development and validation. Through low-code interface and high-code APIs, PiML supports a growing list of inherently interpretable ML models:

  1. GLM: Linear/Logistic Regression with L1 ∨ L2 Regularization
  2. GAM: Generalized Additive Models using B-splines
  3. Tree: Decision Tree for Classification and Regression
  4. FIGS: Fast Interpretable Greedy-Tree Sums (Tan, et al. 2022)
  5. XGB1: Extreme Gradient Boosted Trees of Depth 1, with optimal binning (Chen and Guestrin, 2016; Navas-Palencia, 2020)
  6. XGB2: Extreme Gradient Boosted Trees of Depth 2, with effect purification (Chen and Guestrin, 2016; Lengerich, et al. 2020)
  7. EBM: Explainable Boosting Machine (Nori, et al. 2019; Lou, et al. 2013)
  8. GAMI-Net: Generalized Additive Model with Structured Interactions (Yang, Zhang and Sudjianto, 2021)
  9. ReLU-DNN: Deep ReLU Networks using Aletheia Unwrapper and Sparsification (Sudjianto, et al. 2020)

PiML also works for arbitrary supervised ML models under regression and binary classification settings. It supports a whole spectrum of outcome testing, including but not limited to the following:

  1. Accuracy: popular metrics like MSE, MAE for regression tasks and ACC, AUC, Recall, Precision, F1-score for binary classification tasks.
  2. Explainability: post-hoc global explainers (PFI, PDP, ALE) and local explainers (LIME, SHAP).
  3. Fairness: disparity test and segmented analysis by integrating the solas-ai package.
  4. WeakSpot: identification of weak regions with high residuals by slicing techniques.
  5. Overfit: identification of overfitting regions according to train-test performance gap.
  6. Reliability: assessment of prediction uncertainty by split conformal prediction techniques.
  7. Robustness: evaluation of performance degradation under covariate noise perturbation.
  8. Resilience: evaluation of performance degradation under different out-of-distribution scenarios.

Installation | Examples | Usage | Citations

Installation

pipinstallPiML

Low-code Examples

Click the ipynb links to run examples in Google Colab:

  1. BikeSharing data: ipynb
  2. CaliforniaHousing data: ipynb
  3. TaiwanCredit data: ipynb
  4. Fairness_SimuStudy1 data: ipynb
  5. Fairness_SimuStudy2 data: ipynb
  6. Upload custom data in two ways: ipynb
  7. Deal with external models: ipynb

Begin your own PiML journey with this demo notebook.

High-code Examples

The same examples can also be run by high-code APIs:

  1. BikeSharing data: ipynb
  2. CaliforniaHousing data: ipynb
  3. TaiwanCredit data: ipynb
  4. Model saving: ipynb
  5. Results return: ipynb

Low-code Usage on Google Colab

Stage 1: Initialize an experiment, Load and Prepare data

frompimlimportExperimentexp=Experiment()
exp.data_loader()
exp.data_summary()
exp.data_prepare()
exp.data_quality()
exp.feature_select()
exp.eda()

Stage 2: Train intepretable models

exp.model_train()

Stage 3. Explain and Interpret

exp.model_explain()
exp.model_interpret() 

Stage 4. Diagnose and Compare

exp.model_diagnose()
exp.model_compare()
exp.model_fairness()
exp.model_fairness_compare()

Arbitrary Black-Box Modeling

For example, train a complex LightGBM with depth 7 and register it to the experiment:

fromlightgbmimportLGBMClassifierexp.model_train(LGBMClassifier(max_depth=7), name='LGBM-7')

Then, compare it to inherently interpretable models (e.g. XGB2 and GAMI-Net):

exp.model_compare()

Citations

PiML, ReLU-DNN Aletheia and GAMI-Net

"PiML Toolbox for Interpretable Machine Learning Model Development and Diagnostics" (A. Sudjianto, A. Zhang, Z. Yang, Y. Su and N. Zeng, 2023) arXiv link

@article{sudjianto2023piml,
title={PiML Toolbox for Interpretable Machine Learning Model Development and Diagnostics},
author={Sudjianto, Agus and Zhang, Aijun and Yang, Zebin and Su, Yu and Zeng, Ningzhou},
year={2023}
}

"Designing Inherently Interpretable Machine Learning Models" (A. Sudjianto and A. Zhang, 2021) arXiv link

@article{sudjianto2021designing,
title={Designing Inherently Interpretable Machine Learning Models},
author={Sudjianto, Agus and Zhang, Aijun},
journal={arXiv preprint:2111.01743},
year={2021}
}

"Unwrapping The Black Box of Deep ReLU Networks: Interpretability, Diagnostics, and Simplification" (A. Sudjianto, W. Knauth, R. Singh, Z. Yang and A. Zhang, 2020) arXiv link

@article{sudjianto2020unwrapping,
title={Unwrapping the black box of deep ReLU networks: interpretability, diagnostics, and simplification},
author={Sudjianto, Agus and Knauth, William and Singh, Rahul and Yang, Zebin and Zhang, Aijun},
journal={arXiv preprint:2011.04041},
year={2020}
}

"GAMI-Net: An Explainable Neural Network based on Generalized Additive Models with Structured Interactions" (Z. Yang, A. Zhang, and A. Sudjianto, 2021) arXiv link

@article{yang2021gami,
title={GAMI-Net: An explainable neural network based on generalized additive models with structured interactions},
author={Yang, Zebin and Zhang, Aijun and Sudjianto, Agus},
journal={Pattern Recognition},
volume={120},
pages={108192},
year={2021}
}
Other Interpretable ML Models

"Fast Interpretable Greedy-Tree Sums (FIGS)" (Tan, Y.S., Singh, C., Nasseri, K., Agarwal, A. and Yu, B., 2022)

@article{tan2022fast,
title={Fast interpretable greedy-tree sums (FIGS)},
author={Tan, Yan Shuo and Singh, Chandan and Nasseri, Keyan and Agarwal, Abhineet and Yu, Bin},
journal={arXiv preprint arXiv:2201.11931},
year={2022}
}

"Accurate intelligible models with pairwise interactions" (Y. Lou, R. Caruana, J. Gehrke, and G. Hooker, 2013)

@inproceedings{lou2013accurate,
title={Accurate intelligible models with pairwise interactions},
author={Lou, Yin and Caruana, Rich and Gehrke, Johannes and Hooker, Giles},
booktitle={Proceedings of the 19th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining},
pages={623--631},
year={2013},
organization={ACM}
} 

"Purifying Interaction Effects with the Functional ANOVA: An Efficient Algorithm for Recovering Identifiable Additive Models" (Lengerich, B., Tan, S., Chang, C.H., Hooker, G. and Caruana, R., 2020)

@inproceedings{lengerich2020purifying,
title={Purifying interaction effects with the functional anova: An efficient algorithm for recovering identifiable additive models},
author={Lengerich, Benjamin and Tan, Sarah and Chang, Chun-Hao and Hooker, Giles and Caruana, Rich},
booktitle={International Conference on Artificial Intelligence and Statistics},
pages={2402--2412},
year={2020},
organization={PMLR}
}

"InterpretML: A Unified Framework for Machine Learning Interpretability" (H. Nori, S. Jenkins, P. Koch, and R. Caruana, 2019)

@article{nori2019interpretml,
title={InterpretML: A Unified Framework for Machine Learning Interpretability},
author={Nori, Harsha and Jenkins, Samuel and Koch, Paul and Caruana, Rich},
journal={arXiv preprint:1909.09223},
year={2019}
}

About

PiML (Python Interpretable Machine Learning) toolbox for model development & diagnostics

Topics

Resources

Stars

1.3k stars

Watchers

24 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

drawing

An integrated Python toolbox for interpretable machine learning


March 30, 2025 by Dr. Agus Sudjianto: Farewell PiML, Hello MoDeVa!

After three impactful years of empowering model developers and validators, we’re thrilled to introduce the next evolution: MoDeVa – MOdel DEvelopment & VAlidation.

MoDeVa builds on the success of PiML, taking transparency, interpretability, and robustness in machine learning to a whole new level. Whether you’re in a high-stakes regulatory setting or exploring cutting-edge model architectures, MoDeVa is built to support your journey.

Why MoDeVa?

• Next-Gen Models: Interpretable ML models like Boosted Trees, Mixture of Experts, and Neural Trees—built for confident decision-making.

• Model Hacking Redefined: Tools to uncover failure modes, analyze robustness, reliability and resilience.

• Interactive Statistical Visualizations: Bring models to life with dynamic graphs that go beyond static charts.

• Seamless Validation: Effortlessly validate external black-box models using flexible wrappers.

Check it out here: https://modeva.ai/


pip install PiML

🎄 Dec 1, 2023: V0.6.0 is released with enhanced data handling and model analytics.

🚀 May 4, 2023: V0.5.0 is released together with PiML user guide.

🚀 October 31, 2022: V0.4.0 is released with enriched models and enhanced diagnostics.

🚀 July 26, 2022: V0.3.0 is released with classic statistical models.

🚀 June 26, 2022: V0.2.0 is released with high-code APIs.

📢 May 4, 2022: V0.1.0 is launched with low-code UI/UX.

PiML (or π-ML, /ˈpaɪ·ˈem·ˈel/) is a new Python toolbox for interpretable machine learning model development and validation. Through low-code interface and high-code APIs, PiML supports a growing list of inherently interpretable ML models:

  1. GLM: Linear/Logistic Regression with L1 ∨ L2 Regularization
  2. GAM: Generalized Additive Models using B-splines
  3. Tree: Decision Tree for Classification and Regression
  4. FIGS: Fast Interpretable Greedy-Tree Sums (Tan, et al. 2022)
  5. XGB1: Extreme Gradient Boosted Trees of Depth 1, with optimal binning (Chen and Guestrin, 2016; Navas-Palencia, 2020)
  6. XGB2: Extreme Gradient Boosted Trees of Depth 2, with effect purification (Chen and Guestrin, 2016; Lengerich, et al. 2020)
  7. EBM: Explainable Boosting Machine (Nori, et al. 2019; Lou, et al. 2013)
  8. GAMI-Net: Generalized Additive Model with Structured Interactions (Yang, Zhang and Sudjianto, 2021)
  9. ReLU-DNN: Deep ReLU Networks using Aletheia Unwrapper and Sparsification (Sudjianto, et al. 2020)

PiML also works for arbitrary supervised ML models under regression and binary classification settings. It supports a whole spectrum of outcome testing, including but not limited to the following:

  1. Accuracy: popular metrics like MSE, MAE for regression tasks and ACC, AUC, Recall, Precision, F1-score for binary classification tasks.
  2. Explainability: post-hoc global explainers (PFI, PDP, ALE) and local explainers (LIME, SHAP).
  3. Fairness: disparity test and segmented analysis by integrating the solas-ai package.
  4. WeakSpot: identification of weak regions with high residuals by slicing techniques.
  5. Overfit: identification of overfitting regions according to train-test performance gap.
  6. Reliability: assessment of prediction uncertainty by split conformal prediction techniques.
  7. Robustness: evaluation of performance degradation under covariate noise perturbation.
  8. Resilience: evaluation of performance degradation under different out-of-distribution scenarios.

Installation | Examples | Usage | Citations

Installation

pipinstallPiML

Low-code Examples

Click the ipynb links to run examples in Google Colab:

  1. BikeSharing data: ipynb
  2. CaliforniaHousing data: ipynb
  3. TaiwanCredit data: ipynb
  4. Fairness_SimuStudy1 data: ipynb
  5. Fairness_SimuStudy2 data: ipynb
  6. Upload custom data in two ways: ipynb
  7. Deal with external models: ipynb

Begin your own PiML journey with this demo notebook.

High-code Examples

The same examples can also be run by high-code APIs:

  1. BikeSharing data: ipynb
  2. CaliforniaHousing data: ipynb
  3. TaiwanCredit data: ipynb
  4. Model saving: ipynb
  5. Results return: ipynb

Low-code Usage on Google Colab

Stage 1: Initialize an experiment, Load and Prepare data

frompimlimportExperimentexp=Experiment()
exp.data_loader()
exp.data_summary()
exp.data_prepare()
exp.data_quality()
exp.feature_select()
exp.eda()

Stage 2: Train intepretable models

exp.model_train()

Stage 3. Explain and Interpret

exp.model_explain()
exp.model_interpret() 

Stage 4. Diagnose and Compare

exp.model_diagnose()
exp.model_compare()
exp.model_fairness()
exp.model_fairness_compare()

Arbitrary Black-Box Modeling

For example, train a complex LightGBM with depth 7 and register it to the experiment:

fromlightgbmimportLGBMClassifierexp.model_train(LGBMClassifier(max_depth=7), name='LGBM-7')

Then, compare it to inherently interpretable models (e.g. XGB2 and GAMI-Net):

exp.model_compare()

Citations

PiML, ReLU-DNN Aletheia and GAMI-Net

"PiML Toolbox for Interpretable Machine Learning Model Development and Diagnostics" (A. Sudjianto, A. Zhang, Z. Yang, Y. Su and N. Zeng, 2023) arXiv link

@article{sudjianto2023piml,
title={PiML Toolbox for Interpretable Machine Learning Model Development and Diagnostics},
author={Sudjianto, Agus and Zhang, Aijun and Yang, Zebin and Su, Yu and Zeng, Ningzhou},
year={2023}
}

"Designing Inherently Interpretable Machine Learning Models" (A. Sudjianto and A. Zhang, 2021) arXiv link

@article{sudjianto2021designing,
title={Designing Inherently Interpretable Machine Learning Models},
author={Sudjianto, Agus and Zhang, Aijun},
journal={arXiv preprint:2111.01743},
year={2021}
}

"Unwrapping The Black Box of Deep ReLU Networks: Interpretability, Diagnostics, and Simplification" (A. Sudjianto, W. Knauth, R. Singh, Z. Yang and A. Zhang, 2020) arXiv link

@article{sudjianto2020unwrapping,
title={Unwrapping the black box of deep ReLU networks: interpretability, diagnostics, and simplification},
author={Sudjianto, Agus and Knauth, William and Singh, Rahul and Yang, Zebin and Zhang, Aijun},
journal={arXiv preprint:2011.04041},
year={2020}
}

"GAMI-Net: An Explainable Neural Network based on Generalized Additive Models with Structured Interactions" (Z. Yang, A. Zhang, and A. Sudjianto, 2021) arXiv link

@article{yang2021gami,
title={GAMI-Net: An explainable neural network based on generalized additive models with structured interactions},
author={Yang, Zebin and Zhang, Aijun and Sudjianto, Agus},
journal={Pattern Recognition},
volume={120},
pages={108192},
year={2021}
}
Other Interpretable ML Models

"Fast Interpretable Greedy-Tree Sums (FIGS)" (Tan, Y.S., Singh, C., Nasseri, K., Agarwal, A. and Yu, B., 2022)

@article{tan2022fast,
title={Fast interpretable greedy-tree sums (FIGS)},
author={Tan, Yan Shuo and Singh, Chandan and Nasseri, Keyan and Agarwal, Abhineet and Yu, Bin},
journal={arXiv preprint arXiv:2201.11931},
year={2022}
}

"Accurate intelligible models with pairwise interactions" (Y. Lou, R. Caruana, J. Gehrke, and G. Hooker, 2013)

@inproceedings{lou2013accurate,
title={Accurate intelligible models with pairwise interactions},
author={Lou, Yin and Caruana, Rich and Gehrke, Johannes and Hooker, Giles},
booktitle={Proceedings of the 19th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining},
pages={623--631},
year={2013},
organization={ACM}
} 

"Purifying Interaction Effects with the Functional ANOVA: An Efficient Algorithm for Recovering Identifiable Additive Models" (Lengerich, B., Tan, S., Chang, C.H., Hooker, G. and Caruana, R., 2020)

@inproceedings{lengerich2020purifying,
title={Purifying interaction effects with the functional anova: An efficient algorithm for recovering identifiable additive models},
author={Lengerich, Benjamin and Tan, Sarah and Chang, Chun-Hao and Hooker, Giles and Caruana, Rich},
booktitle={International Conference on Artificial Intelligence and Statistics},
pages={2402--2412},
year={2020},
organization={PMLR}
}

"InterpretML: A Unified Framework for Machine Learning Interpretability" (H. Nori, S. Jenkins, P. Koch, and R. Caruana, 2019)

@article{nori2019interpretml,
title={InterpretML: A Unified Framework for Machine Learning Interpretability},
author={Nori, Harsha and Jenkins, Samuel and Koch, Paul and Caruana, Rich},
journal={arXiv preprint:1909.09223},
year={2019}
}

About

PiML (Python Interpretable Machine Learning) toolbox for model development & diagnostics

Topics

Resources

Stars

1.3k stars

Watchers

24 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

drawing

An integrated Python toolbox for interpretable machine learning


March 30, 2025 by Dr. Agus Sudjianto: Farewell PiML, Hello MoDeVa!

After three impactful years of empowering model developers and validators, we’re thrilled to introduce the next evolution: MoDeVa – MOdel DEvelopment & VAlidation.

MoDeVa builds on the success of PiML, taking transparency, interpretability, and robustness in machine learning to a whole new level. Whether you’re in a high-stakes regulatory setting or exploring cutting-edge model architectures, MoDeVa is built to support your journey.

Why MoDeVa?

• Next-Gen Models: Interpretable ML models like Boosted Trees, Mixture of Experts, and Neural Trees—built for confident decision-making.

• Model Hacking Redefined: Tools to uncover failure modes, analyze robustness, reliability and resilience.

• Interactive Statistical Visualizations: Bring models to life with dynamic graphs that go beyond static charts.

• Seamless Validation: Effortlessly validate external black-box models using flexible wrappers.

Check it out here: https://modeva.ai/


pip install PiML

🎄 Dec 1, 2023: V0.6.0 is released with enhanced data handling and model analytics.

🚀 May 4, 2023: V0.5.0 is released together with PiML user guide.

🚀 October 31, 2022: V0.4.0 is released with enriched models and enhanced diagnostics.

🚀 July 26, 2022: V0.3.0 is released with classic statistical models.

🚀 June 26, 2022: V0.2.0 is released with high-code APIs.

📢 May 4, 2022: V0.1.0 is launched with low-code UI/UX.

PiML (or π-ML, /ˈpaɪ·ˈem·ˈel/) is a new Python toolbox for interpretable machine learning model development and validation. Through low-code interface and high-code APIs, PiML supports a growing list of inherently interpretable ML models:

  1. GLM: Linear/Logistic Regression with L1 ∨ L2 Regularization
  2. GAM: Generalized Additive Models using B-splines
  3. Tree: Decision Tree for Classification and Regression
  4. FIGS: Fast Interpretable Greedy-Tree Sums (Tan, et al. 2022)
  5. XGB1: Extreme Gradient Boosted Trees of Depth 1, with optimal binning (Chen and Guestrin, 2016; Navas-Palencia, 2020)
  6. XGB2: Extreme Gradient Boosted Trees of Depth 2, with effect purification (Chen and Guestrin, 2016; Lengerich, et al. 2020)
  7. EBM: Explainable Boosting Machine (Nori, et al. 2019; Lou, et al. 2013)
  8. GAMI-Net: Generalized Additive Model with Structured Interactions (Yang, Zhang and Sudjianto, 2021)
  9. ReLU-DNN: Deep ReLU Networks using Aletheia Unwrapper and Sparsification (Sudjianto, et al. 2020)

PiML also works for arbitrary supervised ML models under regression and binary classification settings. It supports a whole spectrum of outcome testing, including but not limited to the following:

  1. Accuracy: popular metrics like MSE, MAE for regression tasks and ACC, AUC, Recall, Precision, F1-score for binary classification tasks.
  2. Explainability: post-hoc global explainers (PFI, PDP, ALE) and local explainers (LIME, SHAP).
  3. Fairness: disparity test and segmented analysis by integrating the solas-ai package.
  4. WeakSpot: identification of weak regions with high residuals by slicing techniques.
  5. Overfit: identification of overfitting regions according to train-test performance gap.
  6. Reliability: assessment of prediction uncertainty by split conformal prediction techniques.
  7. Robustness: evaluation of performance degradation under covariate noise perturbation.
  8. Resilience: evaluation of performance degradation under different out-of-distribution scenarios.

Installation | Examples | Usage | Citations

Installation

pipinstallPiML

Low-code Examples

Click the ipynb links to run examples in Google Colab:

  1. BikeSharing data: ipynb
  2. CaliforniaHousing data: ipynb
  3. TaiwanCredit data: ipynb
  4. Fairness_SimuStudy1 data: ipynb
  5. Fairness_SimuStudy2 data: ipynb
  6. Upload custom data in two ways: ipynb
  7. Deal with external models: ipynb

Begin your own PiML journey with this demo notebook.

High-code Examples

The same examples can also be run by high-code APIs:

  1. BikeSharing data: ipynb
  2. CaliforniaHousing data: ipynb
  3. TaiwanCredit data: ipynb
  4. Model saving: ipynb
  5. Results return: ipynb

Low-code Usage on Google Colab

Stage 1: Initialize an experiment, Load and Prepare data

frompimlimportExperimentexp=Experiment()
exp.data_loader()
exp.data_summary()
exp.data_prepare()
exp.data_quality()
exp.feature_select()
exp.eda()

Stage 2: Train intepretable models

exp.model_train()

Stage 3. Explain and Interpret

exp.model_explain()
exp.model_interpret() 

Stage 4. Diagnose and Compare

exp.model_diagnose()
exp.model_compare()
exp.model_fairness()
exp.model_fairness_compare()

Arbitrary Black-Box Modeling

For example, train a complex LightGBM with depth 7 and register it to the experiment:

fromlightgbmimportLGBMClassifierexp.model_train(LGBMClassifier(max_depth=7), name='LGBM-7')

Then, compare it to inherently interpretable models (e.g. XGB2 and GAMI-Net):

exp.model_compare()

Citations

PiML, ReLU-DNN Aletheia and GAMI-Net

"PiML Toolbox for Interpretable Machine Learning Model Development and Diagnostics" (A. Sudjianto, A. Zhang, Z. Yang, Y. Su and N. Zeng, 2023) arXiv link

@article{sudjianto2023piml,
title={PiML Toolbox for Interpretable Machine Learning Model Development and Diagnostics},
author={Sudjianto, Agus and Zhang, Aijun and Yang, Zebin and Su, Yu and Zeng, Ningzhou},
year={2023}
}

"Designing Inherently Interpretable Machine Learning Models" (A. Sudjianto and A. Zhang, 2021) arXiv link

@article{sudjianto2021designing,
title={Designing Inherently Interpretable Machine Learning Models},
author={Sudjianto, Agus and Zhang, Aijun},
journal={arXiv preprint:2111.01743},
year={2021}
}

"Unwrapping The Black Box of Deep ReLU Networks: Interpretability, Diagnostics, and Simplification" (A. Sudjianto, W. Knauth, R. Singh, Z. Yang and A. Zhang, 2020) arXiv link

@article{sudjianto2020unwrapping,
title={Unwrapping the black box of deep ReLU networks: interpretability, diagnostics, and simplification},
author={Sudjianto, Agus and Knauth, William and Singh, Rahul and Yang, Zebin and Zhang, Aijun},
journal={arXiv preprint:2011.04041},
year={2020}
}

"GAMI-Net: An Explainable Neural Network based on Generalized Additive Models with Structured Interactions" (Z. Yang, A. Zhang, and A. Sudjianto, 2021) arXiv link

@article{yang2021gami,
title={GAMI-Net: An explainable neural network based on generalized additive models with structured interactions},
author={Yang, Zebin and Zhang, Aijun and Sudjianto, Agus},
journal={Pattern Recognition},
volume={120},
pages={108192},
year={2021}
}
Other Interpretable ML Models

"Fast Interpretable Greedy-Tree Sums (FIGS)" (Tan, Y.S., Singh, C., Nasseri, K., Agarwal, A. and Yu, B., 2022)

@article{tan2022fast,
title={Fast interpretable greedy-tree sums (FIGS)},
author={Tan, Yan Shuo and Singh, Chandan and Nasseri, Keyan and Agarwal, Abhineet and Yu, Bin},
journal={arXiv preprint arXiv:2201.11931},
year={2022}
}

"Accurate intelligible models with pairwise interactions" (Y. Lou, R. Caruana, J. Gehrke, and G. Hooker, 2013)

@inproceedings{lou2013accurate,
title={Accurate intelligible models with pairwise interactions},
author={Lou, Yin and Caruana, Rich and Gehrke, Johannes and Hooker, Giles},
booktitle={Proceedings of the 19th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining},
pages={623--631},
year={2013},
organization={ACM}
} 

"Purifying Interaction Effects with the Functional ANOVA: An Efficient Algorithm for Recovering Identifiable Additive Models" (Lengerich, B., Tan, S., Chang, C.H., Hooker, G. and Caruana, R., 2020)

@inproceedings{lengerich2020purifying,
title={Purifying interaction effects with the functional anova: An efficient algorithm for recovering identifiable additive models},
author={Lengerich, Benjamin and Tan, Sarah and Chang, Chun-Hao and Hooker, Giles and Caruana, Rich},
booktitle={International Conference on Artificial Intelligence and Statistics},
pages={2402--2412},
year={2020},
organization={PMLR}
}

"InterpretML: A Unified Framework for Machine Learning Interpretability" (H. Nori, S. Jenkins, P. Koch, and R. Caruana, 2019)

@article{nori2019interpretml,
title={InterpretML: A Unified Framework for Machine Learning Interpretability},
author={Nori, Harsha and Jenkins, Samuel and Koch, Paul and Caruana, Rich},
journal={arXiv preprint:1909.09223},
year={2019}
}

About

PiML (Python Interpretable Machine Learning) toolbox for model development & diagnostics

Topics

Resources

Stars

1.3k stars

Watchers

24 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

drawing

An integrated Python toolbox for interpretable machine learning


March 30, 2025 by Dr. Agus Sudjianto: Farewell PiML, Hello MoDeVa!

After three impactful years of empowering model developers and validators, we’re thrilled to introduce the next evolution: MoDeVa – MOdel DEvelopment & VAlidation.

MoDeVa builds on the success of PiML, taking transparency, interpretability, and robustness in machine learning to a whole new level. Whether you’re in a high-stakes regulatory setting or exploring cutting-edge model architectures, MoDeVa is built to support your journey.

Why MoDeVa?

• Next-Gen Models: Interpretable ML models like Boosted Trees, Mixture of Experts, and Neural Trees—built for confident decision-making.

• Model Hacking Redefined: Tools to uncover failure modes, analyze robustness, reliability and resilience.

• Interactive Statistical Visualizations: Bring models to life with dynamic graphs that go beyond static charts.

• Seamless Validation: Effortlessly validate external black-box models using flexible wrappers.

Check it out here: https://modeva.ai/


pip install PiML

🎄 Dec 1, 2023: V0.6.0 is released with enhanced data handling and model analytics.

🚀 May 4, 2023: V0.5.0 is released together with PiML user guide.

🚀 October 31, 2022: V0.4.0 is released with enriched models and enhanced diagnostics.

🚀 July 26, 2022: V0.3.0 is released with classic statistical models.

🚀 June 26, 2022: V0.2.0 is released with high-code APIs.

📢 May 4, 2022: V0.1.0 is launched with low-code UI/UX.

PiML (or π-ML, /ˈpaɪ·ˈem·ˈel/) is a new Python toolbox for interpretable machine learning model development and validation. Through low-code interface and high-code APIs, PiML supports a growing list of inherently interpretable ML models:

  1. GLM: Linear/Logistic Regression with L1 ∨ L2 Regularization
  2. GAM: Generalized Additive Models using B-splines
  3. Tree: Decision Tree for Classification and Regression
  4. FIGS: Fast Interpretable Greedy-Tree Sums (Tan, et al. 2022)
  5. XGB1: Extreme Gradient Boosted Trees of Depth 1, with optimal binning (Chen and Guestrin, 2016; Navas-Palencia, 2020)
  6. XGB2: Extreme Gradient Boosted Trees of Depth 2, with effect purification (Chen and Guestrin, 2016; Lengerich, et al. 2020)
  7. EBM: Explainable Boosting Machine (Nori, et al. 2019; Lou, et al. 2013)
  8. GAMI-Net: Generalized Additive Model with Structured Interactions (Yang, Zhang and Sudjianto, 2021)
  9. ReLU-DNN: Deep ReLU Networks using Aletheia Unwrapper and Sparsification (Sudjianto, et al. 2020)

PiML also works for arbitrary supervised ML models under regression and binary classification settings. It supports a whole spectrum of outcome testing, including but not limited to the following:

  1. Accuracy: popular metrics like MSE, MAE for regression tasks and ACC, AUC, Recall, Precision, F1-score for binary classification tasks.
  2. Explainability: post-hoc global explainers (PFI, PDP, ALE) and local explainers (LIME, SHAP).
  3. Fairness: disparity test and segmented analysis by integrating the solas-ai package.
  4. WeakSpot: identification of weak regions with high residuals by slicing techniques.
  5. Overfit: identification of overfitting regions according to train-test performance gap.
  6. Reliability: assessment of prediction uncertainty by split conformal prediction techniques.
  7. Robustness: evaluation of performance degradation under covariate noise perturbation.
  8. Resilience: evaluation of performance degradation under different out-of-distribution scenarios.

Installation | Examples | Usage | Citations

Installation

pipinstallPiML

Low-code Examples

Click the ipynb links to run examples in Google Colab:

  1. BikeSharing data: ipynb
  2. CaliforniaHousing data: ipynb
  3. TaiwanCredit data: ipynb
  4. Fairness_SimuStudy1 data: ipynb
  5. Fairness_SimuStudy2 data: ipynb
  6. Upload custom data in two ways: ipynb
  7. Deal with external models: ipynb

Begin your own PiML journey with this demo notebook.

High-code Examples

The same examples can also be run by high-code APIs:

  1. BikeSharing data: ipynb
  2. CaliforniaHousing data: ipynb
  3. TaiwanCredit data: ipynb
  4. Model saving: ipynb
  5. Results return: ipynb

Low-code Usage on Google Colab

Stage 1: Initialize an experiment, Load and Prepare data

frompimlimportExperimentexp=Experiment()
exp.data_loader()
exp.data_summary()
exp.data_prepare()
exp.data_quality()
exp.feature_select()
exp.eda()

Stage 2: Train intepretable models

exp.model_train()

Stage 3. Explain and Interpret

exp.model_explain()
exp.model_interpret() 

Stage 4. Diagnose and Compare

exp.model_diagnose()
exp.model_compare()
exp.model_fairness()
exp.model_fairness_compare()

Arbitrary Black-Box Modeling

For example, train a complex LightGBM with depth 7 and register it to the experiment:

fromlightgbmimportLGBMClassifierexp.model_train(LGBMClassifier(max_depth=7), name='LGBM-7')

Then, compare it to inherently interpretable models (e.g. XGB2 and GAMI-Net):

exp.model_compare()

Citations

PiML, ReLU-DNN Aletheia and GAMI-Net

"PiML Toolbox for Interpretable Machine Learning Model Development and Diagnostics" (A. Sudjianto, A. Zhang, Z. Yang, Y. Su and N. Zeng, 2023) arXiv link

@article{sudjianto2023piml,
title={PiML Toolbox for Interpretable Machine Learning Model Development and Diagnostics},
author={Sudjianto, Agus and Zhang, Aijun and Yang, Zebin and Su, Yu and Zeng, Ningzhou},
year={2023}
}

"Designing Inherently Interpretable Machine Learning Models" (A. Sudjianto and A. Zhang, 2021) arXiv link

@article{sudjianto2021designing,
title={Designing Inherently Interpretable Machine Learning Models},
author={Sudjianto, Agus and Zhang, Aijun},
journal={arXiv preprint:2111.01743},
year={2021}
}

"Unwrapping The Black Box of Deep ReLU Networks: Interpretability, Diagnostics, and Simplification" (A. Sudjianto, W. Knauth, R. Singh, Z. Yang and A. Zhang, 2020) arXiv link

@article{sudjianto2020unwrapping,
title={Unwrapping the black box of deep ReLU networks: interpretability, diagnostics, and simplification},
author={Sudjianto, Agus and Knauth, William and Singh, Rahul and Yang, Zebin and Zhang, Aijun},
journal={arXiv preprint:2011.04041},
year={2020}
}

"GAMI-Net: An Explainable Neural Network based on Generalized Additive Models with Structured Interactions" (Z. Yang, A. Zhang, and A. Sudjianto, 2021) arXiv link

@article{yang2021gami,
title={GAMI-Net: An explainable neural network based on generalized additive models with structured interactions},
author={Yang, Zebin and Zhang, Aijun and Sudjianto, Agus},
journal={Pattern Recognition},
volume={120},
pages={108192},
year={2021}
}
Other Interpretable ML Models

"Fast Interpretable Greedy-Tree Sums (FIGS)" (Tan, Y.S., Singh, C., Nasseri, K., Agarwal, A. and Yu, B., 2022)

@article{tan2022fast,
title={Fast interpretable greedy-tree sums (FIGS)},
author={Tan, Yan Shuo and Singh, Chandan and Nasseri, Keyan and Agarwal, Abhineet and Yu, Bin},
journal={arXiv preprint arXiv:2201.11931},
year={2022}
}

"Accurate intelligible models with pairwise interactions" (Y. Lou, R. Caruana, J. Gehrke, and G. Hooker, 2013)

@inproceedings{lou2013accurate,
title={Accurate intelligible models with pairwise interactions},
author={Lou, Yin and Caruana, Rich and Gehrke, Johannes and Hooker, Giles},
booktitle={Proceedings of the 19th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining},
pages={623--631},
year={2013},
organization={ACM}
} 

"Purifying Interaction Effects with the Functional ANOVA: An Efficient Algorithm for Recovering Identifiable Additive Models" (Lengerich, B., Tan, S., Chang, C.H., Hooker, G. and Caruana, R., 2020)

@inproceedings{lengerich2020purifying,
title={Purifying interaction effects with the functional anova: An efficient algorithm for recovering identifiable additive models},
author={Lengerich, Benjamin and Tan, Sarah and Chang, Chun-Hao and Hooker, Giles and Caruana, Rich},
booktitle={International Conference on Artificial Intelligence and Statistics},
pages={2402--2412},
year={2020},
organization={PMLR}
}

"InterpretML: A Unified Framework for Machine Learning Interpretability" (H. Nori, S. Jenkins, P. Koch, and R. Caruana, 2019)

@article{nori2019interpretml,
title={InterpretML: A Unified Framework for Machine Learning Interpretability},
author={Nori, Harsha and Jenkins, Samuel and Koch, Paul and Caruana, Rich},
journal={arXiv preprint:1909.09223},
year={2019}
}

About

PiML (Python Interpretable Machine Learning) toolbox for model development & diagnostics

Topics

Resources

Stars

1.3k stars

Watchers

24 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

drawing

An integrated Python toolbox for interpretable machine learning


March 30, 2025 by Dr. Agus Sudjianto: Farewell PiML, Hello MoDeVa!

After three impactful years of empowering model developers and validators, we’re thrilled to introduce the next evolution: MoDeVa – MOdel DEvelopment & VAlidation.

MoDeVa builds on the success of PiML, taking transparency, interpretability, and robustness in machine learning to a whole new level. Whether you’re in a high-stakes regulatory setting or exploring cutting-edge model architectures, MoDeVa is built to support your journey.

Why MoDeVa?

• Next-Gen Models: Interpretable ML models like Boosted Trees, Mixture of Experts, and Neural Trees—built for confident decision-making.

• Model Hacking Redefined: Tools to uncover failure modes, analyze robustness, reliability and resilience.

• Interactive Statistical Visualizations: Bring models to life with dynamic graphs that go beyond static charts.

• Seamless Validation: Effortlessly validate external black-box models using flexible wrappers.

Check it out here: https://modeva.ai/


pip install PiML

🎄 Dec 1, 2023: V0.6.0 is released with enhanced data handling and model analytics.

🚀 May 4, 2023: V0.5.0 is released together with PiML user guide.

🚀 October 31, 2022: V0.4.0 is released with enriched models and enhanced diagnostics.

🚀 July 26, 2022: V0.3.0 is released with classic statistical models.

🚀 June 26, 2022: V0.2.0 is released with high-code APIs.

📢 May 4, 2022: V0.1.0 is launched with low-code UI/UX.

PiML (or π-ML, /ˈpaɪ·ˈem·ˈel/) is a new Python toolbox for interpretable machine learning model development and validation. Through low-code interface and high-code APIs, PiML supports a growing list of inherently interpretable ML models:

  1. GLM: Linear/Logistic Regression with L1 ∨ L2 Regularization
  2. GAM: Generalized Additive Models using B-splines
  3. Tree: Decision Tree for Classification and Regression
  4. FIGS: Fast Interpretable Greedy-Tree Sums (Tan, et al. 2022)
  5. XGB1: Extreme Gradient Boosted Trees of Depth 1, with optimal binning (Chen and Guestrin, 2016; Navas-Palencia, 2020)
  6. XGB2: Extreme Gradient Boosted Trees of Depth 2, with effect purification (Chen and Guestrin, 2016; Lengerich, et al. 2020)
  7. EBM: Explainable Boosting Machine (Nori, et al. 2019; Lou, et al. 2013)
  8. GAMI-Net: Generalized Additive Model with Structured Interactions (Yang, Zhang and Sudjianto, 2021)
  9. ReLU-DNN: Deep ReLU Networks using Aletheia Unwrapper and Sparsification (Sudjianto, et al. 2020)

PiML also works for arbitrary supervised ML models under regression and binary classification settings. It supports a whole spectrum of outcome testing, including but not limited to the following:

  1. Accuracy: popular metrics like MSE, MAE for regression tasks and ACC, AUC, Recall, Precision, F1-score for binary classification tasks.
  2. Explainability: post-hoc global explainers (PFI, PDP, ALE) and local explainers (LIME, SHAP).
  3. Fairness: disparity test and segmented analysis by integrating the solas-ai package.
  4. WeakSpot: identification of weak regions with high residuals by slicing techniques.
  5. Overfit: identification of overfitting regions according to train-test performance gap.
  6. Reliability: assessment of prediction uncertainty by split conformal prediction techniques.
  7. Robustness: evaluation of performance degradation under covariate noise perturbation.
  8. Resilience: evaluation of performance degradation under different out-of-distribution scenarios.

Installation | Examples | Usage | Citations

Installation

pipinstallPiML

Low-code Examples

Click the ipynb links to run examples in Google Colab:

  1. BikeSharing data: ipynb
  2. CaliforniaHousing data: ipynb
  3. TaiwanCredit data: ipynb
  4. Fairness_SimuStudy1 data: ipynb
  5. Fairness_SimuStudy2 data: ipynb
  6. Upload custom data in two ways: ipynb
  7. Deal with external models: ipynb

Begin your own PiML journey with this demo notebook.

High-code Examples

The same examples can also be run by high-code APIs:

  1. BikeSharing data: ipynb
  2. CaliforniaHousing data: ipynb
  3. TaiwanCredit data: ipynb
  4. Model saving: ipynb
  5. Results return: ipynb

Low-code Usage on Google Colab

Stage 1: Initialize an experiment, Load and Prepare data

frompimlimportExperimentexp=Experiment()
exp.data_loader()
exp.data_summary()
exp.data_prepare()
exp.data_quality()
exp.feature_select()
exp.eda()

Stage 2: Train intepretable models

exp.model_train()

Stage 3. Explain and Interpret

exp.model_explain()
exp.model_interpret() 

Stage 4. Diagnose and Compare

exp.model_diagnose()
exp.model_compare()
exp.model_fairness()
exp.model_fairness_compare()

Arbitrary Black-Box Modeling

For example, train a complex LightGBM with depth 7 and register it to the experiment:

fromlightgbmimportLGBMClassifierexp.model_train(LGBMClassifier(max_depth=7), name='LGBM-7')

Then, compare it to inherently interpretable models (e.g. XGB2 and GAMI-Net):

exp.model_compare()

Citations

PiML, ReLU-DNN Aletheia and GAMI-Net

"PiML Toolbox for Interpretable Machine Learning Model Development and Diagnostics" (A. Sudjianto, A. Zhang, Z. Yang, Y. Su and N. Zeng, 2023) arXiv link

@article{sudjianto2023piml,
title={PiML Toolbox for Interpretable Machine Learning Model Development and Diagnostics},
author={Sudjianto, Agus and Zhang, Aijun and Yang, Zebin and Su, Yu and Zeng, Ningzhou},
year={2023}
}

"Designing Inherently Interpretable Machine Learning Models" (A. Sudjianto and A. Zhang, 2021) arXiv link

@article{sudjianto2021designing,
title={Designing Inherently Interpretable Machine Learning Models},
author={Sudjianto, Agus and Zhang, Aijun},
journal={arXiv preprint:2111.01743},
year={2021}
}

"Unwrapping The Black Box of Deep ReLU Networks: Interpretability, Diagnostics, and Simplification" (A. Sudjianto, W. Knauth, R. Singh, Z. Yang and A. Zhang, 2020) arXiv link

@article{sudjianto2020unwrapping,
title={Unwrapping the black box of deep ReLU networks: interpretability, diagnostics, and simplification},
author={Sudjianto, Agus and Knauth, William and Singh, Rahul and Yang, Zebin and Zhang, Aijun},
journal={arXiv preprint:2011.04041},
year={2020}
}

"GAMI-Net: An Explainable Neural Network based on Generalized Additive Models with Structured Interactions" (Z. Yang, A. Zhang, and A. Sudjianto, 2021) arXiv link

@article{yang2021gami,
title={GAMI-Net: An explainable neural network based on generalized additive models with structured interactions},
author={Yang, Zebin and Zhang, Aijun and Sudjianto, Agus},
journal={Pattern Recognition},
volume={120},
pages={108192},
year={2021}
}
Other Interpretable ML Models

"Fast Interpretable Greedy-Tree Sums (FIGS)" (Tan, Y.S., Singh, C., Nasseri, K., Agarwal, A. and Yu, B., 2022)

@article{tan2022fast,
title={Fast interpretable greedy-tree sums (FIGS)},
author={Tan, Yan Shuo and Singh, Chandan and Nasseri, Keyan and Agarwal, Abhineet and Yu, Bin},
journal={arXiv preprint arXiv:2201.11931},
year={2022}
}

"Accurate intelligible models with pairwise interactions" (Y. Lou, R. Caruana, J. Gehrke, and G. Hooker, 2013)

@inproceedings{lou2013accurate,
title={Accurate intelligible models with pairwise interactions},
author={Lou, Yin and Caruana, Rich and Gehrke, Johannes and Hooker, Giles},
booktitle={Proceedings of the 19th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining},
pages={623--631},
year={2013},
organization={ACM}
} 

"Purifying Interaction Effects with the Functional ANOVA: An Efficient Algorithm for Recovering Identifiable Additive Models" (Lengerich, B., Tan, S., Chang, C.H., Hooker, G. and Caruana, R., 2020)

@inproceedings{lengerich2020purifying,
title={Purifying interaction effects with the functional anova: An efficient algorithm for recovering identifiable additive models},
author={Lengerich, Benjamin and Tan, Sarah and Chang, Chun-Hao and Hooker, Giles and Caruana, Rich},
booktitle={International Conference on Artificial Intelligence and Statistics},
pages={2402--2412},
year={2020},
organization={PMLR}
}

"InterpretML: A Unified Framework for Machine Learning Interpretability" (H. Nori, S. Jenkins, P. Koch, and R. Caruana, 2019)

@article{nori2019interpretml,
title={InterpretML: A Unified Framework for Machine Learning Interpretability},
author={Nori, Harsha and Jenkins, Samuel and Koch, Paul and Caruana, Rich},
journal={arXiv preprint:1909.09223},
year={2019}
}

About

PiML (Python Interpretable Machine Learning) toolbox for model development & diagnostics

Topics

Resources

Stars

1.3k stars

Watchers

24 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

drawing

An integrated Python toolbox for interpretable machine learning


March 30, 2025 by Dr. Agus Sudjianto: Farewell PiML, Hello MoDeVa!

After three impactful years of empowering model developers and validators, we’re thrilled to introduce the next evolution: MoDeVa – MOdel DEvelopment & VAlidation.

MoDeVa builds on the success of PiML, taking transparency, interpretability, and robustness in machine learning to a whole new level. Whether you’re in a high-stakes regulatory setting or exploring cutting-edge model architectures, MoDeVa is built to support your journey.

Why MoDeVa?

• Next-Gen Models: Interpretable ML models like Boosted Trees, Mixture of Experts, and Neural Trees—built for confident decision-making.

• Model Hacking Redefined: Tools to uncover failure modes, analyze robustness, reliability and resilience.

• Interactive Statistical Visualizations: Bring models to life with dynamic graphs that go beyond static charts.

• Seamless Validation: Effortlessly validate external black-box models using flexible wrappers.

Check it out here: https://modeva.ai/


pip install PiML

🎄 Dec 1, 2023: V0.6.0 is released with enhanced data handling and model analytics.

🚀 May 4, 2023: V0.5.0 is released together with PiML user guide.

🚀 October 31, 2022: V0.4.0 is released with enriched models and enhanced diagnostics.

🚀 July 26, 2022: V0.3.0 is released with classic statistical models.

🚀 June 26, 2022: V0.2.0 is released with high-code APIs.

📢 May 4, 2022: V0.1.0 is launched with low-code UI/UX.

PiML (or π-ML, /ˈpaɪ·ˈem·ˈel/) is a new Python toolbox for interpretable machine learning model development and validation. Through low-code interface and high-code APIs, PiML supports a growing list of inherently interpretable ML models:

  1. GLM: Linear/Logistic Regression with L1 ∨ L2 Regularization
  2. GAM: Generalized Additive Models using B-splines
  3. Tree: Decision Tree for Classification and Regression
  4. FIGS: Fast Interpretable Greedy-Tree Sums (Tan, et al. 2022)
  5. XGB1: Extreme Gradient Boosted Trees of Depth 1, with optimal binning (Chen and Guestrin, 2016; Navas-Palencia, 2020)
  6. XGB2: Extreme Gradient Boosted Trees of Depth 2, with effect purification (Chen and Guestrin, 2016; Lengerich, et al. 2020)
  7. EBM: Explainable Boosting Machine (Nori, et al. 2019; Lou, et al. 2013)
  8. GAMI-Net: Generalized Additive Model with Structured Interactions (Yang, Zhang and Sudjianto, 2021)
  9. ReLU-DNN: Deep ReLU Networks using Aletheia Unwrapper and Sparsification (Sudjianto, et al. 2020)

PiML also works for arbitrary supervised ML models under regression and binary classification settings. It supports a whole spectrum of outcome testing, including but not limited to the following:

  1. Accuracy: popular metrics like MSE, MAE for regression tasks and ACC, AUC, Recall, Precision, F1-score for binary classification tasks.
  2. Explainability: post-hoc global explainers (PFI, PDP, ALE) and local explainers (LIME, SHAP).
  3. Fairness: disparity test and segmented analysis by integrating the solas-ai package.
  4. WeakSpot: identification of weak regions with high residuals by slicing techniques.
  5. Overfit: identification of overfitting regions according to train-test performance gap.
  6. Reliability: assessment of prediction uncertainty by split conformal prediction techniques.
  7. Robustness: evaluation of performance degradation under covariate noise perturbation.
  8. Resilience: evaluation of performance degradation under different out-of-distribution scenarios.

Installation | Examples | Usage | Citations

Installation

pipinstallPiML

Low-code Examples

Click the ipynb links to run examples in Google Colab:

  1. BikeSharing data: ipynb
  2. CaliforniaHousing data: ipynb
  3. TaiwanCredit data: ipynb
  4. Fairness_SimuStudy1 data: ipynb
  5. Fairness_SimuStudy2 data: ipynb
  6. Upload custom data in two ways: ipynb
  7. Deal with external models: ipynb

Begin your own PiML journey with this demo notebook.

High-code Examples

The same examples can also be run by high-code APIs:

  1. BikeSharing data: ipynb
  2. CaliforniaHousing data: ipynb
  3. TaiwanCredit data: ipynb
  4. Model saving: ipynb
  5. Results return: ipynb

Low-code Usage on Google Colab

Stage 1: Initialize an experiment, Load and Prepare data

frompimlimportExperimentexp=Experiment()
exp.data_loader()
exp.data_summary()
exp.data_prepare()
exp.data_quality()
exp.feature_select()
exp.eda()

Stage 2: Train intepretable models

exp.model_train()

Stage 3. Explain and Interpret

exp.model_explain()
exp.model_interpret() 

Stage 4. Diagnose and Compare

exp.model_diagnose()
exp.model_compare()
exp.model_fairness()
exp.model_fairness_compare()

Arbitrary Black-Box Modeling

For example, train a complex LightGBM with depth 7 and register it to the experiment:

fromlightgbmimportLGBMClassifierexp.model_train(LGBMClassifier(max_depth=7), name='LGBM-7')

Then, compare it to inherently interpretable models (e.g. XGB2 and GAMI-Net):

exp.model_compare()

Citations

PiML, ReLU-DNN Aletheia and GAMI-Net

"PiML Toolbox for Interpretable Machine Learning Model Development and Diagnostics" (A. Sudjianto, A. Zhang, Z. Yang, Y. Su and N. Zeng, 2023) arXiv link

@article{sudjianto2023piml,
title={PiML Toolbox for Interpretable Machine Learning Model Development and Diagnostics},
author={Sudjianto, Agus and Zhang, Aijun and Yang, Zebin and Su, Yu and Zeng, Ningzhou},
year={2023}
}

"Designing Inherently Interpretable Machine Learning Models" (A. Sudjianto and A. Zhang, 2021) arXiv link

@article{sudjianto2021designing,
title={Designing Inherently Interpretable Machine Learning Models},
author={Sudjianto, Agus and Zhang, Aijun},
journal={arXiv preprint:2111.01743},
year={2021}
}

"Unwrapping The Black Box of Deep ReLU Networks: Interpretability, Diagnostics, and Simplification" (A. Sudjianto, W. Knauth, R. Singh, Z. Yang and A. Zhang, 2020) arXiv link

@article{sudjianto2020unwrapping,
title={Unwrapping the black box of deep ReLU networks: interpretability, diagnostics, and simplification},
author={Sudjianto, Agus and Knauth, William and Singh, Rahul and Yang, Zebin and Zhang, Aijun},
journal={arXiv preprint:2011.04041},
year={2020}
}

"GAMI-Net: An Explainable Neural Network based on Generalized Additive Models with Structured Interactions" (Z. Yang, A. Zhang, and A. Sudjianto, 2021) arXiv link

@article{yang2021gami,
title={GAMI-Net: An explainable neural network based on generalized additive models with structured interactions},
author={Yang, Zebin and Zhang, Aijun and Sudjianto, Agus},
journal={Pattern Recognition},
volume={120},
pages={108192},
year={2021}
}
Other Interpretable ML Models

"Fast Interpretable Greedy-Tree Sums (FIGS)" (Tan, Y.S., Singh, C., Nasseri, K., Agarwal, A. and Yu, B., 2022)

@article{tan2022fast,
title={Fast interpretable greedy-tree sums (FIGS)},
author={Tan, Yan Shuo and Singh, Chandan and Nasseri, Keyan and Agarwal, Abhineet and Yu, Bin},
journal={arXiv preprint arXiv:2201.11931},
year={2022}
}

"Accurate intelligible models with pairwise interactions" (Y. Lou, R. Caruana, J. Gehrke, and G. Hooker, 2013)

@inproceedings{lou2013accurate,
title={Accurate intelligible models with pairwise interactions},
author={Lou, Yin and Caruana, Rich and Gehrke, Johannes and Hooker, Giles},
booktitle={Proceedings of the 19th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining},
pages={623--631},
year={2013},
organization={ACM}
} 

"Purifying Interaction Effects with the Functional ANOVA: An Efficient Algorithm for Recovering Identifiable Additive Models" (Lengerich, B., Tan, S., Chang, C.H., Hooker, G. and Caruana, R., 2020)

@inproceedings{lengerich2020purifying,
title={Purifying interaction effects with the functional anova: An efficient algorithm for recovering identifiable additive models},
author={Lengerich, Benjamin and Tan, Sarah and Chang, Chun-Hao and Hooker, Giles and Caruana, Rich},
booktitle={International Conference on Artificial Intelligence and Statistics},
pages={2402--2412},
year={2020},
organization={PMLR}
}

"InterpretML: A Unified Framework for Machine Learning Interpretability" (H. Nori, S. Jenkins, P. Koch, and R. Caruana, 2019)

@article{nori2019interpretml,
title={InterpretML: A Unified Framework for Machine Learning Interpretability},
author={Nori, Harsha and Jenkins, Samuel and Koch, Paul and Caruana, Rich},
journal={arXiv preprint:1909.09223},
year={2019}
}

About

PiML (Python Interpretable Machine Learning) toolbox for model development & diagnostics

Topics

Resources

Stars

1.3k stars

Watchers

24 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

drawing

An integrated Python toolbox for interpretable machine learning


March 30, 2025 by Dr. Agus Sudjianto: Farewell PiML, Hello MoDeVa!

After three impactful years of empowering model developers and validators, we’re thrilled to introduce the next evolution: MoDeVa – MOdel DEvelopment & VAlidation.

MoDeVa builds on the success of PiML, taking transparency, interpretability, and robustness in machine learning to a whole new level. Whether you’re in a high-stakes regulatory setting or exploring cutting-edge model architectures, MoDeVa is built to support your journey.

Why MoDeVa?

• Next-Gen Models: Interpretable ML models like Boosted Trees, Mixture of Experts, and Neural Trees—built for confident decision-making.

• Model Hacking Redefined: Tools to uncover failure modes, analyze robustness, reliability and resilience.

• Interactive Statistical Visualizations: Bring models to life with dynamic graphs that go beyond static charts.

• Seamless Validation: Effortlessly validate external black-box models using flexible wrappers.

Check it out here: https://modeva.ai/


pip install PiML

🎄 Dec 1, 2023: V0.6.0 is released with enhanced data handling and model analytics.

🚀 May 4, 2023: V0.5.0 is released together with PiML user guide.

🚀 October 31, 2022: V0.4.0 is released with enriched models and enhanced diagnostics.

🚀 July 26, 2022: V0.3.0 is released with classic statistical models.

🚀 June 26, 2022: V0.2.0 is released with high-code APIs.

📢 May 4, 2022: V0.1.0 is launched with low-code UI/UX.

PiML (or π-ML, /ˈpaɪ·ˈem·ˈel/) is a new Python toolbox for interpretable machine learning model development and validation. Through low-code interface and high-code APIs, PiML supports a growing list of inherently interpretable ML models:

  1. GLM: Linear/Logistic Regression with L1 ∨ L2 Regularization
  2. GAM: Generalized Additive Models using B-splines
  3. Tree: Decision Tree for Classification and Regression
  4. FIGS: Fast Interpretable Greedy-Tree Sums (Tan, et al. 2022)
  5. XGB1: Extreme Gradient Boosted Trees of Depth 1, with optimal binning (Chen and Guestrin, 2016; Navas-Palencia, 2020)
  6. XGB2: Extreme Gradient Boosted Trees of Depth 2, with effect purification (Chen and Guestrin, 2016; Lengerich, et al. 2020)
  7. EBM: Explainable Boosting Machine (Nori, et al. 2019; Lou, et al. 2013)
  8. GAMI-Net: Generalized Additive Model with Structured Interactions (Yang, Zhang and Sudjianto, 2021)
  9. ReLU-DNN: Deep ReLU Networks using Aletheia Unwrapper and Sparsification (Sudjianto, et al. 2020)

PiML also works for arbitrary supervised ML models under regression and binary classification settings. It supports a whole spectrum of outcome testing, including but not limited to the following:

  1. Accuracy: popular metrics like MSE, MAE for regression tasks and ACC, AUC, Recall, Precision, F1-score for binary classification tasks.
  2. Explainability: post-hoc global explainers (PFI, PDP, ALE) and local explainers (LIME, SHAP).
  3. Fairness: disparity test and segmented analysis by integrating the solas-ai package.
  4. WeakSpot: identification of weak regions with high residuals by slicing techniques.
  5. Overfit: identification of overfitting regions according to train-test performance gap.
  6. Reliability: assessment of prediction uncertainty by split conformal prediction techniques.
  7. Robustness: evaluation of performance degradation under covariate noise perturbation.
  8. Resilience: evaluation of performance degradation under different out-of-distribution scenarios.

Installation | Examples | Usage | Citations

Installation

pipinstallPiML

Low-code Examples

Click the ipynb links to run examples in Google Colab:

  1. BikeSharing data: ipynb
  2. CaliforniaHousing data: ipynb
  3. TaiwanCredit data: ipynb
  4. Fairness_SimuStudy1 data: ipynb
  5. Fairness_SimuStudy2 data: ipynb
  6. Upload custom data in two ways: ipynb
  7. Deal with external models: ipynb

Begin your own PiML journey with this demo notebook.

High-code Examples

The same examples can also be run by high-code APIs:

  1. BikeSharing data: ipynb
  2. CaliforniaHousing data: ipynb
  3. TaiwanCredit data: ipynb
  4. Model saving: ipynb
  5. Results return: ipynb

Low-code Usage on Google Colab

Stage 1: Initialize an experiment, Load and Prepare data

frompimlimportExperimentexp=Experiment()
exp.data_loader()
exp.data_summary()
exp.data_prepare()
exp.data_quality()
exp.feature_select()
exp.eda()

Stage 2: Train intepretable models

exp.model_train()

Stage 3. Explain and Interpret

exp.model_explain()
exp.model_interpret() 

Stage 4. Diagnose and Compare

exp.model_diagnose()
exp.model_compare()
exp.model_fairness()
exp.model_fairness_compare()

Arbitrary Black-Box Modeling

For example, train a complex LightGBM with depth 7 and register it to the experiment:

fromlightgbmimportLGBMClassifierexp.model_train(LGBMClassifier(max_depth=7), name='LGBM-7')

Then, compare it to inherently interpretable models (e.g. XGB2 and GAMI-Net):

exp.model_compare()

Citations

PiML, ReLU-DNN Aletheia and GAMI-Net

"PiML Toolbox for Interpretable Machine Learning Model Development and Diagnostics" (A. Sudjianto, A. Zhang, Z. Yang, Y. Su and N. Zeng, 2023) arXiv link

@article{sudjianto2023piml,
title={PiML Toolbox for Interpretable Machine Learning Model Development and Diagnostics},
author={Sudjianto, Agus and Zhang, Aijun and Yang, Zebin and Su, Yu and Zeng, Ningzhou},
year={2023}
}

"Designing Inherently Interpretable Machine Learning Models" (A. Sudjianto and A. Zhang, 2021) arXiv link

@article{sudjianto2021designing,
title={Designing Inherently Interpretable Machine Learning Models},
author={Sudjianto, Agus and Zhang, Aijun},
journal={arXiv preprint:2111.01743},
year={2021}
}

"Unwrapping The Black Box of Deep ReLU Networks: Interpretability, Diagnostics, and Simplification" (A. Sudjianto, W. Knauth, R. Singh, Z. Yang and A. Zhang, 2020) arXiv link

@article{sudjianto2020unwrapping,
title={Unwrapping the black box of deep ReLU networks: interpretability, diagnostics, and simplification},
author={Sudjianto, Agus and Knauth, William and Singh, Rahul and Yang, Zebin and Zhang, Aijun},
journal={arXiv preprint:2011.04041},
year={2020}
}

"GAMI-Net: An Explainable Neural Network based on Generalized Additive Models with Structured Interactions" (Z. Yang, A. Zhang, and A. Sudjianto, 2021) arXiv link

@article{yang2021gami,
title={GAMI-Net: An explainable neural network based on generalized additive models with structured interactions},
author={Yang, Zebin and Zhang, Aijun and Sudjianto, Agus},
journal={Pattern Recognition},
volume={120},
pages={108192},
year={2021}
}
Other Interpretable ML Models

"Fast Interpretable Greedy-Tree Sums (FIGS)" (Tan, Y.S., Singh, C., Nasseri, K., Agarwal, A. and Yu, B., 2022)

@article{tan2022fast,
title={Fast interpretable greedy-tree sums (FIGS)},
author={Tan, Yan Shuo and Singh, Chandan and Nasseri, Keyan and Agarwal, Abhineet and Yu, Bin},
journal={arXiv preprint arXiv:2201.11931},
year={2022}
}

"Accurate intelligible models with pairwise interactions" (Y. Lou, R. Caruana, J. Gehrke, and G. Hooker, 2013)

@inproceedings{lou2013accurate,
title={Accurate intelligible models with pairwise interactions},
author={Lou, Yin and Caruana, Rich and Gehrke, Johannes and Hooker, Giles},
booktitle={Proceedings of the 19th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining},
pages={623--631},
year={2013},
organization={ACM}
} 

"Purifying Interaction Effects with the Functional ANOVA: An Efficient Algorithm for Recovering Identifiable Additive Models" (Lengerich, B., Tan, S., Chang, C.H., Hooker, G. and Caruana, R., 2020)

@inproceedings{lengerich2020purifying,
title={Purifying interaction effects with the functional anova: An efficient algorithm for recovering identifiable additive models},
author={Lengerich, Benjamin and Tan, Sarah and Chang, Chun-Hao and Hooker, Giles and Caruana, Rich},
booktitle={International Conference on Artificial Intelligence and Statistics},
pages={2402--2412},
year={2020},
organization={PMLR}
}

"InterpretML: A Unified Framework for Machine Learning Interpretability" (H. Nori, S. Jenkins, P. Koch, and R. Caruana, 2019)

@article{nori2019interpretml,
title={InterpretML: A Unified Framework for Machine Learning Interpretability},
author={Nori, Harsha and Jenkins, Samuel and Koch, Paul and Caruana, Rich},
journal={arXiv preprint:1909.09223},
year={2019}
}

About

PiML (Python Interpretable Machine Learning) toolbox for model development & diagnostics

Topics

Resources

Stars

1.3k stars

Watchers

24 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

drawing

An integrated Python toolbox for interpretable machine learning


March 30, 2025 by Dr. Agus Sudjianto: Farewell PiML, Hello MoDeVa!

After three impactful years of empowering model developers and validators, we’re thrilled to introduce the next evolution: MoDeVa – MOdel DEvelopment & VAlidation.

MoDeVa builds on the success of PiML, taking transparency, interpretability, and robustness in machine learning to a whole new level. Whether you’re in a high-stakes regulatory setting or exploring cutting-edge model architectures, MoDeVa is built to support your journey.

Why MoDeVa?

• Next-Gen Models: Interpretable ML models like Boosted Trees, Mixture of Experts, and Neural Trees—built for confident decision-making.

• Model Hacking Redefined: Tools to uncover failure modes, analyze robustness, reliability and resilience.

• Interactive Statistical Visualizations: Bring models to life with dynamic graphs that go beyond static charts.

• Seamless Validation: Effortlessly validate external black-box models using flexible wrappers.

Check it out here: https://modeva.ai/


pip install PiML

🎄 Dec 1, 2023: V0.6.0 is released with enhanced data handling and model analytics.

🚀 May 4, 2023: V0.5.0 is released together with PiML user guide.

🚀 October 31, 2022: V0.4.0 is released with enriched models and enhanced diagnostics.

🚀 July 26, 2022: V0.3.0 is released with classic statistical models.

🚀 June 26, 2022: V0.2.0 is released with high-code APIs.

📢 May 4, 2022: V0.1.0 is launched with low-code UI/UX.

PiML (or π-ML, /ˈpaɪ·ˈem·ˈel/) is a new Python toolbox for interpretable machine learning model development and validation. Through low-code interface and high-code APIs, PiML supports a growing list of inherently interpretable ML models:

  1. GLM: Linear/Logistic Regression with L1 ∨ L2 Regularization
  2. GAM: Generalized Additive Models using B-splines
  3. Tree: Decision Tree for Classification and Regression
  4. FIGS: Fast Interpretable Greedy-Tree Sums (Tan, et al. 2022)
  5. XGB1: Extreme Gradient Boosted Trees of Depth 1, with optimal binning (Chen and Guestrin, 2016; Navas-Palencia, 2020)
  6. XGB2: Extreme Gradient Boosted Trees of Depth 2, with effect purification (Chen and Guestrin, 2016; Lengerich, et al. 2020)
  7. EBM: Explainable Boosting Machine (Nori, et al. 2019; Lou, et al. 2013)
  8. GAMI-Net: Generalized Additive Model with Structured Interactions (Yang, Zhang and Sudjianto, 2021)
  9. ReLU-DNN: Deep ReLU Networks using Aletheia Unwrapper and Sparsification (Sudjianto, et al. 2020)

PiML also works for arbitrary supervised ML models under regression and binary classification settings. It supports a whole spectrum of outcome testing, including but not limited to the following:

  1. Accuracy: popular metrics like MSE, MAE for regression tasks and ACC, AUC, Recall, Precision, F1-score for binary classification tasks.
  2. Explainability: post-hoc global explainers (PFI, PDP, ALE) and local explainers (LIME, SHAP).
  3. Fairness: disparity test and segmented analysis by integrating the solas-ai package.
  4. WeakSpot: identification of weak regions with high residuals by slicing techniques.
  5. Overfit: identification of overfitting regions according to train-test performance gap.
  6. Reliability: assessment of prediction uncertainty by split conformal prediction techniques.
  7. Robustness: evaluation of performance degradation under covariate noise perturbation.
  8. Resilience: evaluation of performance degradation under different out-of-distribution scenarios.

Installation | Examples | Usage | Citations

Installation

pipinstallPiML

Low-code Examples

Click the ipynb links to run examples in Google Colab:

  1. BikeSharing data: ipynb
  2. CaliforniaHousing data: ipynb
  3. TaiwanCredit data: ipynb
  4. Fairness_SimuStudy1 data: ipynb
  5. Fairness_SimuStudy2 data: ipynb
  6. Upload custom data in two ways: ipynb
  7. Deal with external models: ipynb

Begin your own PiML journey with this demo notebook.

High-code Examples

The same examples can also be run by high-code APIs:

  1. BikeSharing data: ipynb
  2. CaliforniaHousing data: ipynb
  3. TaiwanCredit data: ipynb
  4. Model saving: ipynb
  5. Results return: ipynb

Low-code Usage on Google Colab

Stage 1: Initialize an experiment, Load and Prepare data

frompimlimportExperimentexp=Experiment()
exp.data_loader()
exp.data_summary()
exp.data_prepare()
exp.data_quality()
exp.feature_select()
exp.eda()

Stage 2: Train intepretable models

exp.model_train()

Stage 3. Explain and Interpret

exp.model_explain()
exp.model_interpret() 

Stage 4. Diagnose and Compare

exp.model_diagnose()
exp.model_compare()
exp.model_fairness()
exp.model_fairness_compare()

Arbitrary Black-Box Modeling

For example, train a complex LightGBM with depth 7 and register it to the experiment:

fromlightgbmimportLGBMClassifierexp.model_train(LGBMClassifier(max_depth=7), name='LGBM-7')

Then, compare it to inherently interpretable models (e.g. XGB2 and GAMI-Net):

exp.model_compare()

Citations

PiML, ReLU-DNN Aletheia and GAMI-Net

"PiML Toolbox for Interpretable Machine Learning Model Development and Diagnostics" (A. Sudjianto, A. Zhang, Z. Yang, Y. Su and N. Zeng, 2023) arXiv link

@article{sudjianto2023piml,
title={PiML Toolbox for Interpretable Machine Learning Model Development and Diagnostics},
author={Sudjianto, Agus and Zhang, Aijun and Yang, Zebin and Su, Yu and Zeng, Ningzhou},
year={2023}
}

"Designing Inherently Interpretable Machine Learning Models" (A. Sudjianto and A. Zhang, 2021) arXiv link

@article{sudjianto2021designing,
title={Designing Inherently Interpretable Machine Learning Models},
author={Sudjianto, Agus and Zhang, Aijun},
journal={arXiv preprint:2111.01743},
year={2021}
}

"Unwrapping The Black Box of Deep ReLU Networks: Interpretability, Diagnostics, and Simplification" (A. Sudjianto, W. Knauth, R. Singh, Z. Yang and A. Zhang, 2020) arXiv link

@article{sudjianto2020unwrapping,
title={Unwrapping the black box of deep ReLU networks: interpretability, diagnostics, and simplification},
author={Sudjianto, Agus and Knauth, William and Singh, Rahul and Yang, Zebin and Zhang, Aijun},
journal={arXiv preprint:2011.04041},
year={2020}
}

"GAMI-Net: An Explainable Neural Network based on Generalized Additive Models with Structured Interactions" (Z. Yang, A. Zhang, and A. Sudjianto, 2021) arXiv link

@article{yang2021gami,
title={GAMI-Net: An explainable neural network based on generalized additive models with structured interactions},
author={Yang, Zebin and Zhang, Aijun and Sudjianto, Agus},
journal={Pattern Recognition},
volume={120},
pages={108192},
year={2021}
}
Other Interpretable ML Models

"Fast Interpretable Greedy-Tree Sums (FIGS)" (Tan, Y.S., Singh, C., Nasseri, K., Agarwal, A. and Yu, B., 2022)

@article{tan2022fast,
title={Fast interpretable greedy-tree sums (FIGS)},
author={Tan, Yan Shuo and Singh, Chandan and Nasseri, Keyan and Agarwal, Abhineet and Yu, Bin},
journal={arXiv preprint arXiv:2201.11931},
year={2022}
}

"Accurate intelligible models with pairwise interactions" (Y. Lou, R. Caruana, J. Gehrke, and G. Hooker, 2013)

@inproceedings{lou2013accurate,
title={Accurate intelligible models with pairwise interactions},
author={Lou, Yin and Caruana, Rich and Gehrke, Johannes and Hooker, Giles},
booktitle={Proceedings of the 19th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining},
pages={623--631},
year={2013},
organization={ACM}
} 

"Purifying Interaction Effects with the Functional ANOVA: An Efficient Algorithm for Recovering Identifiable Additive Models" (Lengerich, B., Tan, S., Chang, C.H., Hooker, G. and Caruana, R., 2020)

@inproceedings{lengerich2020purifying,
title={Purifying interaction effects with the functional anova: An efficient algorithm for recovering identifiable additive models},
author={Lengerich, Benjamin and Tan, Sarah and Chang, Chun-Hao and Hooker, Giles and Caruana, Rich},
booktitle={International Conference on Artificial Intelligence and Statistics},
pages={2402--2412},
year={2020},
organization={PMLR}
}

"InterpretML: A Unified Framework for Machine Learning Interpretability" (H. Nori, S. Jenkins, P. Koch, and R. Caruana, 2019)

@article{nori2019interpretml,
title={InterpretML: A Unified Framework for Machine Learning Interpretability},
author={Nori, Harsha and Jenkins, Samuel and Koch, Paul and Caruana, Rich},
journal={arXiv preprint:1909.09223},
year={2019}
}

About

PiML (Python Interpretable Machine Learning) toolbox for model development & diagnostics

Topics

Resources

Stars

1.3k stars

Watchers

24 watching

Forks

Releases

Packages

Used by

Contributors

Languages