diff --git a/examples/explainableai_time_series/Explainable AI Report.pdf b/examples/explainableai_time_series/Explainable AI Report.pdf new file mode 100644 index 0000000..354f0e2 Binary files /dev/null and b/examples/explainableai_time_series/Explainable AI Report.pdf differ diff --git a/examples/explainableai_time_series/explainableai_time_series.ipynb b/examples/explainableai_time_series/explainableai_time_series.ipynb new file mode 100644 index 0000000..5e3c68b --- /dev/null +++ b/examples/explainableai_time_series/explainableai_time_series.ipynb @@ -0,0 +1,1103 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "zqatibsg7qOg", + "outputId": "2f368bef-21d2-469a-b03a-d3d78c249e0a" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Requirement already satisfied: explainableai in /usr/local/lib/python3.10/dist-packages (0.10)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from explainableai) (1.26.4)\n", + "Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from explainableai) (2.2.2)\n", + "Requirement already satisfied: scikit-learn in /usr/local/lib/python3.10/dist-packages (from explainableai) (1.5.2)\n", + "Requirement already satisfied: shap in /usr/local/lib/python3.10/dist-packages (from explainableai) (0.46.0)\n", + "Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (from explainableai) (3.7.1)\n", + "Requirement already satisfied: seaborn in /usr/local/lib/python3.10/dist-packages (from explainableai) (0.13.2)\n", + "Requirement already satisfied: plotly in /usr/local/lib/python3.10/dist-packages (from explainableai) (5.24.1)\n", + "Requirement already satisfied: ipywidgets in /usr/local/lib/python3.10/dist-packages (from explainableai) (7.7.1)\n", + "Requirement already satisfied: lime in /usr/local/lib/python3.10/dist-packages (from explainableai) (0.2.0.1)\n", + "Requirement already satisfied: reportlab in /usr/local/lib/python3.10/dist-packages (from explainableai) (4.2.5)\n", + "Requirement already satisfied: google-generativeai in /usr/local/lib/python3.10/dist-packages (from explainableai) (0.8.3)\n", + "Requirement already satisfied: python-dotenv in /usr/local/lib/python3.10/dist-packages (from explainableai) (1.0.1)\n", + "Requirement already satisfied: scipy in /usr/local/lib/python3.10/dist-packages (from explainableai) (1.13.1)\n", + "Requirement already satisfied: pillow in /usr/local/lib/python3.10/dist-packages (from explainableai) (10.4.0)\n", + "Requirement already satisfied: colorama in /usr/local/lib/python3.10/dist-packages (from explainableai) (0.4.6)\n", + "Requirement already satisfied: dask in /usr/local/lib/python3.10/dist-packages (from explainableai) (2024.8.2)\n", + "Requirement already satisfied: click>=8.1 in /usr/local/lib/python3.10/dist-packages (from dask->explainableai) (8.1.7)\n", + "Requirement already satisfied: cloudpickle>=3.0.0 in /usr/local/lib/python3.10/dist-packages (from dask->explainableai) (3.1.0)\n", + "Requirement already satisfied: fsspec>=2021.09.0 in /usr/local/lib/python3.10/dist-packages (from dask->explainableai) (2024.6.1)\n", + "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from dask->explainableai) (24.1)\n", + "Requirement already satisfied: partd>=1.4.0 in /usr/local/lib/python3.10/dist-packages (from dask->explainableai) (1.4.2)\n", + "Requirement already satisfied: pyyaml>=5.3.1 in /usr/local/lib/python3.10/dist-packages (from dask->explainableai) (6.0.2)\n", + "Requirement already satisfied: toolz>=0.10.0 in /usr/local/lib/python3.10/dist-packages (from dask->explainableai) (0.12.1)\n", + "Requirement already satisfied: importlib-metadata>=4.13.0 in /usr/local/lib/python3.10/dist-packages (from dask->explainableai) (8.5.0)\n", + "Requirement already satisfied: google-ai-generativelanguage==0.6.10 in /usr/local/lib/python3.10/dist-packages (from google-generativeai->explainableai) (0.6.10)\n", + "Requirement already satisfied: google-api-core in /usr/local/lib/python3.10/dist-packages (from google-generativeai->explainableai) (2.19.2)\n", + "Requirement already satisfied: google-api-python-client in /usr/local/lib/python3.10/dist-packages (from google-generativeai->explainableai) (2.137.0)\n", + "Requirement already satisfied: google-auth>=2.15.0 in /usr/local/lib/python3.10/dist-packages (from google-generativeai->explainableai) (2.27.0)\n", + "Requirement already satisfied: protobuf in /usr/local/lib/python3.10/dist-packages (from google-generativeai->explainableai) (3.20.3)\n", + "Requirement already satisfied: pydantic in /usr/local/lib/python3.10/dist-packages (from google-generativeai->explainableai) (2.9.2)\n", + "Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from google-generativeai->explainableai) (4.66.5)\n", + "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.10/dist-packages (from google-generativeai->explainableai) (4.12.2)\n", + "Requirement already satisfied: proto-plus<2.0.0dev,>=1.22.3 in /usr/local/lib/python3.10/dist-packages (from google-ai-generativelanguage==0.6.10->google-generativeai->explainableai) (1.24.0)\n", + "Requirement already satisfied: ipykernel>=4.5.1 in /usr/local/lib/python3.10/dist-packages (from ipywidgets->explainableai) (5.5.6)\n", + "Requirement already satisfied: ipython-genutils~=0.2.0 in /usr/local/lib/python3.10/dist-packages (from ipywidgets->explainableai) (0.2.0)\n", + "Requirement already satisfied: traitlets>=4.3.1 in /usr/local/lib/python3.10/dist-packages (from ipywidgets->explainableai) (5.7.1)\n", + "Requirement already satisfied: widgetsnbextension~=3.6.0 in /usr/local/lib/python3.10/dist-packages (from ipywidgets->explainableai) (3.6.9)\n", + "Requirement already satisfied: ipython>=4.0.0 in /usr/local/lib/python3.10/dist-packages (from ipywidgets->explainableai) (7.34.0)\n", + "Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from ipywidgets->explainableai) (3.0.13)\n", + "Requirement already satisfied: scikit-image>=0.12 in /usr/local/lib/python3.10/dist-packages (from lime->explainableai) (0.24.0)\n", + "Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn->explainableai) (1.4.2)\n", + "Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn->explainableai) (3.5.0)\n", + "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->explainableai) (1.3.0)\n", + "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib->explainableai) (0.12.1)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->explainableai) (4.54.1)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->explainableai) (1.4.7)\n", + "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->explainableai) (3.2.0)\n", + "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib->explainableai) (2.8.2)\n", + "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->explainableai) (2024.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.10/dist-packages (from pandas->explainableai) (2024.2)\n", + "Requirement already satisfied: tenacity>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from plotly->explainableai) (9.0.0)\n", + "Requirement already satisfied: chardet in /usr/local/lib/python3.10/dist-packages (from reportlab->explainableai) (5.2.0)\n", + "Requirement already satisfied: slicer==0.0.8 in /usr/local/lib/python3.10/dist-packages (from shap->explainableai) (0.0.8)\n", + "Requirement already satisfied: numba in /usr/local/lib/python3.10/dist-packages (from shap->explainableai) (0.60.0)\n", + "Requirement already satisfied: googleapis-common-protos<2.0.dev0,>=1.56.2 in /usr/local/lib/python3.10/dist-packages (from google-api-core->google-generativeai->explainableai) (1.65.0)\n", + "Requirement already satisfied: requests<3.0.0.dev0,>=2.18.0 in /usr/local/lib/python3.10/dist-packages (from google-api-core->google-generativeai->explainableai) (2.32.3)\n", + "Requirement already satisfied: cachetools<6.0,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from google-auth>=2.15.0->google-generativeai->explainableai) (5.5.0)\n", + "Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.10/dist-packages (from google-auth>=2.15.0->google-generativeai->explainableai) (0.4.1)\n", + "Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.10/dist-packages (from google-auth>=2.15.0->google-generativeai->explainableai) (4.9)\n", + "Requirement already satisfied: zipp>=3.20 in /usr/local/lib/python3.10/dist-packages (from importlib-metadata>=4.13.0->dask->explainableai) (3.20.2)\n", + "Requirement already satisfied: jupyter-client in /usr/local/lib/python3.10/dist-packages (from ipykernel>=4.5.1->ipywidgets->explainableai) (6.1.12)\n", + "Requirement already satisfied: tornado>=4.2 in /usr/local/lib/python3.10/dist-packages (from ipykernel>=4.5.1->ipywidgets->explainableai) (6.3.3)\n", + "Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets->explainableai) (75.1.0)\n", + "Requirement already satisfied: jedi>=0.16 in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets->explainableai) (0.19.1)\n", + "Requirement already satisfied: decorator in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets->explainableai) (4.4.2)\n", + "Requirement already satisfied: pickleshare in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets->explainableai) (0.7.5)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets->explainableai) (3.0.48)\n", + "Requirement already satisfied: pygments in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets->explainableai) (2.18.0)\n", + "Requirement already satisfied: backcall in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets->explainableai) (0.2.0)\n", + "Requirement already satisfied: matplotlib-inline in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets->explainableai) (0.1.7)\n", + "Requirement already satisfied: pexpect>4.3 in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets->explainableai) (4.9.0)\n", + "Requirement already satisfied: locket in /usr/local/lib/python3.10/dist-packages (from partd>=1.4.0->dask->explainableai) (1.0.0)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib->explainableai) (1.16.0)\n", + "Requirement already satisfied: networkx>=2.8 in /usr/local/lib/python3.10/dist-packages (from scikit-image>=0.12->lime->explainableai) (3.4.1)\n", + "Requirement already satisfied: imageio>=2.33 in /usr/local/lib/python3.10/dist-packages (from scikit-image>=0.12->lime->explainableai) (2.35.1)\n", + "Requirement already satisfied: tifffile>=2022.8.12 in /usr/local/lib/python3.10/dist-packages (from scikit-image>=0.12->lime->explainableai) (2024.9.20)\n", + "Requirement already satisfied: lazy-loader>=0.4 in /usr/local/lib/python3.10/dist-packages (from scikit-image>=0.12->lime->explainableai) (0.4)\n", + "Requirement already satisfied: notebook>=4.4.1 in /usr/local/lib/python3.10/dist-packages (from widgetsnbextension~=3.6.0->ipywidgets->explainableai) (6.5.5)\n", + "Requirement already satisfied: httplib2<1.dev0,>=0.19.0 in /usr/local/lib/python3.10/dist-packages (from google-api-python-client->google-generativeai->explainableai) (0.22.0)\n", + "Requirement already satisfied: google-auth-httplib2<1.0.0,>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from google-api-python-client->google-generativeai->explainableai) (0.2.0)\n", + "Requirement already satisfied: uritemplate<5,>=3.0.1 in /usr/local/lib/python3.10/dist-packages (from google-api-python-client->google-generativeai->explainableai) (4.1.1)\n", + "Requirement already satisfied: llvmlite<0.44,>=0.43.0dev0 in /usr/local/lib/python3.10/dist-packages (from numba->shap->explainableai) (0.43.0)\n", + "Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from pydantic->google-generativeai->explainableai) (0.7.0)\n", + "Requirement already satisfied: pydantic-core==2.23.4 in /usr/local/lib/python3.10/dist-packages (from pydantic->google-generativeai->explainableai) (2.23.4)\n", + "Requirement already satisfied: grpcio<2.0dev,>=1.33.2 in /usr/local/lib/python3.10/dist-packages (from google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.10.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3.0.0dev,>=1.34.1->google-ai-generativelanguage==0.6.10->google-generativeai->explainableai) (1.64.1)\n", + "Requirement already satisfied: grpcio-status<2.0.dev0,>=1.33.2 in /usr/local/lib/python3.10/dist-packages (from google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.10.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3.0.0dev,>=1.34.1->google-ai-generativelanguage==0.6.10->google-generativeai->explainableai) (1.48.2)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.3 in /usr/local/lib/python3.10/dist-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets->explainableai) (0.8.4)\n", + "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (3.1.4)\n", + "Requirement already satisfied: pyzmq<25,>=17 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (24.0.1)\n", + "Requirement already satisfied: argon2-cffi in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (23.1.0)\n", + "Requirement already satisfied: jupyter-core>=4.6.1 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (5.7.2)\n", + "Requirement already satisfied: nbformat in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (5.10.4)\n", + "Requirement already satisfied: nbconvert>=5 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (6.5.4)\n", + "Requirement already satisfied: nest-asyncio>=1.5 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (1.6.0)\n", + "Requirement already satisfied: Send2Trash>=1.8.0 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (1.8.3)\n", + "Requirement already satisfied: terminado>=0.8.3 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (0.18.1)\n", + "Requirement already satisfied: prometheus-client in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (0.21.0)\n", + "Requirement already satisfied: nbclassic>=0.4.7 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (1.1.0)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.10/dist-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets->explainableai) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /usr/local/lib/python3.10/dist-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets->explainableai) (0.2.13)\n", + "Requirement already satisfied: pyasn1<0.7.0,>=0.4.6 in /usr/local/lib/python3.10/dist-packages (from pyasn1-modules>=0.2.1->google-auth>=2.15.0->google-generativeai->explainableai) (0.6.1)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0.dev0,>=2.18.0->google-api-core->google-generativeai->explainableai) (3.4.0)\n", + "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0.dev0,>=2.18.0->google-api-core->google-generativeai->explainableai) (3.10)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0.dev0,>=2.18.0->google-api-core->google-generativeai->explainableai) (2.2.3)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0.dev0,>=2.18.0->google-api-core->google-generativeai->explainableai) (2024.8.30)\n", + "Requirement already satisfied: platformdirs>=2.5 in /usr/local/lib/python3.10/dist-packages (from jupyter-core>=4.6.1->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (4.3.6)\n", + "Requirement already satisfied: notebook-shim>=0.2.3 in /usr/local/lib/python3.10/dist-packages (from nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (0.2.4)\n", + "Requirement already satisfied: lxml in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (4.9.4)\n", + "Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (4.12.3)\n", + "Requirement already satisfied: bleach in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (6.1.0)\n", + "Requirement already satisfied: defusedxml in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (0.7.1)\n", + "Requirement already satisfied: entrypoints>=0.2.2 in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (0.4)\n", + "Requirement already satisfied: jupyterlab-pygments in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (0.3.0)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (3.0.1)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (0.8.4)\n", + "Requirement already satisfied: nbclient>=0.5.0 in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (0.10.0)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (1.5.1)\n", + "Requirement already satisfied: tinycss2 in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (1.3.0)\n", + "Requirement already satisfied: fastjsonschema>=2.15 in /usr/local/lib/python3.10/dist-packages (from nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (2.20.0)\n", + "Requirement already satisfied: jsonschema>=2.6 in /usr/local/lib/python3.10/dist-packages (from nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (4.23.0)\n", + "Requirement already satisfied: argon2-cffi-bindings in /usr/local/lib/python3.10/dist-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (21.2.0)\n", + "Requirement already satisfied: attrs>=22.2.0 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (24.2.0)\n", + "Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (2024.10.1)\n", + "Requirement already satisfied: referencing>=0.28.4 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (0.35.1)\n", + "Requirement already satisfied: rpds-py>=0.7.1 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (0.20.0)\n", + "Requirement already satisfied: jupyter-server<3,>=1.8 in /usr/local/lib/python3.10/dist-packages (from notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (1.24.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (1.17.1)\n", + "Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.10/dist-packages (from beautifulsoup4->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (2.6)\n", + "Requirement already satisfied: webencodings in /usr/local/lib/python3.10/dist-packages (from bleach->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (0.5.1)\n", + "Requirement already satisfied: pycparser in /usr/local/lib/python3.10/dist-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (2.22)\n", + "Requirement already satisfied: anyio<4,>=3.1.0 in /usr/local/lib/python3.10/dist-packages (from jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (3.7.1)\n", + "Requirement already satisfied: websocket-client in /usr/local/lib/python3.10/dist-packages (from jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (1.8.0)\n", + "Requirement already satisfied: sniffio>=1.1 in /usr/local/lib/python3.10/dist-packages (from anyio<4,>=3.1.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (1.3.1)\n", + "Requirement already satisfied: exceptiongroup in /usr/local/lib/python3.10/dist-packages (from anyio<4,>=3.1.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->explainableai) (1.2.2)\n" + ] + } + ], + "source": [ + "!pip install explainableai" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "id": "S4IeWZBP7xev", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000, + "referenced_widgets": [ + "08d15305ac5942c9b1b016c65f5e5d59", + "23ca0022fe784e3a9800f885def5ba8c", + "5cc4d877cee645f2aa1df6b43ef01f9e", + "b53c13a66b89483fbb525a6db22d888b", + "951360f5a68941ec9e9cc24e39b22da2", + "572ddcf815044d629a1a0b36a0a83071", + "d14a2eaec44c4e92a20e5dfda4221a25", + "e2b903b4272b44d1b8df38a2b348d59d", + "9be8826f378d470e8a3b76d23aa5381b", + "ef69d7f14d744409b973fc4c1dad663f", + "24114f584aee4140a160856bbda22598" + ] + }, + "outputId": "2b8b5884-d718-467b-b8ea-df644065a8f4" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "2024-10-21 14:11:08,962 - explainableai.core - DEBUG - Performing exploratory data analysis...\n", + "DEBUG:explainableai.core:Performing exploratory data analysis...\n", + "2024-10-21 14:11:08,969 - explainableai.core - INFO - Exploratory Data Analysis:\n", + "INFO:explainableai.core:\u001b[36mExploratory Data Analysis:\u001b[0m\n", + "2024-10-21 14:11:08,989 - explainableai.core - INFO - Dataset shape: (312, 2)\n", + "INFO:explainableai.core:\u001b[32mDataset shape: (312, 2)\u001b[0m\n", + "2024-10-21 14:11:08,995 - explainableai.core - INFO - Dataset info:\n", + "INFO:explainableai.core:\u001b[36mDataset info:\u001b[0m\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "RangeIndex: 312 entries, 0 to 311\n", + "Data columns (total 2 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 DATE 312 non-null object \n", + " 1 Sales Per Day 312 non-null float64\n", + "dtypes: float64(1), object(1)\n", + "memory usage: 5.0+ KB\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "2024-10-21 14:11:09,029 - explainableai.core - INFO - Summary statistics:\n", + "INFO:explainableai.core:\u001b[36mSummary statistics:\u001b[0m\n", + "2024-10-21 14:11:09,043 - explainableai.core - INFO - Sales Per Day\n", + "count 312.000000\n", + "mean 11819.143749\n", + "std 1630.262634\n", + "min 7558.264812\n", + "25% 10655.179255\n", + "50% 11968.195865\n", + "75% 12999.971633\n", + "max 16272.483870\n", + "INFO:explainableai.core: Sales Per Day\n", + "count 312.000000\n", + "mean 11819.143749\n", + "std 1630.262634\n", + "min 7558.264812\n", + "25% 10655.179255\n", + "50% 11968.195865\n", + "75% 12999.971633\n", + "max 16272.483870\n", + "2024-10-21 14:11:09,057 - explainableai.core - INFO - Missing values:\n", + "INFO:explainableai.core:\u001b[36mMissing values:\u001b[0m\n", + "2024-10-21 14:11:09,065 - explainableai.core - INFO - DATE 0\n", + "Sales Per Day 0\n", + "dtype: int64\n", + "INFO:explainableai.core:DATE 0\n", + "Sales Per Day 0\n", + "dtype: int64\n", + "2024-10-21 14:11:09,071 - explainableai.core - INFO - Data types:\n", + "INFO:explainableai.core:\u001b[36mData types:\u001b[0m\n", + "2024-10-21 14:11:09,079 - explainableai.core - INFO - DATE object\n", + "Sales Per Day float64\n", + "dtype: object\n", + "INFO:explainableai.core:DATE object\n", + "Sales Per Day float64\n", + "dtype: object\n", + "2024-10-21 14:11:09,085 - explainableai.core - INFO - Unique values in each column:\n", + "INFO:explainableai.core:\u001b[36mUnique values in each column:\u001b[0m\n", + "2024-10-21 14:11:09,091 - explainableai.core - INFO - DATE: 312\n", + "INFO:explainableai.core:\u001b[32mDATE: 312\u001b[0m\n", + "2024-10-21 14:11:09,097 - explainableai.core - INFO - Sales Per Day: 312\n", + "INFO:explainableai.core:\u001b[32mSales Per Day: 312\u001b[0m\n", + "2024-10-21 14:11:09,102 - explainableai.core - INFO - Correlation matrix:\n", + "INFO:explainableai.core:\u001b[36mCorrelation matrix:\u001b[0m\n", + "2024-10-21 14:11:09,110 - explainableai.core - INFO - Sales Per Day\n", + "Sales Per Day 1.0\n", + "INFO:explainableai.core: Sales Per Day\n", + "Sales Per Day 1.0\n", + "2024-10-21 14:11:09,119 - explainableai.core - INFO - Potential outliers (values beyond 3 standard deviations):\n", + "INFO:explainableai.core:\u001b[36mPotential outliers (values beyond 3 standard deviations):\u001b[0m\n", + "2024-10-21 14:11:09,126 - explainableai.core - INFO - Class distribution for target variable 'Sales Per Day':\n", + "INFO:explainableai.core:\u001b[36mClass distribution for target variable 'Sales Per Day':\u001b[0m\n", + "2024-10-21 14:11:09,132 - explainableai.core - INFO - Sales Per Day\n", + "7558.264812 0.003205\n", + "11013.227010 0.003205\n", + "11030.469500 0.003205\n", + "11678.045800 0.003205\n", + "11504.928960 0.003205\n", + " ... \n", + "11925.817470 0.003205\n", + "11321.761690 0.003205\n", + "12242.921130 0.003205\n", + "12034.699560 0.003205\n", + "16272.483870 0.003205\n", + "Name: proportion, Length: 312, dtype: float64\n", + "INFO:explainableai.core:Sales Per Day\n", + "7558.264812 0.003205\n", + "11013.227010 0.003205\n", + "11030.469500 0.003205\n", + "11678.045800 0.003205\n", + "11504.928960 0.003205\n", + " ... \n", + "11925.817470 0.003205\n", + "11321.761690 0.003205\n", + "12242.921130 0.003205\n", + "12034.699560 0.003205\n", + "16272.483870 0.003205\n", + "Name: proportion, Length: 312, dtype: float64\n", + "2024-10-21 14:11:09,141 - explainableai.llm_explanations - DEBUG - Initializing gemini...\n", + "DEBUG:explainableai.llm_explanations:Initializing gemini...\n", + "2024-10-21 14:11:09,145 - explainableai.llm_explanations - INFO - Gemini initialize successfully...\n", + "INFO:explainableai.llm_explanations:Gemini initialize successfully...\n", + "2024-10-21 14:11:09,148 - explainableai.core - DEBUG - Fitting the model...\n", + "DEBUG:explainableai.core:Fitting the model...\n", + "2024-10-21 14:11:09,151 - explainableai.core - INFO - Preprocessing data...\n", + "INFO:explainableai.core:\u001b[34mPreprocessing data...\u001b[0m\n", + "2024-10-21 14:11:09,157 - explainableai.core - DEBUG - Creating Preprocessing Steps...\n", + "DEBUG:explainableai.core:Creating Preprocessing Steps...\n", + "2024-10-21 14:11:09,162 - explainableai.core - INFO - Pre proccessing completed...\n", + "INFO:explainableai.core:Pre proccessing completed...\n", + "2024-10-21 14:11:09,165 - explainableai.core - DEBUG - Fitting and transforming the data...\n", + "DEBUG:explainableai.core:Fitting and transforming the data...\n", + "2024-10-21 14:11:09,202 - explainableai.core - INFO - Fitting models and analyzing...\n", + "INFO:explainableai.core:\u001b[34mFitting models and analyzing...\u001b[0m\n", + "2024-10-21 14:11:09,210 - explainableai.core - DEBUG - Comparing the models...\n", + "DEBUG:explainableai.core:Comparing the models...\n", + "/usr/local/lib/python3.10/dist-packages/sklearn/neural_network/_multilayer_perceptron.py:690: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (1000) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/usr/local/lib/python3.10/dist-packages/sklearn/neural_network/_multilayer_perceptron.py:690: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (1000) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/usr/local/lib/python3.10/dist-packages/sklearn/neural_network/_multilayer_perceptron.py:690: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (1000) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/usr/local/lib/python3.10/dist-packages/sklearn/neural_network/_multilayer_perceptron.py:690: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (1000) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/usr/local/lib/python3.10/dist-packages/sklearn/neural_network/_multilayer_perceptron.py:690: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (1000) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/usr/local/lib/python3.10/dist-packages/sklearn/neural_network/_multilayer_perceptron.py:690: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (1000) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "2024-10-21 14:11:59,795 - explainableai.core - INFO - Comparing successfully...\n", + "INFO:explainableai.core:Comparing successfully...\n", + "2024-10-21 14:11:59,830 - explainableai.core - INFO - Model fitting is complete...\n", + "INFO:explainableai.core:Model fitting is complete...\n", + "2024-10-21 14:11:59,837 - explainableai.core - DEBUG - Analysing...\n", + "DEBUG:explainableai.core:Analysing...\n", + "2024-10-21 14:11:59,850 - explainableai.core - INFO - Evaluating model performance...\n", + "INFO:explainableai.core:Evaluating model performance...\n", + "2024-10-21 14:11:59,866 - explainableai.model_evaluation - DEBUG - Evaluting model\n", + "DEBUG:explainableai.model_evaluation:Evaluting model\n", + "2024-10-21 14:11:59,884 - explainableai.model_evaluation - DEBUG - Model prediction...\n", + "DEBUG:explainableai.model_evaluation:Model prediction...\n", + "2024-10-21 14:11:59,906 - explainableai.model_evaluation - INFO - Model predicted...\n", + "INFO:explainableai.model_evaluation:Model predicted...\n", + "2024-10-21 14:11:59,918 - explainableai.core - INFO - Calculating feature importance...\n", + "INFO:explainableai.core:Calculating feature importance...\n", + "2024-10-21 14:11:59,938 - explainableai.core - DEBUG - Calculating the features...\n", + "DEBUG:explainableai.core:Calculating the features...\n", + "2024-10-21 14:12:07,540 - explainableai.core - INFO - Features calculated...\n", + "INFO:explainableai.core:Features calculated...\n", + "2024-10-21 14:12:07,609 - explainableai.core - INFO - Generating visualizations...\n", + "INFO:explainableai.core:Generating visualizations...\n", + "2024-10-21 14:12:07,620 - explainableai.core - DEBUG - Generating visulatization...\n", + "DEBUG:explainableai.core:Generating visulatization...\n", + "2024-10-21 14:12:07,643 - explainableai.visualizations - DEBUG - Plotting feature importance...\n", + "DEBUG:explainableai.visualizations:Plotting feature importance...\n", + "2024-10-21 14:12:11,220 - explainableai.visualizations - INFO - Feature importance plot saved...\n", + "INFO:explainableai.visualizations:Feature importance plot saved...\n", + "2024-10-21 14:12:11,231 - explainableai.visualizations - DEBUG - Plotting partial dependence...\n", + "DEBUG:explainableai.visualizations:Plotting partial dependence...\n", + "2024-10-21 14:12:14,975 - explainableai.visualizations - INFO - Partial dependence plot saved...\n", + "INFO:explainableai.visualizations:Partial dependence plot saved...\n", + "2024-10-21 14:12:14,981 - explainableai.visualizations - DEBUG - Plotting learning curve...\n", + "DEBUG:explainableai.visualizations:Plotting learning curve...\n", + "2024-10-21 14:12:16,012 - explainableai.visualizations - INFO - Learning curve plot saved.\n", + "INFO:explainableai.visualizations:Learning curve plot saved.\n", + "2024-10-21 14:12:16,019 - explainableai.visualizations - DEBUG - Plot correlation heatmap\n", + "DEBUG:explainableai.visualizations:Plot correlation heatmap\n", + "2024-10-21 14:15:42,468 - explainableai.core - INFO - Visualizations generated.\n", + "INFO:explainableai.core:Visualizations generated.\n", + "2024-10-21 14:15:42,476 - explainableai.core - INFO - Calculating SHAP values...\n", + "INFO:explainableai.core:Calculating SHAP values...\n", + "2024-10-21 14:15:42,486 - explainableai.feature_analysis - DEBUG - Convert X to Dataframe...\n", + "DEBUG:explainableai.feature_analysis:Convert X to Dataframe...\n", + "WARNING:shap:Using 312 background data samples could cause slower run times. Consider using shap.sample(data, K) or shap.kmeans(data, K) to summarize the background as K samples.\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + " 0%| | 0/312 [00:00" + ], + "image/png": "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\n" + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "2024-10-21 15:02:11,282 - explainableai.feature_analysis - INFO - Dataframe Created...\n", + "INFO:explainableai.feature_analysis:Dataframe Created...\n", + "2024-10-21 15:02:11,312 - explainableai.core - INFO - Performing cross-validation...\n", + "INFO:explainableai.core:Performing cross-validation...\n", + "2024-10-21 15:02:11,316 - explainableai.model_evaluation - DEBUG - Cross validation...\n", + "DEBUG:explainableai.model_evaluation:Cross validation...\n", + "/usr/local/lib/python3.10/dist-packages/sklearn/model_selection/_validation.py:1000: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_scorer.py\", line 139, in __call__\n", + " score = scorer._score(\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_scorer.py\", line 376, in _score\n", + " return self._sign * self._score_func(y_true, y_pred, **scoring_kwargs)\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/utils/_param_validation.py\", line 213, in wrapper\n", + " return func(*args, **kwargs)\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_classification.py\", line 231, in accuracy_score\n", + " y_type, y_true, y_pred = _check_targets(y_true, y_pred)\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_classification.py\", line 123, in _check_targets\n", + " raise ValueError(\"{0} is not supported\".format(y_type))\n", + "ValueError: continuous is not supported\n", + "\n", + " warnings.warn(\n", + "/usr/local/lib/python3.10/dist-packages/sklearn/model_selection/_validation.py:1000: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_scorer.py\", line 139, in __call__\n", + " score = scorer._score(\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_scorer.py\", line 376, in _score\n", + " return self._sign * self._score_func(y_true, y_pred, **scoring_kwargs)\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/utils/_param_validation.py\", line 213, in wrapper\n", + " return func(*args, **kwargs)\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_classification.py\", line 231, in accuracy_score\n", + " y_type, y_true, y_pred = _check_targets(y_true, y_pred)\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_classification.py\", line 123, in _check_targets\n", + " raise ValueError(\"{0} is not supported\".format(y_type))\n", + "ValueError: continuous is not supported\n", + "\n", + " warnings.warn(\n", + "/usr/local/lib/python3.10/dist-packages/sklearn/model_selection/_validation.py:1000: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_scorer.py\", line 139, in __call__\n", + " score = scorer._score(\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_scorer.py\", line 376, in _score\n", + " return self._sign * self._score_func(y_true, y_pred, **scoring_kwargs)\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/utils/_param_validation.py\", line 213, in wrapper\n", + " return func(*args, **kwargs)\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_classification.py\", line 231, in accuracy_score\n", + " y_type, y_true, y_pred = _check_targets(y_true, y_pred)\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_classification.py\", line 123, in _check_targets\n", + " raise ValueError(\"{0} is not supported\".format(y_type))\n", + "ValueError: continuous is not supported\n", + "\n", + " warnings.warn(\n", + "/usr/local/lib/python3.10/dist-packages/sklearn/model_selection/_validation.py:1000: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_scorer.py\", line 139, in __call__\n", + " score = scorer._score(\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_scorer.py\", line 376, in _score\n", + " return self._sign * self._score_func(y_true, y_pred, **scoring_kwargs)\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/utils/_param_validation.py\", line 213, in wrapper\n", + " return func(*args, **kwargs)\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_classification.py\", line 231, in accuracy_score\n", + " y_type, y_true, y_pred = _check_targets(y_true, y_pred)\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_classification.py\", line 123, in _check_targets\n", + " raise ValueError(\"{0} is not supported\".format(y_type))\n", + "ValueError: continuous is not supported\n", + "\n", + " warnings.warn(\n", + "/usr/local/lib/python3.10/dist-packages/sklearn/model_selection/_validation.py:1000: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_scorer.py\", line 139, in __call__\n", + " score = scorer._score(\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_scorer.py\", line 376, in _score\n", + " return self._sign * self._score_func(y_true, y_pred, **scoring_kwargs)\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/utils/_param_validation.py\", line 213, in wrapper\n", + " return func(*args, **kwargs)\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_classification.py\", line 231, in accuracy_score\n", + " y_type, y_true, y_pred = _check_targets(y_true, y_pred)\n", + " File \"/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_classification.py\", line 123, in _check_targets\n", + " raise ValueError(\"{0} is not supported\".format(y_type))\n", + "ValueError: continuous is not supported\n", + "\n", + " warnings.warn(\n", + "2024-10-21 15:02:14,409 - explainableai.model_evaluation - INFO - validated...\n", + "INFO:explainableai.model_evaluation:validated...\n", + "2024-10-21 15:02:14,431 - explainableai.core - INFO - Model comparison results:\n", + "INFO:explainableai.core:Model comparison results:\n", + "2024-10-21 15:02:14,450 - explainableai.core - INFO - Performing model interpretation (SHAP and LIME)...\n", + "INFO:explainableai.core:Performing model interpretation (SHAP and LIME)...\n", + "2024-10-21 15:02:14,466 - explainableai - INFO - Starting model interpretation...\n", + "INFO:explainableai:Starting model interpretation...\n", + "2024-10-21 15:02:14,476 - explainableai - DEBUG - Calculating SHAP values...\n", + "DEBUG:explainableai:Calculating SHAP values...\n", + "2024-10-21 15:02:14,541 - explainableai - INFO - SHAP values calculated successfully.\n", + "INFO:explainableai:SHAP values calculated successfully.\n", + "2024-10-21 15:02:14,559 - explainableai - DEBUG - Plotting SHAP summary...\n", + "DEBUG:explainableai:Plotting SHAP summary...\n", + "2024-10-21 15:02:15,454 - explainableai - INFO - SHAP summary plot saved as 'shap_summary.png'\n", + "INFO:explainableai:SHAP summary plot saved as 'shap_summary.png'\n", + "2024-10-21 15:02:15,920 - explainableai - DEBUG - Generating LIME explanation...\n", + "DEBUG:explainableai:Generating LIME explanation...\n", + "2024-10-21 15:02:17,401 - explainableai - INFO - LIME explanation generated successfully.\n", + "INFO:explainableai:LIME explanation generated successfully.\n", + "2024-10-21 15:02:17,421 - explainableai - DEBUG - Plotting LIME explanation...\n", + "DEBUG:explainableai:Plotting LIME explanation...\n", + "2024-10-21 15:02:18,164 - explainableai - INFO - LIME explanation plot saved as 'lime_explanation.png'\n", + "INFO:explainableai:LIME explanation plot saved as 'lime_explanation.png'\n", + "2024-10-21 15:02:18,559 - explainableai - INFO - Model interpretation completed successfully.\n", + "INFO:explainableai:Model interpretation completed successfully.\n", + "2024-10-21 15:02:18,581 - explainableai.core - DEBUG - Printing results...\n", + "DEBUG:explainableai.core:Printing results...\n", + "2024-10-21 15:02:18,590 - explainableai.core - INFO - \n", + "Model Performance:\n", + "INFO:explainableai.core:\n", + "Model Performance:\n", + "2024-10-21 15:02:18,617 - explainableai.core - INFO - mean_squared_error: 0.0000\n", + "INFO:explainableai.core:mean_squared_error: 0.0000\n", + "2024-10-21 15:02:18,643 - explainableai.core - INFO - r2_score: 1.0000\n", + "INFO:explainableai.core:r2_score: 1.0000\n", + "2024-10-21 15:02:18,683 - explainableai.core - INFO - \n", + "Top 5 Important Features:\n", + "INFO:explainableai.core:\n", + "Top 5 Important Features:\n", + "2024-10-21 15:02:18,718 - explainableai.core - INFO - DATE_12/1/17: 0.0570\n", + "INFO:explainableai.core:DATE_12/1/17: 0.0570\n", + "2024-10-21 15:02:18,730 - explainableai.core - INFO - DATE_12/1/16: 0.0500\n", + "INFO:explainableai.core:DATE_12/1/16: 0.0500\n", + "2024-10-21 15:02:18,756 - explainableai.core - INFO - DATE_12/1/15: 0.0434\n", + "INFO:explainableai.core:DATE_12/1/15: 0.0434\n", + "2024-10-21 15:02:18,775 - explainableai.core - INFO - DATE_1/1/92: 0.0361\n", + "INFO:explainableai.core:DATE_1/1/92: 0.0361\n", + "2024-10-21 15:02:18,789 - explainableai.core - INFO - DATE_12/1/14: 0.0360\n", + "INFO:explainableai.core:DATE_12/1/14: 0.0360\n", + "2024-10-21 15:02:18,804 - explainableai.core - INFO - \n", + "Cross-validation Score: nan (+/- nan)\n", + "INFO:explainableai.core:\n", + "Cross-validation Score: nan (+/- nan)\n", + "2024-10-21 15:02:18,820 - explainableai.core - INFO - \n", + "Visualizations saved:\n", + "INFO:explainableai.core:\n", + "Visualizations saved:\n", + "2024-10-21 15:02:18,846 - explainableai.core - INFO - - Feature Importance: feature_importance.png\n", + "INFO:explainableai.core:- Feature Importance: feature_importance.png\n", + "2024-10-21 15:02:18,855 - explainableai.core - INFO - - Partial Dependence: partial_dependence.png\n", + "INFO:explainableai.core:- Partial Dependence: partial_dependence.png\n", + "2024-10-21 15:02:18,871 - explainableai.core - INFO - - Learning Curve: learning_curve.png\n", + "INFO:explainableai.core:- Learning Curve: learning_curve.png\n", + "2024-10-21 15:02:18,940 - explainableai.core - INFO - - Correlation Heatmap: correlation_heatmap.png\n", + "INFO:explainableai.core:- Correlation Heatmap: correlation_heatmap.png\n", + "2024-10-21 15:02:18,976 - explainableai.core - INFO - \n", + "SHAP summary plot saved as 'shap_summary.png'\n", + "INFO:explainableai.core:\n", + "SHAP summary plot saved as 'shap_summary.png'\n", + "2024-10-21 15:02:19,005 - explainableai.core - INFO - SHAP plot URL (base64 encoded) available in results['shap_plot_url']\n", + "INFO:explainableai.core:SHAP plot URL (base64 encoded) available in results['shap_plot_url']\n", + "2024-10-21 15:02:19,039 - explainableai.core - INFO - \n", + "LIME explanation plot saved as 'lime_explanation.png'\n", + "INFO:explainableai.core:\n", + "LIME explanation plot saved as 'lime_explanation.png'\n", + "2024-10-21 15:02:19,069 - explainableai.core - INFO - LIME plot URL (base64 encoded) available in results['lime_plot_url']\n", + "INFO:explainableai.core:LIME plot URL (base64 encoded) available in results['lime_plot_url']\n", + "2024-10-21 15:02:19,103 - explainableai.core - INFO - Generating LLM explanation...\n", + "INFO:explainableai.core:Generating LLM explanation...\n", + "2024-10-21 15:02:19,135 - explainableai.llm_explanations - DEBUG - Generate content...\n", + "DEBUG:explainableai.llm_explanations:Generate content...\n", + "2024-10-21 15:02:28,491 - explainableai.llm_explanations - INFO - Response Generated...\n", + "INFO:explainableai.llm_explanations:Response Generated...\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "## Summary:\n", + "\n", + "This model seems almost *too* good to be true. It predicts your data perfectly according to these results, which suggests something might be off. We need to investigate further before trusting these results completely. \n", + "\n", + "## Model Performance:\n", + "\n", + "* **Mean Squared Error (MSE):** This measures the average difference between your model's predictions and the actual values. A perfect score is 0, and yours is incredibly close to that. \n", + "* **R-squared Score:** This tells you how well the model explains the variation in your data. A perfect score is 1.0, meaning your model captures everything.\n", + "\n", + "Both metrics suggest your model is incredibly accurate, perhaps suspiciously so. \n", + "\n", + "## Important Features:\n", + "\n", + "The most important features are all dates, specifically dates around December 1st in recent years and January 1st, 1992. This suggests your data might be heavily influenced by seasonal trends or specific events around these dates. \n", + "\n", + "## Next Steps:\n", + "\n", + "1. **Investigate for Data Leakage:** The near-perfect results strongly suggest your model might be \"cheating\" by accessing information it shouldn't have during training. Carefully review your data preparation process for any potential leaks.\n", + "2. **Evaluate with Different Data:** Test the model on a completely separate dataset that it hasn't seen before to get a more realistic assessment of its performance on unseen data.\n", + "3. **Consider Feature Engineering:** While dates are clearly important, explore if other features can be created from the date information, like day of the week, or if external factors related to those dates could enhance the model. \n", + "\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "2024-10-21 15:02:28,504 - explainableai.report_generator - DEBUG - Setting up the styles...\n", + "DEBUG:explainableai.report_generator:Setting up the styles...\n", + "2024-10-21 15:02:28,517 - explainableai.report_generator - DEBUG - Adding heading: Explainable AI Report\n", + "DEBUG:explainableai.report_generator:Adding heading: Explainable AI Report\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Do you want all sections in the xai_report? (y/n) y\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "2024-10-21 15:02:41,879 - explainableai.report_generator - DEBUG - Adding heading: Model Comparison\n", + "DEBUG:explainableai.report_generator:Adding heading: Model Comparison\n", + "2024-10-21 15:02:41,884 - explainableai.report_generator - DEBUG - Adding table...\n", + "DEBUG:explainableai.report_generator:Adding table...\n", + "2024-10-21 15:02:41,890 - explainableai.report_generator - DEBUG - Adding heading: Model Performance\n", + "DEBUG:explainableai.report_generator:Adding heading: Model Performance\n", + "2024-10-21 15:02:41,895 - explainableai.report_generator - DEBUG - Adding paragraph: **mean_squared_error:** 0.0000\n", + "DEBUG:explainableai.report_generator:Adding paragraph: **mean_squared_error:** 0.0000\n", + "2024-10-21 15:02:41,898 - explainableai.report_generator - DEBUG - Fromatting text: **mean_squared_error:** 0.0000\n", + "DEBUG:explainableai.report_generator:Fromatting text: **mean_squared_error:** 0.0000\n", + "2024-10-21 15:02:41,901 - explainableai.report_generator - DEBUG - Adding paragraph: **r2_score:** 1.0000\n", + "DEBUG:explainableai.report_generator:Adding paragraph: **r2_score:** 1.0000\n", + "2024-10-21 15:02:41,904 - explainableai.report_generator - DEBUG - Fromatting text: **r2_score:** 1.0000\n", + "DEBUG:explainableai.report_generator:Fromatting text: **r2_score:** 1.0000\n", + "2024-10-21 15:02:41,907 - explainableai.report_generator - DEBUG - Adding heading: Feature Importance\n", + "DEBUG:explainableai.report_generator:Adding heading: Feature Importance\n", + "2024-10-21 15:02:41,910 - explainableai.report_generator - DEBUG - Adding table...\n", + "DEBUG:explainableai.report_generator:Adding table...\n", + "2024-10-21 15:02:41,920 - explainableai.report_generator - DEBUG - Adding heading: Visualizations\n", + "DEBUG:explainableai.report_generator:Adding heading: Visualizations\n", + "2024-10-21 15:02:41,936 - explainableai.report_generator - DEBUG - Adding image...\n", + "DEBUG:explainableai.report_generator:Adding image...\n", + "2024-10-21 15:02:42,022 - explainableai.report_generator - DEBUG - Adding image...\n", + "DEBUG:explainableai.report_generator:Adding image...\n", + "2024-10-21 15:02:42,056 - explainableai.report_generator - DEBUG - Adding image...\n", + "DEBUG:explainableai.report_generator:Adding image...\n", + "2024-10-21 15:02:42,103 - explainableai.report_generator - DEBUG - Adding image...\n", + "DEBUG:explainableai.report_generator:Adding image...\n", + "2024-10-21 15:02:42,173 - explainableai.report_generator - DEBUG - Adding heading: LLM Explanation\n", + "DEBUG:explainableai.report_generator:Adding heading: LLM Explanation\n", + "2024-10-21 15:02:42,179 - explainableai.report_generator - DEBUG - Adding LLM explanation...\n", + "DEBUG:explainableai.report_generator:Adding LLM explanation...\n", + "2024-10-21 15:02:42,184 - explainableai.report_generator - DEBUG - Adding heading: Summary:\n", + "DEBUG:explainableai.report_generator:Adding heading: Summary:\n", + "2024-10-21 15:02:42,188 - explainableai.report_generator - DEBUG - Adding paragraph: This model seems almost *too* good to be true. It predicts your data perfectly according to these results, which suggests something might be off. We need to investigate further before trusting these results completely. \n", + "DEBUG:explainableai.report_generator:Adding paragraph: This model seems almost *too* good to be true. It predicts your data perfectly according to these results, which suggests something might be off. We need to investigate further before trusting these results completely. \n", + "2024-10-21 15:02:42,191 - explainableai.report_generator - DEBUG - Fromatting text: This model seems almost *too* good to be true. It predicts your data perfectly according to these results, which suggests something might be off. We need to investigate further before trusting these results completely. \n", + "DEBUG:explainableai.report_generator:Fromatting text: This model seems almost *too* good to be true. It predicts your data perfectly according to these results, which suggests something might be off. We need to investigate further before trusting these results completely. \n", + "2024-10-21 15:02:42,194 - explainableai.report_generator - DEBUG - Adding heading: Model Performance:\n", + "DEBUG:explainableai.report_generator:Adding heading: Model Performance:\n", + "2024-10-21 15:02:42,198 - explainableai.report_generator - DEBUG - Adding paragraph: * **Mean Squared Error (MSE):** This measures the average difference between your model's predictions and the actual values. A perfect score is 0, and yours is incredibly close to that. \n", + "DEBUG:explainableai.report_generator:Adding paragraph: * **Mean Squared Error (MSE):** This measures the average difference between your model's predictions and the actual values. A perfect score is 0, and yours is incredibly close to that. \n", + "2024-10-21 15:02:42,201 - explainableai.report_generator - DEBUG - Fromatting text: * **Mean Squared Error (MSE):** This measures the average difference between your model's predictions and the actual values. A perfect score is 0, and yours is incredibly close to that. \n", + "DEBUG:explainableai.report_generator:Fromatting text: * **Mean Squared Error (MSE):** This measures the average difference between your model's predictions and the actual values. A perfect score is 0, and yours is incredibly close to that. \n", + "2024-10-21 15:02:42,204 - explainableai.report_generator - DEBUG - Adding paragraph: * **R-squared Score:** This tells you how well the model explains the variation in your data. A perfect score is 1.0, meaning your model captures everything.\n", + "DEBUG:explainableai.report_generator:Adding paragraph: * **R-squared Score:** This tells you how well the model explains the variation in your data. A perfect score is 1.0, meaning your model captures everything.\n", + "2024-10-21 15:02:42,207 - explainableai.report_generator - DEBUG - Fromatting text: * **R-squared Score:** This tells you how well the model explains the variation in your data. A perfect score is 1.0, meaning your model captures everything.\n", + "DEBUG:explainableai.report_generator:Fromatting text: * **R-squared Score:** This tells you how well the model explains the variation in your data. A perfect score is 1.0, meaning your model captures everything.\n", + "2024-10-21 15:02:42,210 - explainableai.report_generator - DEBUG - Adding paragraph: Both metrics suggest your model is incredibly accurate, perhaps suspiciously so. \n", + "DEBUG:explainableai.report_generator:Adding paragraph: Both metrics suggest your model is incredibly accurate, perhaps suspiciously so. \n", + "2024-10-21 15:02:42,213 - explainableai.report_generator - DEBUG - Fromatting text: Both metrics suggest your model is incredibly accurate, perhaps suspiciously so. \n", + "DEBUG:explainableai.report_generator:Fromatting text: Both metrics suggest your model is incredibly accurate, perhaps suspiciously so. \n", + "2024-10-21 15:02:42,216 - explainableai.report_generator - DEBUG - Adding heading: Important Features:\n", + "DEBUG:explainableai.report_generator:Adding heading: Important Features:\n", + "2024-10-21 15:02:42,219 - explainableai.report_generator - DEBUG - Adding paragraph: The most important features are all dates, specifically dates around December 1st in recent years and January 1st, 1992. This suggests your data might be heavily influenced by seasonal trends or specific events around these dates. \n", + "DEBUG:explainableai.report_generator:Adding paragraph: The most important features are all dates, specifically dates around December 1st in recent years and January 1st, 1992. This suggests your data might be heavily influenced by seasonal trends or specific events around these dates. \n", + "2024-10-21 15:02:42,222 - explainableai.report_generator - DEBUG - Fromatting text: The most important features are all dates, specifically dates around December 1st in recent years and January 1st, 1992. This suggests your data might be heavily influenced by seasonal trends or specific events around these dates. \n", + "DEBUG:explainableai.report_generator:Fromatting text: The most important features are all dates, specifically dates around December 1st in recent years and January 1st, 1992. This suggests your data might be heavily influenced by seasonal trends or specific events around these dates. \n", + "2024-10-21 15:02:42,225 - explainableai.report_generator - DEBUG - Adding heading: Next Steps:\n", + "DEBUG:explainableai.report_generator:Adding heading: Next Steps:\n", + "2024-10-21 15:02:42,232 - explainableai.report_generator - DEBUG - Adding paragraph: 1. **Investigate for Data Leakage:** The near-perfect results strongly suggest your model might be \"cheating\" by accessing information it shouldn't have during training. Carefully review your data preparation process for any potential leaks.\n", + "DEBUG:explainableai.report_generator:Adding paragraph: 1. **Investigate for Data Leakage:** The near-perfect results strongly suggest your model might be \"cheating\" by accessing information it shouldn't have during training. Carefully review your data preparation process for any potential leaks.\n", + "2024-10-21 15:02:42,238 - explainableai.report_generator - DEBUG - Fromatting text: 1. **Investigate for Data Leakage:** The near-perfect results strongly suggest your model might be \"cheating\" by accessing information it shouldn't have during training. Carefully review your data preparation process for any potential leaks.\n", + "DEBUG:explainableai.report_generator:Fromatting text: 1. **Investigate for Data Leakage:** The near-perfect results strongly suggest your model might be \"cheating\" by accessing information it shouldn't have during training. Carefully review your data preparation process for any potential leaks.\n", + "2024-10-21 15:02:42,241 - explainableai.report_generator - DEBUG - Adding paragraph: 2. **Evaluate with Different Data:** Test the model on a completely separate dataset that it hasn't seen before to get a more realistic assessment of its performance on unseen data.\n", + "DEBUG:explainableai.report_generator:Adding paragraph: 2. **Evaluate with Different Data:** Test the model on a completely separate dataset that it hasn't seen before to get a more realistic assessment of its performance on unseen data.\n", + "2024-10-21 15:02:42,244 - explainableai.report_generator - DEBUG - Fromatting text: 2. **Evaluate with Different Data:** Test the model on a completely separate dataset that it hasn't seen before to get a more realistic assessment of its performance on unseen data.\n", + "DEBUG:explainableai.report_generator:Fromatting text: 2. **Evaluate with Different Data:** Test the model on a completely separate dataset that it hasn't seen before to get a more realistic assessment of its performance on unseen data.\n", + "2024-10-21 15:02:42,249 - explainableai.report_generator - DEBUG - Adding paragraph: 3. **Consider Feature Engineering:** While dates are clearly important, explore if other features can be created from the date information, like day of the week, or if external factors related to those dates could enhance the model. \n", + "DEBUG:explainableai.report_generator:Adding paragraph: 3. **Consider Feature Engineering:** While dates are clearly important, explore if other features can be created from the date information, like day of the week, or if external factors related to those dates could enhance the model. \n", + "2024-10-21 15:02:42,251 - explainableai.report_generator - DEBUG - Fromatting text: 3. **Consider Feature Engineering:** While dates are clearly important, explore if other features can be created from the date information, like day of the week, or if external factors related to those dates could enhance the model. \n", + "DEBUG:explainableai.report_generator:Fromatting text: 3. **Consider Feature Engineering:** While dates are clearly important, explore if other features can be created from the date information, like day of the week, or if external factors related to those dates could enhance the model. \n", + "2024-10-21 15:02:42,255 - explainableai.report_generator - DEBUG - Adding heading: SHAP and LIME Visualizations\n", + "DEBUG:explainableai.report_generator:Adding heading: SHAP and LIME Visualizations\n", + "2024-10-21 15:02:42,260 - explainableai.report_generator - DEBUG - Adding image...\n", + "DEBUG:explainableai.report_generator:Adding image...\n", + "2024-10-21 15:02:42,376 - explainableai.report_generator - DEBUG - Adding image...\n", + "DEBUG:explainableai.report_generator:Adding image...\n", + "2024-10-21 15:02:42,653 - explainableai.report_generator - INFO - Report generated successfully: Explainable AI Report.pdf\n", + "INFO:explainableai.report_generator:Report generated successfully: Explainable AI Report.pdf\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {} + } + ], + "source": [ + "import os\n", + "import pandas as pd\n", + "from explainableai import XAIWrapper\n", + "from sklearn.ensemble import RandomForestRegressor\n", + "from sklearn.linear_model import LinearRegression\n", + "from xgboost import XGBRegressor\n", + "from sklearn.neural_network import MLPRegressor\n", + "\n", + "# Set the Google API key\n", + "os.environ['GOOGLE_API_KEY'] = 'Replace with your API key'\n", + "\n", + "df = pd.read_csv('real_sales_per_day.csv')\n", + "X = df.drop(columns=['Sales Per Day'])\n", + "y = df['Sales Per Day']\n", + "\n", + "XAIWrapper.perform_eda(df)\n", + "\n", + "models = {\n", + " 'Random Forest': RandomForestRegressor(n_estimators=100, random_state=42),\n", + " 'Linear Regression': LinearRegression(),\n", + " 'XGBoost': XGBRegressor(n_estimators=100, random_state=42),\n", + " 'Neural Network': MLPRegressor(hidden_layer_sizes=(100, 50), max_iter=1000, random_state=42)\n", + "}\n", + "\n", + "xai = XAIWrapper()\n", + "xai.fit(models, X, y)\n", + "results = xai.analyze()\n", + "\n", + "print(results['llm_explanation'])\n", + "\n", + "xai.generate_report('Explainable AI Report.pdf')\n" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "08d15305ac5942c9b1b016c65f5e5d59": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_23ca0022fe784e3a9800f885def5ba8c", + "IPY_MODEL_5cc4d877cee645f2aa1df6b43ef01f9e", + "IPY_MODEL_b53c13a66b89483fbb525a6db22d888b" + ], + "layout": "IPY_MODEL_951360f5a68941ec9e9cc24e39b22da2" + } + }, + "23ca0022fe784e3a9800f885def5ba8c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_572ddcf815044d629a1a0b36a0a83071", + "placeholder": "​", + "style": "IPY_MODEL_d14a2eaec44c4e92a20e5dfda4221a25", + "value": "100%" + } + }, + "5cc4d877cee645f2aa1df6b43ef01f9e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_e2b903b4272b44d1b8df38a2b348d59d", + "max": 312, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_9be8826f378d470e8a3b76d23aa5381b", + "value": 312 + } + }, + "b53c13a66b89483fbb525a6db22d888b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_ef69d7f14d744409b973fc4c1dad663f", + "placeholder": "​", + "style": "IPY_MODEL_24114f584aee4140a160856bbda22598", + "value": " 312/312 [46:26<00:00, 12.12s/it]" + } + }, + "951360f5a68941ec9e9cc24e39b22da2": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "572ddcf815044d629a1a0b36a0a83071": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d14a2eaec44c4e92a20e5dfda4221a25": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "e2b903b4272b44d1b8df38a2b348d59d": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "9be8826f378d470e8a3b76d23aa5381b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "ef69d7f14d744409b973fc4c1dad663f": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "24114f584aee4140a160856bbda22598": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + } + } + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file diff --git a/examples/explainableai_time_series/learning_curve.png b/examples/explainableai_time_series/learning_curve.png new file mode 100644 index 0000000..912314f Binary files /dev/null and b/examples/explainableai_time_series/learning_curve.png differ diff --git a/examples/explainableai_time_series/lime_explanation.png b/examples/explainableai_time_series/lime_explanation.png new file mode 100644 index 0000000..333f81c Binary files /dev/null and b/examples/explainableai_time_series/lime_explanation.png differ diff --git a/examples/explainableai_time_series/partial_dependence.png b/examples/explainableai_time_series/partial_dependence.png new file mode 100644 index 0000000..51c46e1 Binary files /dev/null and b/examples/explainableai_time_series/partial_dependence.png differ diff --git a/examples/explainableai_time_series/real_sales_per_day.csv b/examples/explainableai_time_series/real_sales_per_day.csv new file mode 100644 index 0000000..b8e0c5a --- /dev/null +++ b/examples/explainableai_time_series/real_sales_per_day.csv @@ -0,0 +1,313 @@ +DATE,Sales Per Day +1/1/92,7558.264812 +2/1/92,8096.645263 +3/1/92,8193.630005 +4/1/92,8726.435802 +5/1/92,8727.115815 +6/1/92,8958.585198 +7/1/92,8686.874599 +8/1/92,8662.116566 +9/1/92,8678.880736 +10/1/92,8805.291616 +11/1/92,9005.541523 +12/1/92,10755.78087 +1/1/93,7675.045238 +2/1/93,8321.254095 +3/1/93,8541.642409 +4/1/93,9116.97989 +5/1/93,9070.435729 +6/1/93,9334.498113 +7/1/93,9110.889646 +8/1/93,9058.814028 +9/1/93,9080.462063 +10/1/93,9009.205135 +11/1/93,9623.002452 +12/1/93,11272.35763 +1/1/94,7942.820274 +2/1/94,8833.606416 +3/1/94,9437.721586 +4/1/94,9590.317161 +5/1/94,9518.688136 +6/1/94,9976.025956 +7/1/94,9335.426414 +8/1/94,9794.243242 +9/1/94,9695.303475 +10/1/94,9564.409519 +11/1/94,10167.47618 +12/1/94,11806.31293 +1/1/95,8397.630662 +2/1/95,9105.591979 +3/1/95,9623.431757 +4/1/95,9617.68654 +5/1/95,10006.0809 +6/1/95,10391.93842 +7/1/95,9587.507793 +8/1/95,10115.95293 +9/1/95,9853.789402 +10/1/95,9602.528063 +11/1/95,10400.62546 +12/1/95,11826.79926 +1/1/96,8654.01573 +2/1/96,9595.313055 +3/1/96,9868.675348 +4/1/96,10160.2879 +5/1/96,10525.13025 +6/1/96,10382.79788 +7/1/96,10043.85162 +8/1/96,10393.86892 +9/1/96,9928.163879 +10/1/96,10209.70285 +11/1/96,10605.0145 +12/1/96,11939.28698 +1/1/97,9086.373153 +2/1/97,9894.342554 +3/1/97,10198.7285 +4/1/97,10297.8822 +5/1/97,10580.83518 +6/1/97,10602.19826 +7/1/97,10415.20399 +8/1/97,10543.30239 +9/1/97,10327.43334 +10/1/97,10408.10639 +11/1/97,10608.2262 +12/1/97,12328.88963 +1/1/98,9255.162193 +2/1/98,10045.72677 +3/1/98,10268.73935 +4/1/98,10816.50684 +5/1/98,10879.31144 +6/1/98,11213.52251 +7/1/98,10669.33934 +8/1/98,10603.31378 +9/1/98,10561.30278 +10/1/98,10761.00564 +11/1/98,11029.09002 +12/1/98,12923.52173 +1/1/99,9558.258031 +2/1/99,10724.36211 +3/1/99,11174.54617 +4/1/99,11314.97468 +5/1/99,11442.24444 +6/1/99,11792.18419 +7/1/99,11371.6445 +8/1/99,11511.29251 +9/1/99,11362.01537 +10/1/99,11096.167 +11/1/99,11821.77836 +12/1/99,13884.80021 +1/1/00,10096.96945 +2/1/00,11421.7391 +3/1/00,11868.03027 +4/1/00,11561.49856 +5/1/00,12034.69956 +6/1/00,12242.92113 +7/1/00,11321.76169 +8/1/00,11925.81747 +9/1/00,11599.41204 +10/1/00,11276.84521 +11/1/00,11963.76399 +12/1/00,13477.80562 +1/1/01,10330.62252 +2/1/01,11269.58626 +3/1/01,11511.69511 +4/1/01,11670.09839 +5/1/01,12120.37983 +6/1/01,12108.13888 +7/1/01,11340.08916 +8/1/01,12014.44175 +9/1/01,10962.2572 +10/1/01,11943.62323 +11/1/01,12200.43152 +12/1/01,13466.58133 +1/1/02,10377.56236 +2/1/02,11347.59087 +3/1/02,11522.44874 +4/1/02,11863.73188 +5/1/02,12106.58348 +6/1/02,11983.26759 +7/1/02,11855.78648 +8/1/02,12306.906 +9/1/02,11262.11008 +10/1/02,11474.88821 +11/1/02,12010.51712 +12/1/02,13587.45549 +1/1/03,10612.699 +2/1/03,11261.65292 +3/1/03,11505.92859 +4/1/03,12000.66928 +5/1/03,12310.11502 +6/1/03,12244.30731 +7/1/03,12162.49654 +8/1/03,12365.07093 +9/1/03,11848.05884 +10/1/03,11843.81411 +11/1/03,12170.1134 +12/1/03,14130.20422 +1/1/04,10854.76248 +2/1/04,11618.39675 +3/1/04,12310.03915 +4/1/04,12540.39132 +5/1/04,12591.2349 +6/1/04,12674.42287 +7/1/04,12473.01984 +8/1/04,12435.05781 +9/1/04,12322.98594 +10/1/04,12051.36736 +11/1/04,12688.23782 +12/1/04,14797.04087 +1/1/05,10999.15207 +2/1/05,12212.19616 +3/1/05,12691.38434 +4/1/05,12889.04079 +5/1/05,12861.38666 +6/1/05,13542.80797 +7/1/05,13005.22206 +8/1/05,13110.08864 +9/1/05,12491.24007 +10/1/05,12141.35256 +11/1/05,13005.85336 +12/1/05,14969.03342 +1/1/06,11484.56831 +2/1/06,12542.801 +3/1/06,13063.76926 +4/1/06,13035.49851 +5/1/06,13406.56386 +6/1/06,13550.88714 +7/1/06,12847.95967 +8/1/06,13311.26203 +9/1/06,12666.12448 +10/1/06,12399.37815 +11/1/06,13220.15144 +12/1/06,14973.16705 +1/1/07,11610.07862 +2/1/07,12578.04512 +3/1/07,13088.61242 +4/1/07,12925.01598 +5/1/07,13664.41652 +6/1/07,13488.51363 +7/1/07,12861.67144 +8/1/07,13449.9522 +9/1/07,12569.54478 +10/1/07,12659.25163 +11/1/07,13401.64231 +12/1/07,14657.81424 +1/1/08,11597.20247 +2/1/08,12390.90761 +3/1/08,12532.44277 +4/1/08,12787.46473 +5/1/08,13279.1605 +6/1/08,12913.37365 +7/1/08,12567.28866 +8/1/08,12523.95317 +9/1/08,11831.46083 +10/1/08,11480.13679 +11/1/08,11603.43483 +12/1/08,13112.03699 +1/1/09,10343.80153 +2/1/09,11013.22701 +3/1/09,10919.62524 +4/1/09,11347.48962 +5/1/09,11545.96707 +6/1/09,11777.17464 +7/1/09,11504.92896 +8/1/09,11678.0458 +9/1/09,11030.4695 +10/1/09,11095.5274 +11/1/09,11559.25612 +12/1/09,13345.69687 +1/1/10,10263.27397 +2/1/10,11232.71492 +3/1/10,11826.47784 +4/1/10,12051.13205 +5/1/10,11957.93772 +6/1/10,12146.05693 +7/1/10,11796.68188 +8/1/10,11829.8267 +9/1/10,11649.34775 +10/1/10,11503.84192 +11/1/10,12358.28892 +12/1/10,14034.48191 +1/1/11,10800.79536 +2/1/11,11972.62774 +3/1/11,12376.40706 +4/1/11,12506.20151 +5/1/11,12418.98975 +6/1/11,12745.11981 +7/1/11,12115.62156 +8/1/11,12461.49844 +9/1/11,12168.33071 +10/1/11,11888.50168 +11/1/11,12785.69964 +12/1/11,14389.07212 +1/1/12,11073.70687 +2/1/12,12417.20912 +3/1/12,12886.56392 +4/1/12,12595.5471 +5/1/12,13050.21852 +6/1/12,12879.08621 +7/1/12,12299.63021 +8/1/12,12975.28185 +9/1/12,12256.48395 +10/1/12,12285.64984 +11/1/12,13173.13825 +12/1/12,14416.74673 +1/1/13,11527.21628 +2/1/13,12637.57665 +3/1/13,12883.67758 +4/1/13,12942.5286 +5/1/13,13437.89551 +6/1/13,13138.95654 +7/1/13,12947.27562 +8/1/13,13306.94665 +9/1/13,12474.35422 +10/1/13,12652.64441 +11/1/13,13355.01492 +12/1/13,14665.41563 +1/1/14,11569.58022 +2/1/14,12677.57929 +3/1/14,12998.22149 +4/1/14,13417.19494 +5/1/14,13778.98706 +6/1/14,13441.47226 +7/1/14,13295.44181 +8/1/14,13528.78346 +9/1/14,13026.98643 +10/1/14,13075.31016 +11/1/14,13631.56161 +12/1/14,15277.55445 +1/1/15,11925.29143 +2/1/15,12845.97841 +3/1/15,13319.27753 +4/1/15,13557.2129 +5/1/15,13813.94695 +6/1/15,13852.82296 +7/1/15,13670.96618 +8/1/15,13617.75852 +9/1/15,13304.56766 +10/1/15,13212.468 +11/1/15,13751.09225 +12/1/15,15655.93016 +1/1/16,11837.19618 +2/1/16,13097.13462 +3/1/16,13632.52255 +4/1/16,13696.25355 +5/1/16,13833.64907 +6/1/16,14159.15784 +7/1/16,13565.50868 +8/1/16,13898.79509 +9/1/16,13563.75286 +10/1/16,13198.45757 +11/1/16,14201.14467 +12/1/16,15968.5588 +1/1/17,12143.56926 +2/1/17,13340.78911 +3/1/17,13956.20298 +4/1/17,13884.32202 +5/1/17,14370.79595 +6/1/17,14437.57168 +7/1/17,13754.84784 +8/1/17,14181.32269 +9/1/17,13928.74791 +10/1/17,13627.21421 +11/1/17,14883.40174 +12/1/17,16272.48387 \ No newline at end of file diff --git a/examples/explainableai_time_series/shap_summary.png b/examples/explainableai_time_series/shap_summary.png new file mode 100644 index 0000000..9b90c77 Binary files /dev/null and b/examples/explainableai_time_series/shap_summary.png differ