├── LICENSE ├── README.md ├── datasets ├── ecg_test.csv └── ecg_train.csv └── notebooks ├── Cancer_diagnosis_decision_tree_visualization_example.ipynb ├── Clinical_Named_Entity_Recognition_Model.ipynb ├── Clinical_Relation_Extraction.ipynb ├── Eplaining diagnosis_ knowledge graph reasoning.ipynb ├── Explainable_COVID-19_Diagnosis_X-Ray_GradCAM_LRP_ResNet18.ipynb ├── Explainable_ECG_time_series_classification_LIME.ipynb ├── Explainable_Osteoarthritis_Diagnosis_X-Ray_GradCAM_LRP_VGG19.ipynb └── SHAP DeepExplainer on simulated DNA sequence.ipynb /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Rezaul Karim, Ph.D. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Explainale AI (XAI) for bioinformatics 2 | Codes and supplementary materials for our paper "Explainable AI for Bioinformatics: Importance, Methods, Tools, and Applications", submitted to [Briefings in Bioinformatics](https://academic.oup.com/bib) journal. This repo will be updated periodically. 3 | 4 | ## Notebooks 5 | We provided several interactive Jupyter [notebooks](https://github.com/rezacsedu/XAI-for-bioinformatics/tree/main/notebooks) showing how interpretable ML techniques can be used to improve the interpretability for bioinformatics research use cases. Please note that some notebooks don't accompany the datasets, mainly due to NDA agreements. 6 | 7 | ## Paers and books on interpretable ML methods 8 | We categorize the papers and books based on interpretable ML methods 9 | 10 | ### Books 11 | * A Guide for Making Black Box Models Explainable. _Molnar 2019_ [pdf](https://christophm.github.io/interpretable-ml-book/) 12 | 13 | ### Surveys (papers) 14 | * A Survey on Explainable Artificial Intelligence (XAI): Toward Medical XAI. _Tjao et al. 2020_ [pdf](https://arxiv.org/pdf/1907.07374.pdf) 15 | * Opportunities and Challenges in Explainable Artificial Intelligence (XAI): A Survey. _Das et al. 2020_ [pdf](https://arxiv.org/pdf/2006.11371.pdf) 16 | * Interpretable machine learning: definitions, methods, and applications. _Murdoch et al. 2019_ [pdf](https://arxiv.org/pdf/1901.04592v1.pdf) 17 | * A brief survey of visualization methods for deep learning models from the perspective of Explainable AI. _Chalkiadakis 2018_ [pdf](https://www.macs.hw.ac.uk/~ic14/IoannisChalkiadakis_RRR.pdf) 18 | * A Survey Of Methods For Explaining Black Box Models. _Guidotti et al. 2018_ [pdf](https://arxiv.org/pdf/1802.01933.pdf) 19 | * Explaining Explanations: An Overview of Interpretability of Machine Learning. _Gilpin et al. 2019_ [pdf](https://arxiv.org/pdf/1806.00069.pdf) 20 | * Explainable Artificial Intelligence: a Systematic Review. _Vilone at al. 2020_ [pdf](https://arxiv.org/pdf/2006.00093.pdf) 21 | 22 | ### Attribution maps and gradient-based (papers) 23 | * `DTCAV`: Automating Interpretability: Discovering and Testing Visual Concepts Learned by Neural Networks. _Ghorbani et al. 2019_ [pdf](https://arxiv.org/abs/1902.03129) 24 | * `AM`: Visualizing higher-layer features of a deep network. _Erhan et al. 2009_ [pdf](https://www.researchgate.net/publication/265022827_Visualizing_Higher-Layer_Features_of_a_Deep_Network) 25 | * Deep inside convolutional networks: Visualising image classification models and saliency maps. _Simonyan et al. 2013_ [pdf](https://arxiv.org/pdf/1312.6034.pdf) 26 | * `DeepVis`: Understanding Neural Networks through Deep Visualization. _Yosinski et al. ICML workshop 2015_ [pdf](http://yosinski.com/media/papers/Yosinski__2015__ICML_DL__Understanding_Neural_Networks_Through_Deep_Visualization__.pdf) 27 | * Visualizing and Understanding Recurrent Networks. _Kaparthey et al. ICLR 2015_ [pdf](https://arxiv.org/abs/1506.02078) 28 | * Feature Removal Is A Unifying Principle For Model Explanation Methods. _Covert et al. 2020_ [pdf](https://arxiv.org/pdf/2011.03623.pdf) 29 | * `Gradient`: Deep inside convolutional networks: Visualising image classification models and saliency maps. _Simonyan et al. 2013_ [pdf](https://arxiv.org/pdf/1312.6034.pdf) 30 | * `Guided-backprop`: Striving for simplicity: The all convolutional net. _Springenberg et al. 2015_ [pdf](http://arxiv.org/pdf/1412.6806.pdf) 31 | * `SmoothGrad`: removing noise by adding noise. _Smilkov et al. 2017_ [pdf](https://arxiv.org/abs/1706.03825) 32 | * `DeepLIFT`: Learning important features through propagating activation differences. _Shrikumar et al. 2017_ [pdf](https://arxiv.org/pdf/1605.01713.pdf) 33 | * `IG`: Axiomatic Attribution for Deep Networks. _Sundararajan et al. 2018_ [pdf](http://proceedings.mlr.press/v70/sundararajan17a/sundararajan17a.pdf) 34 | * `EG`: Learning Explainable Models Using Attribution Priors. _Erion et al. 2019_ [pdf](https://arxiv.org/abs/1906.10670) 35 | * `LRP`: Beyond saliency: understanding convolutional neural networks from saliency prediction on layer-wise relevance propagation [pdf](https://arxiv.org/abs/1712.08268) 36 | * `DTD`: Explaining NonLinear Classification Decisions With Deep Tayor Decomposition [pdf](https://arxiv.org/abs/1512.02479) 37 | * `CAM`: Learning Deep Features for Discriminative Localization. _Zhou et al. 2016_ [link](http://cnnlocalization.csail.mit.edu/) 38 | * `Grad-CAM`: Visual Explanations from Deep Networks via Gradient-based Localization. _Selvaraju et al. 2017_ [pdf](https://arxiv.org/abs/1610.02391) 39 | * `Grad-CAM++`: Improved Visual Explanations for Deep Convolutional Networks. _Chattopadhyay et al. 2017_ [pdf](https://arxiv.org/abs/1710.11063) 40 | * `Smooth Grad-CAM++`: An Enhanced Inference Level Visualization Technique for Deep Convolutional Neural Network Models. _Omeiza et al. 2019_ [pdf](https://arxiv.org/pdf/1908.01224.pdf) 41 | * `NormGrad`: There and Back Again: Revisiting Backpropagation Saliency Methods. _Rebuffi et al. CVPR 2020_ [pdf](https://arxiv.org/abs/2004.02866) 42 | * `Score-CAM`: Score-Weighted Visual Explanations for Convolutional Neural Networks. _Wang et al. CVPR 2020 workshop_ [pdf](https://openaccess.thecvf.com/content_CVPRW_2020/papers/w1/Wang_Score-CAM_Score-Weighted_Visual_Explanations_for_Convolutional_Neural_Networks_CVPRW_2020_paper.pdf) 43 | * `Relevance-CAM`: Your Model Already Knows Where to Look. _Lee et al. CVPR 2021_ [pdf](https://openaccess.thecvf.com/content/CVPR2021/papers/Lee_Relevance-CAM_Your_Model_Already_Knows_Where_To_Look_CVPR_2021_paper.pdf) 44 | * `LIFT-CAM`: Towards Better Explanations of Class Activation Mapping. _Jung & Oh ICCV 2021_ [pdf](https://openaccess.thecvf.com/content/ICCV2021/papers/Jung_Towards_Better_Explanations_of_Class_Activation_Mapping_ICCV_2021_paper.pdf). 45 | 46 | ### Sensitivity and perturbation-based (papers) 47 | * Generative causal explanations of black-box classifiers. _O’Shaughnessy et al. 2020_ [pdf](https://arxiv.org/abs/2006.13913) 48 | * Removing input features via a generative model to explain their attributions to classifier's decisions. _Agarwal et al. 2019_ [pdf](https://arxiv.org/abs/1910.04256) 49 | * Challenging common interpretability assumptions in feature attribution explanations? _Dinu et al. NeurIPS workshop 2020_ [pdf](https://arxiv.org/abs/2012.02748) 50 | * The effectiveness of feature attribution methods and its correlation with automatic evaluation scores. _Nguyen, Kim, Nguyen 2021_ [pdf](http://anhnguyen.me/project/feature-attribution-effectiveness/) 51 | * `Deletion` & `Insertion`: Randomized Input Sampling for Explanation of Black-box Models. _Petsiuk et al. BMVC 2018_ [pdf](https://arxiv.org/pdf/1806.07421.pdf) 52 | * DiffROAR: Do Input Gradients Highlight Discriminative Features? _Shah et al. NeurIPS 2021_ [pdf](https://arxiv.org/pdf/2102.12781.pdf) 53 | * `RISE`: Randomized Input Sampling for Explanation of Black-box Models. _Petsiuk et al. BMVC 2018_ [pdf](https://arxiv.org/pdf/1806.07421.pdf) 54 | * `LIME`: Why should i trust you?: Explaining the predictions of any classifier. _Ribeiro et al. 2016_ [pdf](https://arxiv.org/pdf/1602.04938.pdf) 55 | * `LIME-G`: Removing input features via a generative model to explain their attributions to classifier's decisions. _Agarwal & Nguyen. ACCV 2020_ [pdf](https://arxiv.org/abs/1910.04256) 56 | * `SHAP`: A Unified Approach to Interpreting Model Predictions. _Lundberg et al. 2017_ [pdf](https://papers.nips.cc/paper/7062-a-unified-approach-to-interpreting-model-predictions.pdf) 57 | * `IM`: Interpretation of NLP models through input marginalization. _Kim et al. EMNLP 2020_ [pdf](https://arxiv.org/abs/2010.13984). 58 | 59 | ### Rule- and counterfactual explanations (papers) 60 | * Local Rule-based Explanations of Black Box Decision Systems. _Guidotti et al. 2021_ [pdf](https://arxiv.org/pdf/1805.10820.pdf) 61 | * `FIDO`: Explaining image classifiers by counterfactual generation. _Chang et al. ICLR 2019_ [pdf](https://arxiv.org/pdf/1807.08024.pdf) 62 | * `CEM`: Explanations based on the Missing: Towards Contrastive Explanations with Pertinent Negatives. _Dhurandhar & Chen et al. NeurIPS 2018_ [pdf](https://proceedings.neurips.cc/paper/2018/file/c5ff2543b53f4cc0ad3819a36752467b-Paper.pdf) 63 | * Counterfactual Explanations for Machine Learning: A Review. _Verma et al. 2020_ [pdf](https://arxiv.org/pdf/2010.10596.pdf) 64 | * Interpreting Neural Network Judgments via Minimal, Stable, and Symbolic Corrections. _Zhang et al. 2018_ [pdf](http://papers.nips.cc/paper/7736-interpreting-neural-network-judgments-via-minimal-stable-and-symbolic-corrections.pdf) 65 | * Counterfactual Visual Explanations. _Goyal et al. 2019_ [pdf](https://arxiv.org/pdf/1904.07451.pdf) 66 | * Generative Counterfactual Introspection for Explainable Deep Learning. _Liu et al. 2019_ [pdf](https://arxiv.org/abs/1907.03077). 67 | 68 | ### Knowledge-based (papers) 69 | * ReasonChainQA: Text-based Complex Question Answering with Explainable Evidence Chains. _Zhu et al. 2022_ [pdf](https://arxiv.org/pdf/2210.08763.pdf) 70 | * Knowledge-graph-based explainable AI: A systematic review. _Rajabi et al. 2022_ [link](https://journals.sagepub.com/doi/full/10.1177/01655515221112844) 71 | * Knowledge-based XAI through CBR: There is more to explanations than models can tell. _Weber et al. 2021_ [pdf](https://arxiv.org/pdf/2108.10363.pdf) 72 | * The Role of Human Knowledge in Explainable AI. _Tocchetti et al. 2022_ [link](https://www.mdpi.com/2306-5729/7/7/93). 73 | 74 | ### XAI with focus on HCI (papers) 75 | * Question-Driven Design Process for Explainable AI User Experiences _Liao 2021_ [pdf](https://arxiv.org/pdf/2104.03483.pdf) 76 | * Evaluating Explainable AI: Which Algorithmic Explanations Help Users Predict Model Behavior? _Hase & Bansal ACL 2020_ [pdf](https://arxiv.org/pdf/2005.01831.pdf) 77 | * Teach Me to Explain: A Review of Datasets for Explainable NLP. _Wiegreffe & Marasović 2021_ [pdf](https://arxiv.org/abs/2102.12060) 78 | * Yang, S. C. H., & Shafto, P. Explainable Artificial Intelligence via Bayesian Teaching. NIPS 2017 [pdf](http://shaftolab.com/assets/papers/yangShafto_NIPS_2017_machine_teaching.pdf) 79 | * Explainable AI for Designers: A Human-Centered Perspective on Mixed-Initiative Co-Creation [pdf](http://www.antoniosliapis.com/papers/explainable_ai_for_designers.pdf) 80 | * ICADx: Interpretable computer aided diagnosis of breast masses. _Kim et al. 2018_ [pdf](https://arxiv.org/abs/1805.08960) 81 | * Neural Network Interpretation via Fine Grained Textual Summarization. _Guo et al. 2018_ [pdf](https://arxiv.org/pdf/1805.08969.pdf) 82 | * LS-Tree: Model Interpretation When the Data Are Linguistic. _Chen et al. 2019_ [pdf](https://arxiv.org/abs/1902.04187). 83 | 84 | ### Distilling DNNs into more interpretable models (papers) 85 | * Interpreting CNNs via Decision Trees [pdf](https://arxiv.org/abs/1802.00121) 86 | * Distilling a Neural Network Into a Soft Decision Tree [pdf](https://arxiv.org/abs/1711.09784) 87 | * Improving the Interpretability of Deep Neural Networks with Knowledge Distillation. _Liu et al. 2018_ [pdf](https://arxiv.org/pdf/1812.10924.pdf). 88 | 89 | ## Application areas 90 | ### Computer Vision 91 | * Multimodal explanations: Justifying decisions and pointing to the evidence. _Park et al. CVPR 2018_ [pdf](https://arxiv.org/abs/1802.08129) 92 | * `IA-RED2`: Interpretability-Aware Redundancy Reduction for Vision Transformers. _Pan et al. NeurIPS 2021_ [pdf](https://arxiv.org/abs/2106.12620) 93 | * Transformer Interpretability Beyond Attention Visualization. _Hila et al. CVPR 2021_ [pdf](https://arxiv.org/abs/2012.09838) 94 | 95 | ### NLP 96 | * `Deletion_BERT`: Double Trouble: How to not explain a text classifier’s decisions using counterfactuals synthesized by masked language models. _Pham et al. 2022_ [pdf](https://arxiv.org/abs/2110.11929) 97 | * Considering Likelihood in NLP Classification Explanations with Occlusion and Language Modeling. _Harbecke et al. 2020_ [pdf](https://arxiv.org/abs/2004.09890). 98 | 99 | ## Interpretable ML tools and libraries 100 | ### GUI tools 101 | * `DeepVis`: Deep Visualization Toolbox. _Yosinski et al. ICML 2015_ [code](https://github.com/yosinski/deep-visualization-toolbox) 102 | * `SWAP`: Generate adversarial poses of objects in a 3D space. _Alcorn et al. CVPR 2019_ [code](https://github.com/airalcorn2/strike-with-a-pose) 103 | * `AllenNLP`: Query online NLP models with user-provided inputs and observe explanations (Gradient, Integrated Gradient, SmoothGrad). _Last accessed 03/2020_ [demo](https://demo.allennlp.org/sentiment-analysis) 104 | * `3DB`: A framework for analyzing computer vision models with simulated data [code](https://github.com/3db/3db/). 105 | 106 | ### Libraries 107 | * [CNN visualizations](https://github.com/utkuozbulak/pytorch-cnn-visualizations) (feature visualization, PyTorch) 108 | * [iNNvestigate](https://github.com/albermax/innvestigate) (attribution, Keras) 109 | * [DeepExplain](https://github.com/marcoancona/DeepExplain) (attribution, Keras) 110 | * [Lucid](https://github.com/tensorflow/lucid) (feature visualization, attribution, Tensorflow) 111 | * [TorchRay](https://facebookresearch.github.io/TorchRay/) (attribution, PyTorch) 112 | * [Captum](https://captum.ai/) (attribution, PyTorch) 113 | * [InterpretML](https://github.com/interpretml/interpret) (attribution, Python). 114 | 115 | ## Citation request 116 | If you use the code of this repository in your research, please consider citing the folowing papers: 117 | 118 | @article{karim_xai_bio_2022, 119 | title={Explainable AI for Bioinformatics: Methods, Tools, and Applications}, 120 | author={Karim, Md Rezaul and Beyan, Oya and Zappa, Achille and Costa, Ivan G and Rebholz-Schuhmann, Dietrich and Cochez, Michael and Decker, Stefan}, 121 | journal={Briefings in bioinformatics}, 122 | volume={XXXX}, 123 | number={XXXX}, 124 | pages={XXXX}, 125 | year={2023}, 126 | publisher={Oxford University Press} 127 | } 128 | 129 | ## Contributing 130 | If you find more related work, which are not listed here, please create a PR or sugest by filing issues. Your contribution will be highly appreciated. For any questions, feel free to open an issue or contact at rezaul.karim@rwth-aachen.de. 131 | -------------------------------------------------------------------------------- /notebooks/Explainable_ECG_time_series_classification_LIME.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Explainable ECG Time Series Classification with LIME\n", 8 | "This quick demo ([source](https://github.com/emanuel-metzenthin/Lime-For-Time)). It applies LIME algorithm (LIME - Local Interpretable Model-Agnostic Explanations) to time series classification. The original LIME package only supports image, text and tabular data. Therefore, LIME is extended it to be able to deal with time series data.\n", 9 | "\n", 10 | "LIME is used to better understand predictions made by complex black-box ML models. By making use of a transparent, interpretable model the algorithm tries to approximate the black-box locally in vicinity of a specific data sample. A given example instance is perturbed (e.g., parts of its features are 'switched off', pixels greyed out) many times and fed to the black-box. The approximating model then learns which features have the most influence on the final prediction." 11 | ] 12 | }, 13 | { 14 | "cell_type": "code", 15 | "execution_count": 2, 16 | "metadata": {}, 17 | "outputs": [], 18 | "source": [ 19 | "import pandas as pd\n", 20 | "import matplotlib.pyplot as plt\n", 21 | "from sklearn.neighbors import KNeighborsClassifier as KNN\n", 22 | "from sklearn.metrics import accuracy_score as acc\n", 23 | "import numpy as np\n", 24 | "from lime import explanation\n", 25 | "from lime import lime_base\n", 26 | "import math\n", 27 | "from lime_timeseries import LimeTimeSeriesExplainer" 28 | ] 29 | }, 30 | { 31 | "cell_type": "markdown", 32 | "metadata": {}, 33 | "source": [ 34 | "### Loading ECG dataset" 35 | ] 36 | }, 37 | { 38 | "cell_type": "code", 39 | "execution_count": 3, 40 | "metadata": { 41 | "jupyter": { 42 | "outputs_hidden": false 43 | }, 44 | "scrolled": true 45 | }, 46 | "outputs": [], 47 | "source": [ 48 | "ecg_train = pd.read_csv('data/ecg_test.csv', sep=',', header=None).astype(float)\n", 49 | "ecg_train.replace([np.inf, -np.inf], np.nan).dropna()\n", 50 | "ecg_train = ecg_train.loc[:186, :]\n", 51 | "ecg_train_y = ecg_train.loc[:, 0]\n", 52 | "ecg_train_x = ecg_train.loc[:, 1:]\n", 53 | "ecg_test = pd.read_csv('data/ecg_train.csv', sep=',', header=None).astype(float)\n", 54 | "ecg_test.replace([np.inf, -np.inf], np.nan).dropna()\n", 55 | "ecg_test_y = ecg_test.loc[:, 0]\n", 56 | "ecg_test_x = ecg_test.loc[:, 1:]" 57 | ] 58 | }, 59 | { 60 | "cell_type": "markdown", 61 | "metadata": {}, 62 | "source": [ 63 | "### Exploratory analysis\n", 64 | "\n", 65 | "Let's plot the two time series datasets using different colors for each class." 66 | ] 67 | }, 68 | { 69 | "cell_type": "code", 70 | "execution_count": 4, 71 | "metadata": { 72 | "jupyter": { 73 | "outputs_hidden": false 74 | } 75 | }, 76 | "outputs": [ 77 | { 78 | "data": { 79 | "image/png": "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\n", 80 | "text/plain": [ 81 | "
" 82 | ] 83 | }, 84 | "metadata": { 85 | "needs_background": "light" 86 | }, 87 | "output_type": "display_data" 88 | } 89 | ], 90 | "source": [ 91 | "for idx in range(0, len(ecg_train)):\n", 92 | " if ecg_train_y[idx] == 4:\n", 93 | " plt.plot(ecg_train_x.loc[idx, :], 'b')\n", 94 | " elif ecg_train_y[idx] == 1:\n", 95 | " plt.plot(ecg_train_x.loc[idx, :], 'r')\n", 96 | " elif ecg_train_y[idx] == 2:\n", 97 | " plt.plot(ecg_train_x.loc[idx, :], 'g')\n", 98 | " elif ecg_train_y[idx] == 3:\n", 99 | " plt.plot(ecg_train_x.loc[idx, :], 'black')\n", 100 | "plt.title('ECG Torso Dataset')\n", 101 | "plt.show()" 102 | ] 103 | }, 104 | { 105 | "cell_type": "markdown", 106 | "metadata": {}, 107 | "source": [ 108 | "### Evaluation\n", 109 | "\n", 110 | "We train a kNN classifier on that data and print the accuracy. We want to explain this classifier using LIME." 111 | ] 112 | }, 113 | { 114 | "cell_type": "code", 115 | "execution_count": 5, 116 | "metadata": { 117 | "jupyter": { 118 | "outputs_hidden": false 119 | } 120 | }, 121 | "outputs": [ 122 | { 123 | "name": "stdout", 124 | "output_type": "stream", 125 | "text": [ 126 | "Accuracy KNN for earthquake dataset: 0.900000\n" 127 | ] 128 | } 129 | ], 130 | "source": [ 131 | "knn2 = KNN()\n", 132 | "knn2.fit(ecg_train_x, ecg_train_y)\n", 133 | "print('Accuracy KNN for earthquake dataset: %f' % (acc(ecg_test_y, knn2.predict(ecg_test_x))))" 134 | ] 135 | }, 136 | { 137 | "cell_type": "markdown", 138 | "metadata": {}, 139 | "source": [ 140 | "### Explaining ECG Dataset\n", 141 | "Let's plot the relevant slices in our time series. Highlighted depending on their impact on the classification result." 142 | ] 143 | }, 144 | { 145 | "cell_type": "code", 146 | "execution_count": 6, 147 | "metadata": { 148 | "jupyter": { 149 | "outputs_hidden": false 150 | } 151 | }, 152 | "outputs": [], 153 | "source": [ 154 | "idx_ecg = 11 # explained instance\n", 155 | "num_features_ecg = 5 # how many feature contained in explanation\n", 156 | "num_slices_ecg = 17 # split time series\n", 157 | "series_ecg = ecg_test_x.iloc[idx_ecg, :]" 158 | ] 159 | }, 160 | { 161 | "cell_type": "code", 162 | "execution_count": 7, 163 | "metadata": { 164 | "jupyter": { 165 | "outputs_hidden": false 166 | } 167 | }, 168 | "outputs": [ 169 | { 170 | "data": { 171 | "image/png": "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\n", 172 | "text/plain": [ 173 | "
" 174 | ] 175 | }, 176 | "execution_count": 7, 177 | "metadata": {}, 178 | "output_type": "execute_result" 179 | }, 180 | { 181 | "data": { 182 | "image/png": "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\n", 183 | "text/plain": [ 184 | "
" 185 | ] 186 | }, 187 | "metadata": { 188 | "needs_background": "light" 189 | }, 190 | "output_type": "display_data" 191 | } 192 | ], 193 | "source": [ 194 | "explainer2 = LimeTimeSeriesExplainer()\n", 195 | "exp2 = explainer2.explain_instance(series_ecg, knn2.predict_proba, num_features=num_features_ecg, num_samples=500, num_slices=num_slices_ecg, \n", 196 | " replacement_method='noise')\n", 197 | "exp2.as_pyplot_figure()" 198 | ] 199 | }, 200 | { 201 | "cell_type": "code", 202 | "execution_count": 9, 203 | "metadata": { 204 | "jupyter": { 205 | "outputs_hidden": false 206 | } 207 | }, 208 | "outputs": [ 209 | { 210 | "data": { 211 | "image/png": "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fn688847zJkzh6+//pqcnBzmzp0LaB9ukZGRJCQkMGbMGJ599tkLXnPBggXs3LmTvXv3UlJSwo8//lhp3cHBwezatYu7776bV199FYBFixYxfvx4duzYwcaNG3n44YcpKirivffew9PTk8TERJ599lliYmJqPLeioiKGDR5M/ObNjL7kEj5csgSA5159lXXLlxO/eTOrvvgCNzc3nnvuOa6//nri4uK4/vrr6dmzJ7/99huxsbE899xzPPHEExWvGxcXx9KlS9mzZw9Lly4lJSWFzMxM5s6dy8qVK4mPj2f58uXVno+iNJapk4zItMH8fmybs0Nxmqa6zkACPwshJPCBlHJxVQWFEPOAeQAdOnSo9kXffNOBEdZBVd1EEydOZPny5fztb38jPj6+4nGdTsf1118PwM0338zVV199wbEbN27klVdeobi4mNOnT9OnTx+uuOKKC8qdOXbw4MF88803APz888+sWrWqIjmUlpZy/PhxtmzZwn333QdAREQEERERNZ6bm5sb0yZp67QM7t+f9Zs2ATAiKoo5CxZw3fTpXD1tWqXH5uXlMXv2bA4dOoQQArPZXPHchAkT8PPzA6B3794cO3aMnJwcRo8eXXGNQGBgYLXn06tXrxrjV5T6GDcOnn1xGLEd36HUUorJYHJ2SE2uxmQghPgFaFPJU09KKWvbfh8ppUwTQrQC1gsh9kspK+1asieKxQCRkZEuNbRvs9lITEzE09OTnJwc2rVrV2m586dDlpaWcs899xAdHU379u1ZuHBhlXPn3d3dAW0Q22KxANrFVytXrqRHjx4NPgej0VgRn16vx2K1AvD+a6+xPSaG1T//zOAJE4hZu/aCY5966inGjRvHt99+S3JyMmPHjr0g7vNjr4wjz0dRamPoUDCkjcUsX2NrylbGhY9zdkhNrsZuIinlpVLKvpX81LojV0qZZv+dAXwLRNU/5ObrjTfeoFevXnz55ZfcdtttFd+MbTZbRb//l19+yciRI8857swHf3BwMIWFhTXOMDrfpEmTePvttyvGGWLt/f+jR4/myy+/BGDv3r3s3r273ud2+OhRhg4ezHOPP05IUBApJ07g4+NDQUFBRZm8vDzCwrQrOD/99NMaX3PYsGFs2bKFo0ePAnD69Olqz0dRGovJBMPajAabnl+P/urscJyi0aeWCiG8hBA+Z24Dl6ENPLus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\n", 212 | "text/plain": [ 213 | "
" 214 | ] 215 | }, 216 | "metadata": { 217 | "needs_background": "light" 218 | }, 219 | "output_type": "display_data" 220 | } 221 | ], 222 | "source": [ 223 | "values_per_slice = math.ceil(len(series) / num_slices)\n", 224 | "plt.plot(series, color='b', label='Explained instance')\n", 225 | "plt.plot(coffee_test_x.iloc[15:,:].mean(), color='green', label='Mean of other class')\n", 226 | "plt.legend(loc='lower left')\n", 227 | "\n", 228 | "for i in range(num_features):\n", 229 | " feature, weight = exp.as_list()[i]\n", 230 | " start = feature * values_per_slice\n", 231 | " end = start + values_per_slice\n", 232 | " color = 'red' if weight < 0 else 'green' \n", 233 | " plt.axvspan(start , end, color=color, alpha=abs(weight*2))\n", 234 | "plt.show()" 235 | ] 236 | } 237 | ], 238 | "metadata": { 239 | "anaconda-cloud": {}, 240 | "kernelspec": { 241 | "display_name": "Python 3 (ipykernel)", 242 | "language": "python", 243 | "name": "python3" 244 | }, 245 | "language_info": { 246 | "codemirror_mode": { 247 | "name": "ipython", 248 | "version": 3 249 | }, 250 | "file_extension": ".py", 251 | "mimetype": "text/x-python", 252 | "name": "python", 253 | "nbconvert_exporter": "python", 254 | "pygments_lexer": "ipython3", 255 | "version": "3.8.10" 256 | }, 257 | "latex_envs": { 258 | "LaTeX_envs_menu_present": true, 259 | "autoclose": false, 260 | "autocomplete": true, 261 | "bibliofile": "biblio.bib", 262 | "cite_by": "apalike", 263 | "current_citInitial": 1, 264 | "eqLabelWithNumbers": true, 265 | "eqNumInitial": 1, 266 | "hotkeys": { 267 | "equation": "Ctrl-E", 268 | "itemize": "Ctrl-I" 269 | }, 270 | "labels_anchors": false, 271 | "latex_user_defs": false, 272 | "report_style_numbering": false, 273 | "user_envs_cfg": false 274 | }, 275 | "varInspector": { 276 | "cols": { 277 | "lenName": 16, 278 | "lenType": 16, 279 | "lenVar": 40 280 | }, 281 | "kernels_config": { 282 | "python": { 283 | "delete_cmd_postfix": "", 284 | "delete_cmd_prefix": "del ", 285 | "library": "var_list.py", 286 | "varRefreshCmd": "print(var_dic_list())" 287 | }, 288 | "r": { 289 | "delete_cmd_postfix": ") ", 290 | "delete_cmd_prefix": "rm(", 291 | "library": "var_list.r", 292 | "varRefreshCmd": "cat(var_dic_list()) " 293 | } 294 | }, 295 | "types_to_exclude": [ 296 | "module", 297 | "function", 298 | "builtin_function_or_method", 299 | "instance", 300 | "_Feature" 301 | ], 302 | "window_display": false 303 | } 304 | }, 305 | "nbformat": 4, 306 | "nbformat_minor": 4 307 | } 308 | --------------------------------------------------------------------------------