From 5439462bdf79b82095c0c14e7121c6d20fde85a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleksandra=20Grudzi=C4=85=C5=BC?= Date: Thu, 25 Oct 2018 11:39:32 +0200 Subject: [PATCH] update paper.md --- misc/img/breakdown.png | Bin 10965 -> 10493 bytes misc/img/ceteris_paribus.png | Bin 11645 -> 11414 bytes misc/paper.bib | 43 ++++++++++++++---------------- misc/paper.md | 49 ++++++++++++++++++----------------- 4 files changed, 45 insertions(+), 47 deletions(-) diff --git a/misc/img/breakdown.png b/misc/img/breakdown.png index e0ce1709c6dec5a1ce662f022d96791aa58013f3..91914e233279618a421b69dd3f79516a3a628b5e 100644 GIT binary patch literal 10493 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 AEC2ui literal 10965 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 B$p-)c diff --git a/misc/img/ceteris_paribus.png b/misc/img/ceteris_paribus.png index 50067ef7366bf4364657703741ed111c42f61302..bf0426764efa36fe6423d6240475acdba57146f0 100644 GIT binary patch literal 11414 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 C#HK$0 literal 11645 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 diff --git a/misc/paper.bib b/misc/paper.bib index 91ea0b9..06547bc 100644 --- a/misc/paper.bib +++ b/misc/paper.bib @@ -3,21 +3,19 @@ @Manual{ceterisParibus author = {Biecek, Przemysław}, year = {2018}, note = {R package version 0.2.1}, - url = {https://CRAN.R-project.org/package=ceterisParibus} + url = {http://CRAN.R-project.org/package=ceterisParibus} } @article{2018arXiv180608915B, - author = {{Biecek}, Przemysław}, + author = {{Biecek}, Przemysław}, title = "{DALEX: explainers for complex predictive models}", - journal = {ArXiv e-prints}, -archivePrefix = "arXiv", - eprint = {1806.08915}, - primaryClass = "stat.ML", - keywords = {Statistics - Machine Learning, Computer Science - Artificial Intelligence, Computer Science - Machine Learning, Statistics - Applications}, - year = 2018, - month = jun, - adsurl = {http://adsabs.harvard.edu/abs/2018arXiv180608915B}, - adsnote = {Provided by the SAO/NASA Astrophysics Data System} + url = {http://arxiv.org/abs/1806.08915}, + eprint = {1806.08915}, + primaryClass = "stat.ML", + keywords = {Statistics - Machine Learning, Computer Science - Artificial Intelligence, Computer Science - Machine Learning, Statistics - Applications}, + year = 2018, + adsurl = {http://adsabs.harvard.edu/abs/2018arXiv180608915B}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} } @@ -26,7 +24,7 @@ @book{collett2015modelling author={Collett, David}, isbn={9781498731690}, series={Chapman \& Hall/CRC Texts in Statistical Science}, - url={https://books.google.pl/books?id=Okf7CAAAQBAJ}, + url={http://books.google.pl/books?id=Okf7CAAAQBAJ}, year={2015}, publisher={CRC Press} } @@ -43,11 +41,12 @@ @article{lu2003modeling @Article{randomForestSRC, title = {Random survival forests}, author = {Ishwaran, Hemant and Kogalur, Udaya B. and Blackstone, Eugene H. and Lauer, Michael S.}, - journal = {Ann. Appl. Statist.}, + journal = {The Annals of Applied Statistics}, year = {2008}, volume = {2}, number = {3}, pages = {841--860}, + doi = {doi:10.1214/08-AOAS169}, url = {http://arXiv.org/abs/0811.1645v1}, pdf = {http://arxiv.org/pdf/0811.1645}, } @@ -61,8 +60,8 @@ @article{ELEUTERI2003855 year = {2003}, note = {Advances in Neural Networks Research: IJCNN '03}, issn = {0893-6080}, - doi = {https://doi.org/10.1016/S0893-6080(03)00098-4}, - url = {http://www.sciencedirect.com/science/article/pii/S0893608003000984}, + doi = {10.1016/S0893-6080(03)00098-4}, + url = {http://doi.org/10.1016/S0893-6080(03)00098-4}, author = {Eleuteri, Antonio and Tagliaferri, Roberto and Milano, Leopoldo and De Placido, Sabino and De Laurentiis, Michele}, keywords = {Survival analysis, Conditioning probability estimation, Neural networks, Bayesian learning, MCMC methods} } @@ -72,7 +71,7 @@ @article{RJ-2017-016 title = {{pdp: An R Package for Constructing Partial Dependence Plots}}, year = {2017}, journal = {{The R Journal}}, - url = {https://journal.r-project.org/archive/2017/RJ-2017-016/index.html}, + url = {http://journal.r-project.org/archive/2017/RJ-2017-016/index.html}, pages = {421--436}, volume = {9}, number = {1} @@ -94,13 +93,11 @@ @Article{BSScore @ARTICLE{2018arXiv180401955S, author = {Staniak, Mateusz and Biecek, Przemysław}, title = "{Explanations of model predictions with live and breakDown packages}", - journal = {ArXiv e-prints}, -archivePrefix = "arXiv", eprint = {1804.01955}, primaryClass = "stat.ML", keywords = {Statistics - Machine Learning, Computer Science - Learning, Statistics - Applications}, year = 2018, - month = apr, + url = {http://arxiv.org/abs/1804.01955}, adsurl = {http://adsabs.harvard.edu/abs/2018arXiv180401955S}, adsnote = {Provided by the SAO/NASA Astrophysics Data System} } @@ -108,7 +105,7 @@ @ARTICLE{2018arXiv180401955S @article{Molnar2018, doi = {10.21105/joss.00786}, - url = {https://doi.org/10.21105/joss.00786}, + url = {http://doi.org/10.21105/joss.00786}, year = {2018}, month = {jun}, publisher = {The Open Journal}, @@ -128,7 +125,7 @@ @misc{pramit_choudhary_2018_1198885 month = mar, year = 2018, doi = {10.5281/zenodo.1198885}, - url = {https://doi.org/10.5281/zenodo.1198885} + url = {http://doi.org/10.5281/zenodo.1198885} } @@ -160,8 +157,8 @@ @article{doi:10.4155/fmc.11.23 year = {2011}, doi = {10.4155/fmc.11.23}, note ={PMID: 21554073}, - URL = {https://doi.org/10.4155/fmc.11.23}, - eprint = {https://doi.org/10.4155/fmc.11.23} + URL = {http://doi.org/10.4155/fmc.11.23}, + eprint = {http://doi.org/10.4155/fmc.11.23} } diff --git a/misc/paper.md b/misc/paper.md index 37197ee..518032c 100644 --- a/misc/paper.md +++ b/misc/paper.md @@ -1,5 +1,5 @@ --- -title: 'survxai: an R package for model agnostic explanations of survival models' +title: 'survxai: an R package for model-agnostic explanations of survival models' authors: - affiliation: 1, 2 name: Aleksandra Grudziaz @@ -10,7 +10,7 @@ authors: - affiliation: 1, 2 name: Przemyslaw Biecek orcid: 0000-0001-8423-1823 -date: "3 August 2018" +date: "23 August 2018" output: pdf_document bibliography: paper.bib tags: @@ -20,63 +20,63 @@ tags: - interpretable machine learning affiliations: - index: 1 - name: Faculty of Mathematics, Informatics, and Mechanics, University of Warsaw -- index: 2 name: Faculty of Mathematics and Information Science, Warsaw University of Technology +- index: 2 + name: Faculty of Mathematics, Informatics, and Mechanics, University of Warsaw --- # Introduction -Predictive models are widely used in the supervised machine learning. Three most common classes of such models are: *regression models*, here the target variable is continuous numeric, *classification models* here the target variable is binary or categorical and *survival models* here the target is some censored variable. Common examples of censored variables are time to death (but some cases lived for x years and are still alive), cessation of service by the customer or failure of a machine component. +Predictive models are widely used in supervised machine learning. Three most common classes of such models are: *regression models*, where the target variable is continuous numeric, *classification models*, where the target variable is binary or categorical and *survival models*, where the target is some censored variable. Common examples of censored variables are times to death (but some cases lived for x years and are still alive), cessation of service by customer, or failure of machine components. -Modern predictive models are often complex in structure. Think about neural networks [@ELEUTERI2003855] or random forest [@randomForestSRC]. Such models may be described by thousands of coefficients. Often such flexibility leads to high performance, but makes these models opaque, hard to understand. It is acceptable in cases in which only the model accuracy is important, but in cases that involve human decisions it may not be enough. To trust model predictions one needs to see which features are important and how model predictions would change if some feature was changed. +Modern predictive models are often complex in structure; for example neural networks [@ELEUTERI2003855] or random forest [@randomForestSRC]. Such sophisticated tools are also more and more often used in survival analysis. These models may be described by thousands of coefficients. Often such flexibility leads to high performance, but makes models opaque and hard to understand. This is acceptable in cases where only the model accuracy is important, but in cases that involve human decisions, it may not be informative enough. To trust model predictions one needs to see which features are important and how model predictions would change if some feature was changed. -The area of model interpretability or explanability gains quickly attention of machine learning experts. Understanding of complex models leads not only to higher trust in model predictions but also to better models. Better means that they are more robust and maintain high accuracy on validation data. See examples in `DALEX` [@2018arXiv180608915B] or `iml` [@Molnar2018] R packages. +The area of model interpretability or explanability has quickly gained the attention of machine learning experts. Understanding of complex models leads not only to higher trust in model predictions but also better models. Better, means that the models are more robust and obtains higher accuracy on validation data. See examples in the `DALEX` [@2018arXiv180608915B] or `iml` [@Molnar2018] R packages. -Existing tools for model agnostic explanations are focused on regression models and classification problems as in both cases model predictions may be summarised by a single number. Survival models require different approach as predictions are in a form of survival curves. Demand for such explainers leads to some model specific solutions, like `iSurvive` introduced by [@pmlr-v70-dempsey17a] for continuous time hidden Markov model. Yet, we are lacking of model agnostic tools for survival models. +Existing tools for model agnostic explanations are focused on regression models and classification problems, as in both cases model predictions that may be summarised by a single number. Survival models require different approaches as predictions are in a form of survival curves. Demand for such explainers has led to some model specific solutions, like `iSurvive` [@pmlr-v70-dempsey17a] for continuous time hidden Markov models. Yet, there is currently a lack of model agnostic tools for survival models. -The `survxai` fills out this gap. This R package is designed to deliver local and global explanations for survival models in a model agnostic fashion. In the package documentation we demonstrate examples for Cox models and for Survival Random Forest models. -The `survxai` package consists new implementations and visualisations of explainers designed for survival models. Functions are well documented, package is supplemented with unit tests and illustrations. -Regardless of the complexity of the model, methods implemented in the `survxai` package maintain a certain level of interpretability, important in medical applications [@collett2015modelling], churn analysis [@lu2003modeling] and others. +The `survxai` fills this gap. This R package is designed to deliver local and global explanations for survival models, in a model-agnostic fashion. In the package documentation we demonstrate examples for survival random forest models and for Cox models. +The `survxai` package consists of new implementations and visualisations of explainers, designed for survival models. Functions are well documented and the package is supplemented with unit tests, and illustrations. +Regardless of the complexity of the model, the methods implemented in the `survxai` package maintain a certain level of interpretability, important in medical applications [@collett2015modelling], churn analysis [@lu2003modeling] and others. # Explanations of survival models -The R package `survxai` is a tool for creating explanations of survival models. It's model agnostic, thus is working with both complex and simple survival models. It also allows to compare two or more models. +The R package `survxai` is a tool for creating explanations of survival models. It is model-agnostic, and thus works for both complex and simple survival models. It also allows for comparisons between two or more models. -Currently, four classes of model explainers are implemented. Two for local explanations (for a single prediction), and two for global explanations (for a whole model). +Currently, four classes of model explainers are implemented. Two for local explanations (for a single prediction), and two for global explanations (for a whole model). -Package `survxai` is available on CRAN and a development version of the package can be found on [https://github.com/MI2DataLab/survxai](https://github.com/MI2DataLab/survxai). +The package `survxai` is available on CRAN. It can be install using the command `install.packages('survxai')`. The development version of the package can be found on [https://github.com/MI2DataLab/survxai](https://github.com/MI2DataLab/survxai). **Local methods** are the explanations of one observation. -- **Ceteris Paribus** plot presents model responses around a single point in the feature space [@ceterisParibus]. See an example in Figure 1. Each panel is related to a single variable. Single panel shows how a model prediction (survival curve) would change if only a single variable will be changed. It if usefull for *what-if* reasoning. Each curve in a panle is realted a different value of the selected variable. -Ceteris Paribus plot illustrates how may the survival curve change along with the changing values of the variable. +- **The Ceteris Paribus** plot presents model responses around a single point in the feature space [@ceterisParibus]. See Figure 1 for an example. Each panel is related to a single variable. Each single panel shows how a model prediction (survival curve) would change if only a single variable were changed. It is useful for *what-if* reasoning. Each curve in a panel is related to a different value of the selected variable. +The Ceteris Paribus plot illustrates how the survival curve may change with the changing of values of variable. -![Ceteris Paribus plot for Cox Proportional Hazards model with three variables. Black survival curve corresponds to a observation of interest. Middle panel shows that prediction for sex=0 are worse than for sex=1.](img/ceteris_paribus.png) +![Ceteris Paribus plot for survival random forest model with three variables. The black dashed survival curve corresponds to an observation of interest. The left panel shows the survival curves for different values of bilirubin. Colors correspond to mean survival curves of observations from quintiles. From red which is the first quintile to blue which is the last one. The middle panel shows that prediction for sex=0 is worse than for sex=1 for times less than 7.5. The right panel analogously shows survival curves for different levels of the variable stage.](img/ceteris_paribus.png) -- **break down** plot presents variable contributions in final predictions [@2018arXiv180401955S]. See an example in Figure 2. The Break Down of prediction for survival model helps to understand which factors drive survival probability for a single observation. +- **The break down** plot presents variable contributions in final predictions [@2018arXiv180401955S]. See Figure 2 for an example. The break down of predictions for survival models help to understand which factors drive survival probabilities for a single observation. -![Break Down plot for Cox Proportional Hazards model. Variables bili and stage have highest impact on final prediction.](img/breakdown.png) +![Break down plot for survival random forest model. Variables bili and stage have the highest impact on the final prediction.](img/breakdown.png) **Global methods** are model performance and explanations of the conditional model structure. -- **variable response** plot is designed to better understand the relation between a variable and a model output. See an example in Figure 3. Variable response plot illustrates how the mean survival curve change along with the changing values of the variable. It is inspired by partial dependence plots [@RJ-2017-016]. +- **The variable response** plot is designed to better understand the relation between a variable and a model output. See Figure 3 for an example. The variable response plot illustrates how the mean survival curve changes along with the changing values of the variable. It is inspired by partial dependence plots [@RJ-2017-016]. -![Variable response plot for three models and variable sex. In survival random forest the sex variable affects model predictions in a different way than in other models.](img/variable_response.png) +![Variable response plots for three models and variable sex. In survival random forest, the sex variable affects model predictions in a different way than in other models.](img/variable_response.png) -- **model performance** curves present prediction error for the chosen survival model depending on time. See an example in Figure 4. For computing prediction error we use the expected Brier Score [@BSScore]. At a given time point t, the Brier score for a single observation is the squared difference between observed survival status and a model-based prediction of surviving time t. +- **The model performance** curves present prediction error for the chosen survival model, depending on time. See Figure 4 for an example. For computing prediction error, we use the expected Brier Score [@BSScore]. At a given time point t, the Brier score for a single observation is the squared difference between observed survival status and a model-based prediction of surviving time t. -![Model performance plot for three models. In random forest model predictions are less accurate after year 4.](img/model_performance.png) +![Model performance plots for three models. In random forest model, predictions are less accurate after year 4.](img/model_performance.png) # Conclusions and future work -Explainers implemented in the `survxai` package allow exploring one or more models in a feature-by-feature fashion. This approach will miss interactions between variables that may be handled by the models. The main problem with integrations is that number of interactions grows rapidly with the number of features what makes it hard to present in a readable form. +Explainers implemented in the `survxai` package allow for exploration of one or more models in a feature-by-feature fashion. This approach will miss interactions between variables that may be handled by the models. The main problem with integrations is that number of interactions grows rapidly with the number of features what makes it hard to present in a readable form. # Acknowledgments @@ -87,3 +87,4 @@ The work was supported by NCN Opus grant 2016/21/B/ST6/02176. # References +