{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Morris sensitivity analysis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Morris sensitivity analysis for tabular data based on the SALib. If using this explainer, please cite the package: https://github.com/SALib/SALib. This explainer only supports continuous-valued features." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# This default renderer is used for sphinx docs only. Please delete this cell in IPython.\n", "import plotly.io as pio\n", "pio.renderers.default = \"png\"" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import sklearn\n", "import sklearn.ensemble\n", "from sklearn.datasets import load_boston\n", "\n", "from omnixai.data.tabular import Tabular\n", "from omnixai.preprocessing.base import Identity\n", "from omnixai.preprocessing.tabular import TabularTransform\n", "from omnixai.explainers.tabular import SensitivityAnalysisTabular" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We recommend using `Tabular` to represent a tabular dataset, which can be constructed from a pandas dataframe or a numpy array. To create a `Tabular` instance given a pandas dataframe, one needs to specify the dataframe, the categorical feature names (if exists) and the target/label column name (if exists)." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "boston = load_boston()\n", "df = pd.DataFrame(\n", " np.concatenate([boston.data, boston.target.reshape((-1, 1))], axis=1),\n", " columns=list(boston.feature_names) + ['target'])\n", "# Remove categorical features\n", "df = df.drop(columns=[boston.feature_names[i] for i in [3, 8]])\n", "tabular_data = Tabular(df, target_column='target')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We train a random forest model for this regression task." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training data shape: (404, 11)\n", "Test data shape: (102, 11)\n", "Random Forest MSError 10.215751067843145\n" ] } ], "source": [ "transformer = TabularTransform(\n", " target_transform=Identity()\n", ").fit(tabular_data)\n", "x = transformer.transform(tabular_data)\n", "\n", "x_train, x_test, y_train, y_test = \\\n", " sklearn.model_selection.train_test_split(x[:, :-1], x[:, -1], train_size=0.80)\n", "print('Training data shape: {}'.format(x_train.shape))\n", "print('Test data shape: {}'.format(x_test.shape))\n", "\n", "rf = sklearn.ensemble.RandomForestRegressor(n_estimators=1000)\n", "rf.fit(x_train, y_train)\n", "print('Random Forest MSError', np.mean((rf.predict(x_test) - y_test) ** 2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To initialize a sensitivity analyzer, we need to set:\n", " \n", " - `training_data`: The data used to initialize the explainer. ``training_data`` can be the training dataset for training the machine learning model. If the training dataset is too large, ``training_data`` can be a subset of it by applying `omnixai.sampler.tabular.Sampler.subsample`.\n", " - `predict_function`: The prediction function corresponding to the model." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "predict_function = lambda z: rf.predict(transformer.transform(z))\n", "explainer = SensitivityAnalysisTabular(\n", " training_data=tabular_data,\n", " predict_function=predict_function,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`SensitivityAnalysisTabular` generates global explanations by calling `explain`. `ipython_plot` shows the generated explanations in IPython." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArwAAAH0CAYAAADfWf7fAAAgAElEQVR4XuydeZxN9f/HX/feWQwGY99lTaFSfYnq14ikbEkk+5rIWnYT2ZcMQ1GSvZSlTSpSUlqUQkJSKSL7OptZ7r2/x+fUXLOae+4596yv+/3nmzmf7fn+nPd5zmc+93McXq/XC35IgARIgARIgARIgARIwKIEHBRei0aWwyIBEiABEiABEiABEpAIUHg5EUiABEiABEiABEiABCxNgMJr6fBycCRAAiRAAiRAAiRAAhRezgESIAESIAESIAESIAFLE6DwWjq8HBwJkAAJkAAJkAAJkACFl3OABEiABEiABEiABEjA0gQovJYOLwdHAiRAAiRAAiRAAiRA4eUcIAESIAESIAESIAESsDQBCq+lw8vBkQAJkAAJkAAJkAAJUHg5B0iABEiABEiABEiABCxNgMJr6fBycCRAAiRAAiRAAiRAAhRezgESIAESIAESIAESIAFLE6DwWjq8HBwJkAAJkAAJkAAJkACFl3OABEiABEiABEiABEjA0gQovJYOLwdHAiRAAiRAAiRAAiRA4eUcIAESIAESIAESIAESsDQBCq+lw8vBkQAJkAAJkAAJkAAJUHg5B0iABEiABEiABEiABCxNgMJr6fBycCRAAiRAAiRAAiRAAhRezgESIAESIAESIAESIAFLE6DwWjq8HBwJkAAJkAAJkAAJkACFl3OABEiABEiABEiABEjA0gQovJYOLwdHAiRAAiRAAiRAAiRA4eUcIAESIAESIAESIAESsDQBCq+lw8vBkQAJkAAJkAAJkAAJUHg5B0iABEiABEiABEiABCxNgMJr6fBycCRAAiRAAiRAAiRAAhRezgESIAESIAESIAESIAFLE6DwWjq8HBwJkAAJkAAJkAAJkACFl3OABEiABEiABEiABEjA0gQovJYOLwdHAiRAAiRAAiRAAiRA4eUcIAESIAESIAESIAESsDQBCq+lw8vBkQAJkAAJkAAJkAAJUHg5B0iABEiABEiABEiABCxNgMJr6fBycCRAAiRAAiRAAiRAAhRezgESIAESIAESIAESIAFLE6DwWjq8HBwJkAAJkAAJkAAJkACFl3OABEiABEiABEiABEjA0gQovJYOLwdHAiRAAiRAAiRAAiRA4eUcIAESIAESIAESIAESsDQBCq+lw8vB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n8QihfXF4glxN7jC8SLw/iEQrpd3fRry4uvyVsO9x5oO6Nk27p5q4fKHicDrUptaCCCAAAIIIIAAAs4FCLzOySmIAAIIIIAAAggg4FKAwOtSm1oIIIAAAggggAACzgUIvM7JKYgAAggggAACCCDgUoDA61KbWggggAACCCCAAALOBQi8zskpiAACCCCAAAIIIOBSgMDrUptaCCCAAAIIIIAAAs4FCLzOySmIAAIIIIAAAggg4FKAwOtSm1oIIIAAAggggAACzgUIvM7JKYgAAggggAACCCDgUoDA61KbWggggAACCCCAAALOBQi8zskpiAACCCCAAAIIIOBSgMDrUptaCCCAAAIIIIAAAs4FCLzOySmIAAIIIIAAAggg4FKAwOtSm1oIIIAAAggggAACzgUIvM7JKYgAAggggAACCCDgUoDA61KbWggggAACCCCAAALOBQi8zskpiAACCCCAAAIIIOBSgMDrUptaCCCAAAIIIIAAAs4FCLzOySmIAAIIIIAAAggg4FKAwOtSm1oIIIAAAggggAACzgUIvM7JKYgAAggggAACCCDgUoDA61KbWggggAACCCCAAALOBQi8zskpiAACCCCAAAIIIOBSgMDrUptaCCCAAAIIIIAAAs4FCLzOySmIAAIIIIAAAggg4FKAwOtSm1oIIIAAAggggAACzgUIvM7JKYgAAggggAACCCDgUoDA61KbWggggAACCCCAAALOBQi8zskpiAACCCCAAAIIIOBSgMDrUptaCCCAAAIIIIAAAs4FCLzOySmIAAIIIIAAAggg4FKAwOtSm1oIIIAAAggggAACzgUIvM7JKYgAAggggAACCCDgUoDA61KbWggggAACCCCAAALOBQi8zskpiAACCCCAAAIIIOBSgMDrUptaCCCAAAIIIIAAAs4FCLzOySmIAAIIIIAAAggg4FKAwOtSm1oIIIAAAggggAACzgUIvM7JKYgAAggggAACCCDgUoDA61KbWggggAACCCCAAALOBQi8zskpiAACCCCAAAIIIOBSgMDrUptaCCCAAAIIIIAAAs4FCLzOySmIAAIIIIAAAggg4FKAwOtSm1oIIIAAAggggAACzgUIvM7JKYgAAggggAACCCDgUoDA61KbWggggAACCCCAAALOBQi8zskpiAACCCCAAAIIIOBSgMDrUptaCCCAAAIIIIAAAs4FCLzOySmIAAIIIIAAAggg4FKAwOtSm1oIIIAAAggggAACzgUIvM7JKYgAAggggAACCCDgUoDA61KbWggggAACCCCAAALOBQi8zskpiAACCCCAAAIIIOBSgMDrUptaCCCAAAIIIIAAAs4FCLzOySmIAAIIIIAAAggg4FKAwOtSm1oIIIAAAggggAACzgUIvM7JKYgAAggggAACCCDgUoDA61KbWggggAACCCCAAALOBQi8zskpiAACCCCAAAIIIOBSgMDrUptaCCCAAAIIIIAAAs4FCLzOySmIAAIIIIAAAggg4FKAwOtSm1oIIIAAAggggAACzgUIvM7JKYgAAggggAACCCDgUoDA61KbWggggAACCCCAAALOBQi8zskpiAACCCCAAAIIIOBSgMDrUptaCCCAAAIIIIAAAs4F/h8yrS7GkyImlwAAAABJRU5ErkJggg==" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "explanations = explainer.explain()\n", "explanations.ipython_plot()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.5" } }, "nbformat": 4, "nbformat_minor": 2 }