Skip to content
Joshua Levy edited this page Aug 13, 2020 · 12 revisions

Welcome to the InteractionTransformer wiki!

This code accompanies the paper "Don't Dismiss Logistic Regression: The Case for Sensible Extraction of Interactions in the Era of Machine Learning".

Now published in BMC Medical Research Methodology: https://bmcmedresmethodol.biomedcentral.com/articles/10.1186/s12874-020-01046-3

This statistical and machine learning software package was designed in mind for those seeking to supplement traditional statistical model-building capabilities. While machine learning techniques have demonstrated the capability to outperform traditional statistical approaches through a set of model-building computational heuristics, they are often less interpretable than their traditional counterparts and do not perform well in a linear solution space. Model interpretability approaches such as SHAP (https://github.com/slundberg/shap) have provided model agnostic means to explain predictions, still more often than not important interactions and transformations obtained through the model building approach are obfuscated when interpreting the machine learning model results via SHAP.

Here, we utilize SHAP interaction scores to provide a convenient means from which too add interactions to your design matrix, and offer R and Python solutions for performing these analyses. This software package does not seek to serve as the ultimate model building approach, but certainly supplements linear model building strategies versus stepwise regression techniques, allowing for traditional statistical model interpretability at machine learning performance. Please check out our manuscript for more information.

What our package does: extract interactions in the data and add them to your design matrix. This is particularly useful when the machine learning approach outperforms the traditional modeling approach.

What our package does not do: extract transformations in the data to add them to the design matrix. For those capabilities, please see the SAFE Transformer package (https://github.com/ModelOriented/SAFE). Our package does have an experimental feature that will iteratively call InteractionTransformer and SAFETransformer to develop multi-layer interactions/transformation models, but this is still under development.

Here, we will run through brief install instructions and then give a demo for how to run this package using the data found in test_data in both R and Python (See "R" and "Py" pages).

QUICKSTART DEMOS can be found here:

Python: https://github.com/jlevy44/InteractionTransformer/blob/master/demos/InteractionTransformerPythonDemo.ipynb

R: https://github.com/jlevy44/InteractionTransformer/blob/master/demos/InteractionTransformerRDemo.Rmd