From 706e7fed9050b31d944dbbccc63aed0f86fd4f17 Mon Sep 17 00:00:00 2001 From: NickNtamp Date: Wed, 15 Feb 2023 18:27:12 +0200 Subject: [PATCH 1/6] Initial PR Co-authored-by: John Zaras --- examples/notebooks/plot_functions.py | 28 + .../notebooks/whitebox-demonstration.ipynb | 908 ++++++++++++++++++ whitebox/sdk/whitebox.py | 80 +- 3 files changed, 1004 insertions(+), 12 deletions(-) create mode 100644 examples/notebooks/plot_functions.py create mode 100644 examples/notebooks/whitebox-demonstration.ipynb diff --git a/examples/notebooks/plot_functions.py b/examples/notebooks/plot_functions.py new file mode 100644 index 0000000..7593399 --- /dev/null +++ b/examples/notebooks/plot_functions.py @@ -0,0 +1,28 @@ +import pandas as pd +import seaborn as sns + + +def desriptive_statistics_plot(report, timestep): + df = pd.DataFrame.from_dict(report[timestep]["feature_metrics"]) + df = df.drop(["target"]) + df["class"] = df.index + df_pivot = pd.melt(df, id_vars="class", var_name="statistics", value_name="value") + gfg = sns.catplot( + x="statistics", + y="value", + hue="class", + data=df_pivot, + kind="bar", + orient="v", + aspect=7 / 3, + palette="Spectral", + ) + sns.set_theme(style="whitegrid") + gfg.set( + xlabel="", + ylabel="", + title="Descriptive Statistics for " + + report[timestep]["timestamp"].strip("T00:00:00"), + ) + + return gfg diff --git a/examples/notebooks/whitebox-demonstration.ipynb b/examples/notebooks/whitebox-demonstration.ipynb new file mode 100644 index 0000000..0fafafa --- /dev/null +++ b/examples/notebooks/whitebox-demonstration.ipynb @@ -0,0 +1,908 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/Users/nikosntampakis/Desktop/Git Hub/whitebox\n" + ] + } + ], + "source": [ + "cd ../.." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "from whitebox.sdk.whitebox import Whitebox\n", + "wb = Whitebox(host=\"http://127.0.0.1:8000\", api_key=\"ca7df06f72f82f5e4bec3926209b5d12bdf168941e33531b302ae9b0c9710975\")" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.datasets import load_iris\n", + "import pandas as pd\n", + "from plot_functions import *\n", + "import seaborn as sns" + ] + }, + { + "cell_type": "code", + "execution_count": 184, + "metadata": {}, + "outputs": [], + "source": [ + "df_tp = load_iris()\n", + "df = pd.DataFrame(df_tp.data, columns=df_tp.feature_names)\n", + "df[\"target\"] = df_tp.target" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "df = df.sample(frac = 1)\n", + "\n", + "training_dataset=df.head(120)\n", + "inference_dataset_1=df.iloc[120:130]\n", + "inference_dataset_2=df.iloc[130:140]\n", + "inference_dataset_3=df.iloc[140:150]" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'id': '83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " 'created_at': '2023-02-09T14:30:13.787193',\n", + " 'updated_at': '2023-02-09T14:30:13.787193',\n", + " 'name': 'IrMod',\n", + " 'description': '',\n", + " 'type': 'multi_class',\n", + " 'features': {'sepal length (cm)': 'numerical',\n", + " 'sepal width (cm)': 'numerical',\n", + " 'petal length (cm)': 'numerical',\n", + " 'petal width (cm)': 'numerical'},\n", + " 'prediction': 'target',\n", + " 'probability': 'proba',\n", + " 'labels': {'Iris-Setosa': 0, 'Iris-Versicolour': 1, 'Iris-Virginica': 2}}" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "wb.create_model(\n", + " name=\"IrMod\",\n", + " type=\"multi_class\",\n", + " features={\n", + " 'sepal length (cm)': 'numerical',\n", + " 'sepal width (cm)': 'numerical',\n", + " 'petal length (cm)': 'numerical',\n", + " 'petal width (cm)': 'numerical'\n", + " },\n", + " labels={\n", + " 'Iris-Setosa': 0,\n", + " 'Iris-Versicolour': 1,\n", + " 'Iris-Virginica': 2\n", + " },\n", + " prediction=\"target\",\n", + " probability=\"proba\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "non_processed_df = training_dataset\n", + "processed_df = training_dataset\n", + "\n", + "wb.log_training_dataset(\n", + " model_id='83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " non_processed=non_processed_df,\n", + " processed=processed_df\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 63, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\n", + "timestamps = pd.Series([\"2022-12-22\"] * 10)\n", + "actuals = pd.Series([1, 1, 0, 2, 1, 1, 2, 2, 2, 1])\n", + "\n", + "wb.log_inferences(\n", + " model_id='83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " non_processed=inference_dataset_1,\n", + " processed=inference_dataset_1,\n", + " timestamps=timestamps,\n", + " actuals=actuals\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 64, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "timestamps = pd.Series([\"2022-12-23\"] * 10)\n", + "actuals = pd.Series([2, 1, 1, 1, 1, 2, 2, 2, 0, 2])\n", + "\n", + "wb.log_inferences(\n", + " model_id='83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " non_processed=inference_dataset_2,\n", + " processed=inference_dataset_2,\n", + " timestamps=timestamps,\n", + " actuals=actuals\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "timestamps = pd.Series([\"2022-12-24\"] * 10)\n", + "actuals = pd.Series([1, 1, 1, 1, 1, 1, 1, 1, 2, 2])\n", + "\n", + "wb.log_inferences(\n", + " model_id='83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " non_processed=inference_dataset_3,\n", + " processed=inference_dataset_3,\n", + " timestamps=timestamps,\n", + " actuals=actuals\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "\n", + "with open('descriptive.json', 'r') as openfile:\n", + " descriptive_report = json.load(openfile)\n", + "\n", + "with open('drift.json', 'r') as openfile:\n", + " drift_report = json.load(openfile)\n", + "\n", + "with open('performance.json', 'r') as openfile:\n", + " performance_report = json.load(openfile)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Descriptive statistics" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'id': '99d7c601-925b-4d58-96b3-8bca2bbdff19',\n", + " 'created_at': '2023-02-09T14:33:00.483453',\n", + " 'updated_at': '2023-02-09T14:33:00.483453',\n", + " 'model_id': '83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " 'timestamp': '2022-12-22T00:00:00',\n", + " 'feature_metrics': {'missing_count': {'sepal length (cm)': 0,\n", + " 'sepal width (cm)': 0,\n", + " 'petal length (cm)': 0,\n", + " 'petal width (cm)': 0,\n", + " 'target': 0},\n", + " 'non_missing_count': {'sepal length (cm)': 10,\n", + " 'sepal width (cm)': 10,\n", + " 'petal length (cm)': 10,\n", + " 'petal width (cm)': 10,\n", + " 'target': 10},\n", + " 'mean': {'sepal length (cm)': 5.679999999999999,\n", + " 'sepal width (cm)': 3.1,\n", + " 'petal length (cm)': 3.1799999999999997,\n", + " 'petal width (cm)': 0.97,\n", + " 'target': 0.7},\n", + " 'minimum': {'sepal length (cm)': 4.8,\n", + " 'sepal width (cm)': 2.5,\n", + " 'petal length (cm)': 1.4,\n", + " 'petal width (cm)': 0.1,\n", + " 'target': 0.0},\n", + " 'maximum': {'sepal length (cm)': 6.5,\n", + " 'sepal width (cm)': 3.9,\n", + " 'petal length (cm)': 5.6,\n", + " 'petal width (cm)': 2.1,\n", + " 'target': 2.0},\n", + " 'sum': {'sepal length (cm)': 56.79999999999999,\n", + " 'sepal width (cm)': 31.0,\n", + " 'petal length (cm)': 31.799999999999997,\n", + " 'petal width (cm)': 9.7,\n", + " 'target': 7.0},\n", + " 'standard_deviation': {'sepal length (cm)': 0.6779052703405954,\n", + " 'sepal width (cm)': 0.408248290463863,\n", + " 'petal length (cm)': 1.8262286579481526,\n", + " 'petal width (cm)': 0.7557924465236618,\n", + " 'target': 0.8232726023485646},\n", + " 'variance': {'sepal length (cm)': 0.4595555555555558,\n", + " 'sepal width (cm)': 0.16666666666666666,\n", + " 'petal length (cm)': 3.335111111111111,\n", + " 'petal width (cm)': 0.5712222222222223,\n", + " 'target': 0.6777777777777778}}},\n", + " {'id': '4a7ca49b-ece6-45ac-a9cc-9560ab72cb73',\n", + " 'created_at': '2023-02-09T14:36:00.531345',\n", + " 'updated_at': '2023-02-09T14:36:00.531345',\n", + " 'model_id': '83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " 'timestamp': '2022-12-23T00:00:00',\n", + " 'feature_metrics': {'missing_count': {'sepal length (cm)': 0,\n", + " 'sepal width (cm)': 0,\n", + " 'petal length (cm)': 0,\n", + " 'petal width (cm)': 0,\n", + " 'target': 0},\n", + " 'non_missing_count': {'sepal length (cm)': 20,\n", + " 'sepal width (cm)': 20,\n", + " 'petal length (cm)': 20,\n", + " 'petal width (cm)': 20,\n", + " 'target': 20},\n", + " 'mean': {'sepal length (cm)': 5.819999999999999,\n", + " 'sepal width (cm)': 3.1050000000000004,\n", + " 'petal length (cm)': 3.560000000000001,\n", + " 'petal width (cm)': 1.1300000000000001,\n", + " 'target': 0.9},\n", + " 'minimum': {'sepal length (cm)': 4.6,\n", + " 'sepal width (cm)': 2.5,\n", + " 'petal length (cm)': 1.4,\n", + " 'petal width (cm)': 0.1,\n", + " 'target': 0.0},\n", + " 'maximum': {'sepal length (cm)': 7.2,\n", + " 'sepal width (cm)': 3.9,\n", + " 'petal length (cm)': 6.0,\n", + " 'petal width (cm)': 2.1,\n", + " 'target': 2.0},\n", + " 'sum': {'sepal length (cm)': 116.39999999999999,\n", + " 'sepal width (cm)': 62.10000000000001,\n", + " 'petal length (cm)': 71.20000000000002,\n", + " 'petal width (cm)': 22.6,\n", + " 'target': 18.0},\n", + " 'standard_deviation': {'sepal length (cm)': 0.7770389138802578,\n", + " 'sepal width (cm)': 0.3235900590497018,\n", + " 'petal length (cm)': 1.7922053453775881,\n", + " 'petal width (cm)': 0.7664683191173177,\n", + " 'target': 0.8522416262267904},\n", + " 'variance': {'sepal length (cm)': 0.6037894736842108,\n", + " 'sepal width (cm)': 0.10471052631578948,\n", + " 'petal length (cm)': 3.2119999999999997,\n", + " 'petal width (cm)': 0.5874736842105264,\n", + " 'target': 0.7263157894736844}}},\n", + " {'id': '5a6f6f9f-98c7-4c7b-94ab-8fe6c60a3906',\n", + " 'created_at': '2023-02-09T14:39:00.626188',\n", + " 'updated_at': '2023-02-09T14:39:00.626188',\n", + " 'model_id': '83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " 'timestamp': '2022-12-24T00:00:00',\n", + " 'feature_metrics': {'missing_count': {'sepal length (cm)': 0,\n", + " 'sepal width (cm)': 0,\n", + " 'petal length (cm)': 0,\n", + " 'petal width (cm)': 0,\n", + " 'target': 0},\n", + " 'non_missing_count': {'sepal length (cm)': 30,\n", + " 'sepal width (cm)': 30,\n", + " 'petal length (cm)': 30,\n", + " 'petal width (cm)': 30,\n", + " 'target': 30},\n", + " 'mean': {'sepal length (cm)': 5.876666666666666,\n", + " 'sepal width (cm)': 3.2199999999999998,\n", + " 'petal length (cm)': 3.4433333333333334,\n", + " 'petal width (cm)': 1.0966666666666667,\n", + " 'target': 0.8333333333333334},\n", + " 'minimum': {'sepal length (cm)': 4.6,\n", + " 'sepal width (cm)': 2.5,\n", + " 'petal length (cm)': 1.2,\n", + " 'petal width (cm)': 0.1,\n", + " 'target': 0.0},\n", + " 'maximum': {'sepal length (cm)': 7.2,\n", + " 'sepal width (cm)': 4.0,\n", + " 'petal length (cm)': 6.1,\n", + " 'petal width (cm)': 2.5,\n", + " 'target': 2.0},\n", + " 'sum': {'sepal length (cm)': 176.29999999999998,\n", + " 'sepal width (cm)': 96.6,\n", + " 'petal length (cm)': 103.3,\n", + " 'petal width (cm)': 32.9,\n", + " 'target': 25.0},\n", + " 'standard_deviation': {'sepal length (cm)': 0.8041630188708883,\n", + " 'sepal width (cm)': 0.37268827688047546,\n", + " 'petal length (cm)': 1.8108263180169955,\n", + " 'petal width (cm)': 0.7967534699981061,\n", + " 'target': 0.8339078479367936},\n", + " 'variance': {'sepal length (cm)': 0.6466781609195406,\n", + " 'sepal width (cm)': 0.13889655172413795,\n", + " 'petal length (cm)': 3.2790919540229884,\n", + " 'petal width (cm)': 0.634816091954023,\n", + " 'target': 0.6954022988505746}}}]" + ] + }, + "execution_count": 98, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#descriptive_report = wb.get_descriptive_statistics('83539c2b-579f-4a2c-b7ba-02d31c9408d8')\n", + "#descriptive_report" + ] + }, + { + "cell_type": "code", + "execution_count": 183, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 183, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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ypWTvb29smXLJkmaOHGiihQpkmj7hBDI1dVVAwcO1MCBA3X06FGtX79e06ZN08iRIzVz5ky5urrq4sWLifbfvHmzChQoYGoUV8KNTO53/vx5U9NLGzZsqA8//FDr1q3T0aNHlT9/fpUvX16SrM950KBBqlSpUqJ93dzckmzzzJkzatmypd588021atXKZl2pUqXUv39/9e7dW//880+S4c3KlSs1duxYDRw4UCEhIdZg780339TevXuT/dycnJzUs2dP9ezZUydPntSvv/6qadOm6e2339bq1asfu3/C87948aL1Zh6SdPLkSR0/flzly5d/7OudHG5uboqKikq0/Ny5c5KUooBry5Yt6t27t1xdXbV48WLrtRUTFC1aVBs3blR8fLzNlOCoqCjrdHxJiomJ0dtvv62ffvpJr732mgYNGpTkOTpnzhxNmDBBlSpV0qeffmoTTvr6+ia6EU3RokVNPZ+Utp8a9QMAACD5uCs0AACSli5dqnPnzlmnFPv7+8vR0VFnzpxRmTJlrP8cHBz08ccf68SJE4qOjlbNmjW1du1aSfeueditWzdVrVpVJ0+elCRVqFBBu3fvtgkXL1y4oK5du9rcjTc5du7caRMu7tu3TydOnLDeBfdh15C7X7Zs2VS7dm2tX79eP/74o5o1a2YNXooVK6acOXPqxIkTNs85b968mjRpksLDw5NsM1euXHJwcNCSJUt0586dROuPHj2qTJkyqXDhwknWuXPnTmXLlk1du3a1hoo3btzQzp07be4y/ajnd/v2bdWvX19z586VdO/ahB06dFDjxo2tr8WDNy55kJ+fnxwdHa3T1BPMnTtXb731ls6ePfvY1zs5KlasqOjoaO3atctm+ffffy9HR0fr9SiTKzw8XD169FC+fPm0dOnSRKGidO/6oDdu3NDvv/9uXXbx4kXt2LFD1apVsy4bOnSofv75Zw0dOlSDBw9OMpT78ssvNX78eDVs2FCzZ89OFMplzZrV5vwpU6ZMktd3fJgnaT816gcAAEDyMWIRAPBcuX79uv766y9J96ZMXrp0SRs3btTSpUvVrFkz6/X1cuTIoa5du+qTTz7R9evXFRgYqDNnzuiTTz6RxWKRj4+PXF1d5eHhoQ8//FDXr19XoUKFtG/fPm3YsEHdu3eXJHXu3Fnffvutunbtqu7du8vR0VGfffaZPDw81LRp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xo1TlSpV5O/vr+7du+vMmTPWbY4fP65u3bopICBAL774oubNm6d69eppxYoVWrFihYYOHWo9Hlu3brXuN3PmTNWoUUN+fn4KDQ216fdBe/bs0c6dO1W/fn3rMsMwtGDBAtWvX19+fn5q3LixVq1aJUk6ceKEvL29tXr1arVo0UJlypRRSEiIIiIi9Omnn6pq1aqqVKmSRo4caRN8Vq9eXdeuXdNPP/2UouP5IIJFAAAAAAAApMjEiRPVvHlzfffdd6pZs6b69OmjP//8U5L022+/qV+/fmrdurVWrVqlESNG6IcfftDAgQMl3bsWYUBAgBo2bKhly5ZJknr27Klr165p3rx5Wrt2rV577TXNnj1bv/zyi+nabt68ab3e4qJFi/T5558rR44cat26tU1wuGrVKl2+fFmLFi3SrFmztH//fk2ZMkWSdOvWLXXu3Fnx8fH64osvNHnyZK1YsUL//POPJKlRo0Z65513JEkbN25UQECAJCk6Olp//vmnZs6cqUWLFuncuXMaNmzYQ2tdv369fH19lStXLuuy2bNna/LkyeratatWrVqltm3batCgQdqyZYt1m8mTJ+udd97R119/ratXr6pdu3Y6duyYPv/8c/Xv319LlizRr7/+at3e0dFR1apVSxQApxTBIgAAAAAAAFIkJCREHTp0ULFixTRgwACVKVNGixYtkiRNnz5drVu3Vtu2bVWoUCFVr15dI0eO1Nq1a3XixAllz55djo6OcnZ2lru7u27fvq3mzZvrgw8+kI+PjwoWLKjOnTsrV65cOnTokOnaVq9eratXr2rChAny8fGRl5eXPvroI2XNmlVfffWVdTtXV1eNGjVKnp6eqlSpkho1amQNR9esWaOLFy9q0qRJ8vHxUYUKFTRhwgTrKEBnZ2e5urpKknLnzi0nJydJ9wK8iRMnysfHR35+fmrbtq327dv30Fr/+usveXl5WR8njFbs1KmTWrVqpUKFCik0NFT9+/fX3bt3rdu99tprqlSpknx8fFSvXj3dvHnT+lzatWunnDlz6siRIzZ9lShRQn/99Zfp45kUrrEIAAAAAACAFAkMDLR5HBAQoE2bNkmSwsPDtWfPHutoROnf6xFGRESoQIECNvs6OzurY8eOWrt2rfbs2aOoqCgdOnRI58+fT9FU6PDwcF25ckUVK1a0WX7nzh1FRERYHxcqVMjm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NooXL67w8HCbP2b8/PPPCgoKUrFixeTg4KCTJ0/anDsbNmzQnDlznus/bABPE34STciaNauWLFmiCRMmKCoqSocPH9aaNWtUpEgR5ciRQ3fu3NG4ceP07bff6sSJE9qxY4e2b9/+yJEBj9KtWzctWrRIK1asUFRUlObMmaMff/zRVBuvv/661qxZo88//1zHjx/XypUr9cUXX1j/uleyZEm9/fbb2rZtmyIiIjRq1CgdPnxYr7zyiiSpbNmyunz5subMmaMTJ07oyy+/1G+//WaqBhcXF0nSwYMHE/2Smh66du2qn376SdOmTVNkZKR+/fVXffDBB6pdu/ZTEyxybv03z62nxWuvvabw8HCNHDlSERER2rVrl95++20dO3ZMRYoUkYeHh6R7d/GOjo7Wjh071KtXL8XGxjJFFQ+VGj+jSFv58uXTn3/+qf379+v48eOaP3++Fi1aJEnWn+133nlHefLkUY8ePfTOO+/oxo0bGjt2bKr07+XlJRcXF82cOVPHjx/X77//rnnz5qVK20h9j/qu4ePjw2tp0uO+u7m4uCgiIkKXLl2Sh4eHTp8+rQ0bNig6Olo//fST3n//fUlK9udw48aNlTNnTr399ts6ePCgtm3bpo8++simHldXV61fv946HXX48OHav3//I/sIDAyUv7+/Bg0apL/++kt79+7VoEGDTAU2yWmjW7du+vHHHxUWFqbIyEht3rxZQ4cO1bVr16wjFqV7o+uWLFmiy5cvq2HDhkn25+HhoVu3bmnt2rU6efKkNm7cqLfeekvSv8fzUd8Rk/M99VmT1HFNzmfI46RGG+3bt9elS5c0YsQIRUREaPv27Ro/frwqV64sV1dXtW3bVp988om+++47/fPPP1q2bJkmTJigPHnypOBIAEgLBIsmeHp6aurUqdqyZYtatGihdu3ayd7eXrNmzZKdnZ1atWqlN954Q9OmTVPDhg3Vr18/Va9eXe+++26K+mvXrp169OihKVOmqEmTJvrjjz8UHByc5DSUhwkKCtKoUaO0ePFiNWrUSGFhYRo6dKhatGghe3t7zZ07V6VKlVKfPn3UsmVLHTlyRPPnz7def69y5cp64403NHfuXDVu3FibNm1S3759TT2P/9fe/YTCt4dxHP9cNbPQEFKKhUaylM3slJSaOWYmFEmhjCn/SkwZTRp200RhSmlKQixmIyzYKKKUnVKUZKEs7KQ0dveurvr18xtzmuEO9/3azjnP+fad53Senr7ne2pqatTQ0KCxsTElEglT52aD0+nU/Py8Dg4O5PV6NTMzI7fbrcXFxS8fy5+QW98zt3JFXV2dVlZWdH19rba2Ng0NDclut2ttbU1Wq1W1tbUKhULa2NiQYRgKhUJyOBzyeDy/rToF/pWNexSfKxwOq7S0VN3d3ero6NDR0ZFmZ2clSZeXl9ra2tLZ2ZkikYisVquKiooUDoeVSCR0fHyc8fVtNpvm5uZ0dXWl5uZmxWIxTU5OZhwXnyNVrVFQUMB/adJHtZvP59Pm5qZCoZB6e3tlGIaCwaA8Ho+Wl5cVCARUUVGR9nM4Pz9f6+vrslgs6urqUjAYlN/vf/vdYrEoFovp5uZGXq9Xfr9fyWRSgUBAt7e3SiaT78bNy8tTPB5XVVWVfD6fBgYG5Ha7VVJSkvZcpBPD5XJpYWFBh4eH8nq9mpiYUH19vZaWln6J5XQ6JUlNTU2y2WzvXs/lcqm/v1/RaFSGYSgSiai9vV0Oh+NtPlPViOnUqT/Ne/P60TMkHdmIUVZWptXVVd3d3am1tVXj4+NqbGzU9PS0JL3dQ7FYTIZhKB6Pa3R0VCMjI6bmAMDn+etv3oPLWScnJ6qurv7lAx3hcFj39/e/7d0CmEFuAQAAAACATLFiMYft7u5qeHhYFxcXenh40M7Ojvb29tTS0vJfDw3fHLkFAAAAAAAyxYrFHPb09KRoNKrT01M9Pz+rsrJSPT096uzs1P7+vqamplKe39fXx2trWTA4OKjz8/OUx2xvb8tut3/RiDJHbgEAAOAjP7EOBgBkF43Fb+rl5eXta3J/UlhYqOLi4i8a0c/1+Pio19fXlMeUl5eb2p8wl5FbAAAAkP5/dTAAwDwaiwAAAAAAAABMY49FAAAAAAAAAKbRWAQAAAAAAABgGo1FAAAAAAAAAKbRWAQAAAAAAABgGo1FAAAAAAAAAKbRWAQAAAAAAABgGo1FAAAAAAAAAKb9Aw80qZyricsyAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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zGWDBw/WL7/8osGDB2vgwIEJBorfffedxowZo3r16mnGjBnxRjpmypTJ7vzx8fFJ8HqOj/I07T+p/sjISA0cODBeKBk3tT+hGxwBAADg/zBSEQDwwrp586b++usvSfenSV67dk2bNm3SokWL1LhxY/N6etmyZVPnzp31xRdf6ObNmwoICNCFCxf0xRdfyGazycvLS5kzZ1bu3Ln1ySef6ObNmypQoID279+vjRs3qmvXrpKkDh06aMWKFercubO6du0qJycnff3118qdO7caNWpkaXrvnTt31LlzZ3Xv3l23bt3ShAkT5OHhYU41jhtp98svv6hKlSp2I9Ae1LhxY/Xu3VsxMTFq0qSJudzR0VF9+/bVhx9+KEdHR1WvXl3Xr1/X5MmTdeHCBXl7eyfYnqOjoz766CP17NlTzZo1U9u2bVW0aFHduXNHmzdv1oIFC/TOO++YIx2zZMmiy5cva+PGjSpWrJh8fX317bff6rPPPlP16tV18eJFzZw5U5cvX7YbHZklSxbt3r1bW7ZsiXejFRcXF3l7eyskJEROTk7y9PRUaGioli9frjp16kiSGU5t2bJFRYsWtZseLN2f9ty+fXvNmTNHzs7OKleunPbs2aNvv/1WAwYMUN68eZ/4eidGUFCQFi5cqJ49e6p3797Kly+ffv31Vy1dulS9evUyX8fEGjJkiO7du6e3335b586d07lz5+yOKW6Kb7ly5cxRllmzZtWkSZOUOXNmM0hft26dfvzxRwUGBqpkyZLmz0mc4sWLKyIiQqNGjVLevHnVtm3beEFz3I14kurSpUtJbj8x9b/88stq1qyZvvrqK6VLl07FixfXzp07NW3aNL3xxhtPvHs1AADAi45QEQDwwjp48KBatmwp6f4NKjJmzCgPDw999NFH8abu9unTRzlz5tTChQs1Y8YMubq6qkKFCnr33XfNgCokJESff/65vvjiC127dk158uRRr169zGsx5smTRwsXLtTYsWM1aNAgOTs7KyAgQBMmTJCrq6ulULFMmTIqX768hgwZIkkKDAzUgAEDzDsPBwQEqGLFiho/fry2bNnyyOm4VatWVebMmZU/f/5401KbN2+ujBkzasaMGVq0aJEyZMigUqVKady4cXY3iXlYtWrV9P3332vmzJmaMmWKrl69KmdnZxUvXlwTJkywu/lJUFCQNm7caIZqXbp0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p7CH1KxZU3PnztWqVavUqFGjZGuXUBEAAAAAAOAZEB0Toah719K6DCRSco3ynDBhgoKDg+Xk5JQs7SXkrbfe0ieffKL69evL0dExWdpk+jMAAAAAAAASzdPTUwsWLFCLFi3k4+OjRo0aaf369XbbbNiwQUFBQfL19VWtWrU0ceJERUVFSZKCg4O1fft2LV++3JwufPbsWfXt21cVKlSQt7e3qlSporFjxyo2NjZJNV64cEF9+/ZVmTJlFBAQoG7duunkyZPm+kGDBmnQoEEaPXq0KlSoID8/P3Xt2lUXLlwwtzl16pS6dOkif39/vfbaa5o9e7Zq1aqlZcuWadmyZRo8eLD5fGzbts3cb9q0aapSpYp8fX0VHBxs1+/D9u7dq127dqlOnTrmMsMwNHfuXNWpU0e+vr5q0KCBfvzxR0nSmTNn5OnpqdWrV+v111+Xj4+PgoKCdPz4cX311VeqWLGiypUrp+HDh9uFnpUrV9aNGzf0888/J+n5TAihIgAAAAAAACwZN26cmjRpoh9++EFVq1ZVr1699Oeff0qSfvvtN/Xp00ctWrTQjz/+qGHDhum///2v+vfvL+n+tQf9/f1Vr149LVmyRJLUvXt33bhxQ7Nnz9batWv11ltvacaMGfr1118t13b79m3z+orz58/XN998o2zZsqlFixZ2oeGPP/6of/75R/Pnz9f06dN14MABTZw4UZJ0584ddejQQbGxsfr22281YcIELVu2TKdPn5Yk1a9fX++//74kadOmTfL395ckhYeH688//9S0adM0f/58Xbp0SUOGDHlkrevXr5e3t7dy5MhhLpsxY4YmTJigzp0768cff1SrVq00YMAAbd261dxmwoQJev/997V48WJdv35drVu31smTJ/XNN9+ob9++WrhwoTZs2GBu7+TkpEqVKsULf58GoSIAAAAAAAAsCQoKUtu2bVWkSBH169dPPj4+mj9/viRpypQpatGihVq1aqUCBQqocuXKGj58uNauXaszZ84oa9ascnJykouLi9zc3BQZGakmTZro448/lpeXl/Lnz68OHTooR44cOnLkiOXaVq9erevXr2vs2LHy8vKSh4eHPv30U2XKlEnff/+9uV3mzJk1YsQIFS1aVOXKlVP9+vXNYHTNmjW6evWqxo8fLy8vL5UpU0Zjx441R/+5uLgoc+bMkqScOXPK2dlZ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IR8fHzVq1Ejr16+322bDhg0KCgqSr6+vatWqpYkTJyoqKkqSFBwcrO3bt2v58uUKDAyUdH86dN++fVWhQgV5e3urSpUqGjt2rGJjn3zNx2+++UZly5Y1Rx/GxsYqICBAXbt2Nbc5cuSIPD09de7cOQ0aNEjBwcHmup07d6p58+by9fVV48aNdfjwYXPdpEmTFBISovDwcHl6eurMmTOSpOjoaI0ePVrly5dXyZIl1aNHD12+fPmRNf7888+KiIhQxYoVzWXR0dH64osvVL16dfn5+SkoKEibN2+WdH8KdvHixfXLL7+oTp068vX1Vfv27XXu3Dl98sknKlOmjCpUqKCvv/7arp+6detq9+7d2rt37xOft6dFqAgAAAAAAABLxo0bpyZNmuiHH35Q1apV1atXL/3555+SpN9++019+vRRixYt9OOPP2rYsGH673//q/79+0u6H9T5+/urXr16WrJkiSSpe/fuunHjhmbPnq21a9fqrbfe0owZM/Trr78+sZbq1avr+vXr2r9/vyTpwIEDioiI0M6dO82gcePGjfL29laePHns9j19+rTeeustFStWTMuXL1fPnj01efJkc/1bb72lt956S7lz59amTZvM/Xfv3q3r169r4cKFmjp1qv766y+NGTPmkTWuW7dOFStWlLOzs7ns008/1XfffaeBAwdq1apVeu2119StWzedOHFC0v3RjV9//bXGjRunuXPn6vDhw2rSpImcnJy0ePFitWrVShMnTrS7zmSOHDlUokSJeCFvSiBUBAAAAAAAgCVBQUFq27atihQpon79+snHx0fz58+XJE2ZMkUtWrRQq1atVKBAAVWuXFnDhw/X2rVrdebMGWXNmlVOTk5ycXGRm5ubIiMj1aRJE3388cfy8vJS/vz51aFDB+XIkSNRN2bJly+fPDw8tGnTJknSH3/8oapVq+ru3bs6cOCAJOl///ufOSryQd9//71y5MihYcOGqWjRoqpTp466d+9urs+YMaMyZMggR0dH5cyZU46OjpKknDlz6uOPP1aRIkUUEBCg+vXrm6FmQvbs2SMPDw/z8c2bN7VkyRL16dNHdevWVYECBdS3b1917NhRN2/eNLd755135OPjI39/f5UvX17p06fXgAEDVLhwYXMk5t9//23X16uvvqq//vrric/b0+JGLQAAAAAAALAkICDA7rG/v785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MIz/Ow8PHjxoro/7+bhw4UJyHyKMp3uviNv/cT8XCb0fLFiwwNz2s88+M7y9vY3bt2+byypUqJDg/nES+tm0cgxImNXncfv27cYPP/xg18bChQsNLy8v83F0dLQRFBRkBAcHG9WrVzeDCsNIOFR85513zPUbNmwwPDw8jE2bNpnL3nnnHeOtt95KcP+ElrVr18544403zPVHjx41PDw8jEWLFpnLxowZY9SuXTvxTxQse9z3Cl5Ha570He3BQC0sLMyYPn263R/ljh07Znh4eBg7duwwDON+qFi+fHkjKirK3ObTTz81n8tvv/3WKFmypHH9+nVzfdznclyouGLFCrO9OH369DHat29vGMb/vffPnTvXXP/bb7/FC5/iji2xoWJi2mjdunW8z6gtW7aY51dsbKxRo0YNY9KkSeb6+vXrG59//rlhGPH/6D516lTj5s2b5raRkZGGh4eHGVg9fO4+uH9iv496enoa//zzj7nNnDlzDG9v70Q9J2ntcc9nYj4zqlevbvTs2dNumwdDxcS28fD30SZNmpifXePGjTOqVatmREdHm+u3bNliTJ482bh165bh4+Nj/rE7zhdffGHp9xIAKYtrKj6kYMGC5v+nT59eklSgQAFzmYuLizlE/0HFihVTw4YN1a1bN+XMmVOVKlVStWrVVKtWLUlS48aNtXTpUtWpU0evvPKKKlasqDp16ujll19+ZC1FixY1/z/uYrjR0dG6du2awsPDVbJkSbvty5Qpo4MHDyb6WI8ePaoGDRrYLWvRooUkafr06cqcObM8PDzMdTabTWXKlNGmTZsS3cfDxyHdP5bo6GhLbTyNx/Wf0HNQrlw5c90rr7zyxDYSi3Pr33dupTYr59DBgwcVFhYmf3//eO0cP35cAQEBateundauXau9e/cqLCxMR44c0eXLl83pz3Eedb4gZST1vSKO1Z+LB/vLkCGDcuTIYfabmP6e1GZSjgH3WXkey5Yta05dP3HihPkz/eDPc7p06TR27Fg1btxY2bNn1wcffPDU/cdNf06sB/ePazN//vx2bfL+krIe970isZe34HW870nf0R5UoEABBQUFad68eTp69KhOnTqlw4cPS5JiYmLstnNycjIfP/y9tVChQnY3yXj4c75Jkyb6448/NG7cOJ08eVInTpxQaGioypQpY7fdgz/fR48elaurq93rWqxY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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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P3++Vq5cqSZNmqRYu4SKAAAAAAAAT4DomCuKunspvctAIqXUKM9JkyYpJCRETk5OKdJeQl555RV98MEHatiwoRwdHVOkTaY/AwAAAAAAING8vb21ePFitW7dWr6+vmrSpInWrVtnt82vv/6q4OBg+fn5qW7dupo8ebKioqIkSSEhIdqyZYu+/fZbc7rwqVOn1L9/f1WuXFmlSpVS9erVNX78eMXGxiapxjNnzqh///4qX768AgMD1aNHDx09etRcP2TIEA0ZMkRjx45V5cqV5e/vr+7du+vMmTPmNsePH1e3bt0UEBCgF154QXPnzlXdunW1fPlyLV++XEOHDjXPR1hYmLnfjBkzVL16dfn5+SkkJMSu3wft2rVL27dvV7169cxlhmFo/vz5qlevnvz8/NSoUSOtWrVKknTy5El5e3tr9erVat68uXx9fRUcHKzDhw/rs88+U5UqVVSxYkWNHDnSLvSsVq2arl27pp9++ilJ5zMhhIoAAAAAAACwZMKECWrWrJm+//571ahRQ71799Zff/0lSfr999/Vr18/tW7dWqtWrdKIESP0v//9TwMHDpR0796DAQEBatCggZYtWyZJ6tmzp65du6a5c+dqzZo1euWVVzRr1iz98ssvlmu7efOmeX/FRYsWaeHChcqWLZtat25tFxquWrVKly9f1qJFizRz5kzt3btXkydPliTdunVLnTt3VmxsrL744gtNmjRJy5cv14kTJyRJDRs21LBhwyRJGzZsUEBAgCQpMjJSf/31l2bMmKFFixbp3Llzevvttx9a67p161SqVCnlyJHDXDZr1ixNmjRJr776qlatWqW2bdtq0KBB2rx5s7nNpEmTNGzYMH399de6evWq2rVrp6NHj2rhwoXq37+/lixZol9//dXc3snJSVWrVo0X/iYHoSIAAAAAAAAsCQ4OVocOHVS0aFENGDBAvr6+WrRokSRp2rRpat26tdq2bauCBQuqWrVqGjlypNasWaOTJ08qa9ascnJykouLizw8PHT79m01a9ZM77//vnx8fFSgQAF17txZOXLkUHh4uOXaVq9eratXr2r8+PHy8fGRl5eXPvzwQ2XOnFlfffWVuZ2bm5tGjRolT09PVaxYUQ0bNjSD0R9++EEXL17UxIkT5ePjo/Lly2v8+PHm6D8XFxe5ublJknLmzClnZ2dJ98K7CRMmyMfH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h7msePHiql69un755Rc1bNgwSX05OTmpWLFiya4ZAAAASCqbzZbeJfwnFClShJGKAJ5JsUasHGypepe6J6pfPP1SJVQ8cOCATpw4oSZNmsRbd3+gKEm5cuVS1qxZdfr06ST3Z7PZGGIMAAAA/AcwhRzAs8rB5qDFO//QmetX0qzP3Jnd1cH/hTTr736nTp3Sjh071KhRo0Rtv3z5cg0dOlTh4eHJ7nvIkCGKjIzUwoULE1wfFhamTp06ad26dcqfP79u3rypb7/9Vh06dEjU/o/y+uuvq0WLFqpbt26yjiEh8+fP14kTJzR8+PAUbzshqRIqbtu2TdmzZ5ePj4/d8kmTJmnNmjVas2aN+S+5J0+e1KVLlxhpCAAAAAAAnmlnrl9R5NWL6V1Gmhg8eLDy5cuX6FAxJb399tuKiYlJ9PZz5szR8uXLzVAxqVatWqVr166lSqAoSR06dFCjRo20bds2lS9fPlX6uF+qjG/dt2+fvL294y2vW7euIiMj9d577ykiIkJbt25Vnz59VLZsWb3wQvok4wAAAAAAAHh2uLm5mQ8VToyUuC1HTEyMJk+erK5duya7rYfJkCGDQkJCNGnSpFTr436pEiqeO3cuwTendOnSmjlzpsLDwxUcHKzevXurRIkSmjZtGvegAQAAAAAAeAp4e3tr8eLFat26tXx9fdWkSROtW7fObptff/1VwcHB8vPzU926dTV58mRFRUVJkkJCQrRlyxZ9++23CgoKknRvOnT//v1VuXJllSpVStWrV9f48eMVGxv72HoWLlyoChUqmKMPY2NjFRgYqO7du5vbhIeHy9vbW//++6+GDBmikJAQc922bdvUqlUr+fn5qWnTpjpw4IC5bsqUKQoNDVVkZKS8vb118uRJSfceGjx27FhVqlRJZcqU0euvv67z588/tMaffvpJV65cUZUqVcxl0dHR+uSTT1SrVi35+/srODhYGzdulHRvCnbJkiX1888/q169evLz81OnTp3077//6oMPPlD58uVVuXJlff7553b91K9fXzt27NCuXbsee96SK1VCxZkzZz40Fa1cubK+/PJL7dixQ2FhYRo9erTc3d1TowwAAAAAAACkggkTJqhZs2b6/vvvVaNGDfXu3Vt//fWXJOn3339Xv3791Lp1a61atUojRozQ//73Pw0cOFDSvaAuICBADRo00LJlyyRJ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u7trPTqgoxgtMjKSvLw8TCYTCxcuxGAwkJCQQHBwMF999RVxcXF4eXnZvd91dXVl586duLi4EBERQUJCAlFRUZb3XVxcyMjIoLy8nJCQEKKiomhubiYuLo6Kigqam5vbLLdnz55s374db29vIiMjWbp0KUFBQfTr18/uvrCnjBkzZrB161a+//57QkJCWLVqFX5+fmRmZlqVNX36dADef/993Nzc2qxvxowZLF68mJSUFAwGA8nJycyePRtfX19Lf9qKBe2JR7uLtvqzo32GPZxRxqBBg8jOzubOnTuEhoby6aefMnXqVNauXQtg2XYyMjIwGAxs374do9HI8uXLHeoDEek8PZ7pPrcu68yZM4wYMcJqQo7ExERqa2tbPcdFxF4aVyIiIiIiIiLSEV2p2IUdPnyY2NhYiouLqaur49ChQxw5coQPP/zw/26adGEaVyIiIiIiIiLSEV2p2IU1NDSQkpLC2bNn+eOPPxgyZAgLFixgzpw5mM1mPvvsM5uf//jjj3Xb2kuKiYnh8uXLNpc5ePAgw4YNe0UtenkaVyIiIiLSojvGuyIi4hxKKnZTTU1Nlhnl2tOnTx88PDxeUYu6p19++YVHjx7ZXObtt9926HmErzONKxEREZE3y5sW74qIiP2UVBQRERERERERERGH6JmKIiIiIiIiIiIi4hAlFUVERERERERERMQhSiqKiIiIiIiIiIiIQ5RUFBEREREREREREYcoqSgiIiIiIiIiIiIOUVJRREREREREREREHKKkooiIiIiIiIiIiDjkb2eKjLVAvxUCAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "desriptive_statistics_plot(descriptive_report,0)\n", + "desriptive_statistics_plot(descriptive_report,1)\n", + "desriptive_statistics_plot(descriptive_report,2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Drifting metrics" + ] + }, + { + "cell_type": "code", + "execution_count": 185, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'id': 'b3381df8-56b4-43f6-aa72-523427b7d723',\n", + " 'created_at': '2023-02-09T14:33:00.456240',\n", + " 'updated_at': '2023-02-09T14:33:00.456240',\n", + " 'model_id': '83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " 'timestamp': '2022-12-22T00:00:00',\n", + " 'concept_drift_summary': {'concept_drift_summary': {'column_name': 'target',\n", + " 'column_type': 'cat',\n", + " 'stattest_name': 'chi-square p_value',\n", + " 'drift_score': 0.3896307449384165,\n", + " 'drift_detected': False,\n", + " 'stattest_threshold': 0.05},\n", + " 'column_correlation': {'column_name': 'target',\n", + " 'current': {},\n", + " 'reference': {}}},\n", + " 'data_drift_summary': {'number_of_columns': 4,\n", + " 'number_of_drifted_columns': 0,\n", + " 'share_of_drifted_columns': 0.0,\n", + " 'dataset_drift': False,\n", + " 'drift_by_columns': {'petal length (cm)': {'column_name': 'petal length (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.7588302830810655,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05},\n", + " 'petal width (cm)': {'column_name': 'petal width (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.7588302830810655,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05},\n", + " 'sepal length (cm)': {'column_name': 'sepal length (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.8382225197478262,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05},\n", + " 'sepal width (cm)': {'column_name': 'sepal width (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.9540265350498883,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05}}}},\n", + " {'id': '6f74de30-9a5c-4a88-9e02-0a7d8777e242',\n", + " 'created_at': '2023-02-09T14:36:00.506190',\n", + " 'updated_at': '2023-02-09T14:36:00.506190',\n", + " 'model_id': '83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " 'timestamp': '2022-12-23T00:00:00',\n", + " 'concept_drift_summary': {'concept_drift_summary': {'column_name': 'target',\n", + " 'column_type': 'cat',\n", + " 'stattest_name': 'chi-square p_value',\n", + " 'drift_score': 0.6738389777139696,\n", + " 'drift_detected': False,\n", + " 'stattest_threshold': 0.05},\n", + " 'column_correlation': {'column_name': 'target',\n", + " 'current': {},\n", + " 'reference': {}}},\n", + " 'data_drift_summary': {'number_of_columns': 4,\n", + " 'number_of_drifted_columns': 0,\n", + " 'share_of_drifted_columns': 0.0,\n", + " 'dataset_drift': False,\n", + " 'drift_by_columns': {'petal length (cm)': {'column_name': 'petal length (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.9797880018857934,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05},\n", + " 'petal width (cm)': {'column_name': 'petal width (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.9325945507895383,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05},\n", + " 'sepal length (cm)': {'column_name': 'sepal length (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.8957682983065736,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05},\n", + " 'sepal width (cm)': {'column_name': 'sepal width (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.7450045755465691,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05}}}},\n", + " {'id': '78453a39-faa0-4aa7-bb30-8e4e1b91fef4',\n", + " 'created_at': '2023-02-09T14:39:00.608156',\n", + " 'updated_at': '2023-02-09T14:39:00.608156',\n", + " 'model_id': '83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " 'timestamp': '2022-12-24T00:00:00',\n", + " 'concept_drift_summary': {'concept_drift_summary': {'column_name': 'target',\n", + " 'column_type': 'cat',\n", + " 'stattest_name': 'chi-square p_value',\n", + " 'drift_score': 0.32175216781613775,\n", + " 'drift_detected': False,\n", + " 'stattest_threshold': 0.05},\n", + " 'column_correlation': {'column_name': 'target',\n", + " 'current': {},\n", + " 'reference': {}}},\n", + " 'data_drift_summary': {'number_of_columns': 4,\n", + " 'number_of_drifted_columns': 0,\n", + " 'share_of_drifted_columns': 0.0,\n", + " 'dataset_drift': False,\n", + " 'drift_by_columns': {'petal length (cm)': {'column_name': 'petal length (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.692577574430372,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05},\n", + " 'petal width (cm)': {'column_name': 'petal width (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.692577574430372,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05},\n", + " 'sepal length (cm)': {'column_name': 'sepal length (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.8799325977736985,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05},\n", + " 'sepal width (cm)': {'column_name': 'sepal width (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.1333377862549532,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05}}}}]" + ] + }, + "execution_count": 185, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#drift_report = wb.get_drifting_metrics('83539c2b-579f-4a2c-b7ba-02d31c9408d8')\n", + "#drift_report" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Performance metrics" + ] + }, + { + "cell_type": "code", + "execution_count": 186, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'id': 'b4bff1cd-76bd-47e6-8446-4ce690096dac',\n", + " 'created_at': '2023-02-09T14:33:00.473312',\n", + " 'updated_at': '2023-02-09T14:33:00.473312',\n", + " 'accuracy': 0.6,\n", + " 'precision': {'micro': 0.6,\n", + " 'macro': 0.7333333333333334,\n", + " 'weighted': 0.9199999999999999},\n", + " 'recall': {'micro': 0.6, 'macro': 0.7000000000000001, 'weighted': 0.6},\n", + " 'f1': {'micro': 0.6, 'macro': 0.5833333333333334, 'weighted': 0.675},\n", + " 'confusion_matrix': {'class0': {'true_negative': 5,\n", + " 'false_positive': 4,\n", + " 'false_negative': 0,\n", + " 'true_positive': 1},\n", + " 'class1': {'true_negative': 5,\n", + " 'false_positive': 0,\n", + " 'false_negative': 2,\n", + " 'true_positive': 3},\n", + " 'class2': {'true_negative': 6,\n", + " 'false_positive': 0,\n", + " 'false_negative': 2,\n", + " 'true_positive': 2}},\n", + " 'model_id': '83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " 'timestamp': '2022-12-22T00:00:00'},\n", + " {'id': '0ffa0e1d-8e8a-4658-8443-7405a9cd6fd5',\n", + " 'created_at': '2023-02-09T14:36:00.522083',\n", + " 'updated_at': '2023-02-09T14:36:00.522083',\n", + " 'accuracy': 0.45,\n", + " 'precision': {'micro': 0.45,\n", + " 'macro': 0.48611111111111116,\n", + " 'weighted': 0.6125},\n", + " 'recall': {'micro': 0.45, 'macro': 0.46296296296296297, 'weighted': 0.45},\n", + " 'f1': {'micro': 0.45,\n", + " 'macro': 0.4222222222222222,\n", + " 'weighted': 0.5000000000000001},\n", + " 'confusion_matrix': {'class0': {'true_negative': 11,\n", + " 'false_positive': 7,\n", + " 'false_negative': 1,\n", + " 'true_positive': 1},\n", + " 'class1': {'true_negative': 10,\n", + " 'false_positive': 1,\n", + " 'false_negative': 4,\n", + " 'true_positive': 5},\n", + " 'class2': {'true_negative': 8,\n", + " 'false_positive': 3,\n", + " 'false_negative': 6,\n", + " 'true_positive': 3}},\n", + " 'model_id': '83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " 'timestamp': '2022-12-23T00:00:00'},\n", + " {'id': 'ca19193b-5c9b-478b-93a7-48c7b08af306',\n", + " 'created_at': '2023-02-09T14:39:00.618561',\n", + " 'updated_at': '2023-02-09T14:39:00.618561',\n", + " 'accuracy': 0.43333333333333335,\n", + " 'precision': {'micro': 0.43333333333333335,\n", + " 'macro': 0.48860398860398857,\n", + " 'weighted': 0.6921652421652421},\n", + " 'recall': {'micro': 0.43333333333333335,\n", + " 'macro': 0.4447415329768271,\n", + " 'weighted': 0.43333333333333335},\n", + " 'f1': {'micro': 0.43333333333333335,\n", + " 'macro': 0.389923526765632,\n", + " 'weighted': 0.5119928025191183},\n", + " 'confusion_matrix': {'class0': {'true_negative': 16,\n", + " 'false_positive': 12,\n", + " 'false_negative': 1,\n", + " 'true_positive': 1},\n", + " 'class1': {'true_negative': 12,\n", + " 'false_positive': 1,\n", + " 'false_negative': 9,\n", + " 'true_positive': 8},\n", + " 'class2': {'true_negative': 15,\n", + " 'false_positive': 4,\n", + " 'false_negative': 7,\n", + " 'true_positive': 4}},\n", + " 'model_id': '83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " 'timestamp': '2022-12-24T00:00:00'}]" + ] + }, + "execution_count": 186, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#performance_report = wb.get_performance_metrics('83539c2b-579f-4a2c-b7ba-02d31c9408d8')\n", + "#performance_report" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# XAI" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [], + "source": [ + "xai1 = wb.get_xai_row(\"5e7b7c5f-ad22-434d-97f2-5fc337e18652\")\n", + "xai2 = wb.get_xai_row(\"1d530810-6305-47c1-94fb-2c220b75de22\")\n", + "xai3 = wb.get_xai_row(\"eea71062-bbcc-4bf7-afd0-a74445e29fe8\")" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'petal length (cm)': -0.3655865878574561,\n", + " 'petal width (cm)': 0.2930264801775198,\n", + " 'sepal width (cm)': -0.0613901196998769,\n", + " 'sepal length (cm)': 0.00817411441223634}" + ] + }, + "execution_count": 76, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "xai1" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'petal length (cm)': -0.36642992068168223,\n", + " 'sepal width (cm)': -0.02670817184574049,\n", + " 'petal width (cm)': 0.024446452319809565,\n", + " 'sepal length (cm)': 0.006533247074591248}" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "xai2" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'petal length (cm)': 0.2504030752277958,\n", + " 'petal width (cm)': -0.060684870258653496,\n", + " 'sepal width (cm)': -0.02022202057162284,\n", + " 'sepal length (cm)': 0.01005262567815375}" + ] + }, + "execution_count": 78, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "xai3" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#wb.delete_model('f96e93bd-80fb-4b44-834d-6ffc5a737fbc')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.10.8 (conda)", + "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.10.8" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "4de3d24b14351dd1d776fcd4034cd3e8d8527433466e9293dd76189fddd35128" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/whitebox/sdk/whitebox.py b/whitebox/sdk/whitebox.py index 8a98a5f..3e57246 100644 --- a/whitebox/sdk/whitebox.py +++ b/whitebox/sdk/whitebox.py @@ -173,18 +173,6 @@ def log_inferences( return False - def _check_processed_and_non_processed_length( - self, processed: pd.DataFrame, non_processed: pd.DataFrame - ) -> bool: - """ - Checks if the processed and non processed dataframes have the same number of rows. - """ - if len(processed) != len(non_processed): - raise ValueError( - "Processed and non processed dataframes must have the same length." - ) - return True - def create_model_monitor( self, model_id: str, @@ -231,3 +219,71 @@ def get_alerts(self, model_id: str = "") -> dict: logger.info(result.json()) return result.json() + + def get_drifting_metrics(self, model_id: str): + """ + Returns a model's drifting metric reports. If the model does not exist, returns None. + If the model exists but there are no metrics, returns an empty list. + """ + result = requests.get( + url=f"{self.host}/{self.api_version}/drifting-metrics?model_id={model_id}", + headers={"api-key": self.api_key}, + ) + if result.status_code == status.HTTP_404_NOT_FOUND: + return None + + return result.json() + + def get_descriptive_statistics(self, model_id: str): + """ + Returns a model's descriptive metric reports. If the model does not exist, returns None. + If the model exists but there are no metrics, returns an empty list. + """ + result = requests.get( + url=f"{self.host}/{self.api_version}/model-integrity-metrics?model_id={model_id}", + headers={"api-key": self.api_key}, + ) + if result.status_code == status.HTTP_404_NOT_FOUND: + return None + + return result.json() + + def get_performance_metrics(self, model_id: str): + """ + Returns a model's performance metric reports. If the model does not exist, returns None. + If the model exists but there are no metrics, returns an empty list. + """ + result = requests.get( + url=f"{self.host}/{self.api_version}/performance-metrics?model_id={model_id}", + headers={"api-key": self.api_key}, + ) + if result.status_code == status.HTTP_404_NOT_FOUND: + return None + + return result.json() + + def get_xai_row(self, inference_row_id: str): + """ + Given a specific inference row id, this endpoint produces an explainability report for this inference. + If some of the required data isn't found, returns None. + """ + result = requests.get( + url=f"{self.host}/{self.api_version}/inference-rows/{inference_row_id}/xai", + headers={"api-key": self.api_key}, + ) + if result.status_code == status.HTTP_404_NOT_FOUND: + return None + + return result.json() + + def _check_processed_and_non_processed_length( + self, processed: pd.DataFrame, non_processed: pd.DataFrame + ) -> bool: + """ + Checks if the processed and non processed dataframes have the same number of rows. + """ + if len(processed) != len(non_processed): + raise ValueError( + "Processed and non processed dataframes must have the same length." + ) + return True From adb45d9c6edee8446b88954404d7d51c10111e88 Mon Sep 17 00:00:00 2001 From: NickNtamp Date: Wed, 15 Feb 2023 18:29:12 +0200 Subject: [PATCH 2/6] Initial PR --- .env.dev | 2 +- descriptive.json | 1 + drift.json | 1 + performance.json | 1 + whitebox/cron_tasks/tasks.py | 2 +- 5 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 descriptive.json create mode 100644 drift.json create mode 100644 performance.json diff --git a/.env.dev b/.env.dev index 6c21b0f..f9b8989 100644 --- a/.env.dev +++ b/.env.dev @@ -5,6 +5,6 @@ APP_NAME_CRON=Whitebox | Development DATABASE_URL=postgresql://postgres:postgres@localhost:5432/postgres VERSION=0.1.0 -METRICS_CRON=*/15 * * * * +METRICS_CRON=*/3 * * * * MODEL_PATH=models \ No newline at end of file diff --git a/descriptive.json b/descriptive.json new file mode 100644 index 0000000..77ec763 --- /dev/null +++ b/descriptive.json @@ -0,0 +1 @@ +[{"id": "99d7c601-925b-4d58-96b3-8bca2bbdff19", "created_at": "2023-02-09T14:33:00.483453", "updated_at": "2023-02-09T14:33:00.483453", "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-22T00:00:00", "feature_metrics": {"missing_count": {"sepal length (cm)": 0, "sepal width (cm)": 0, "petal length (cm)": 0, "petal width (cm)": 0, "target": 0}, "non_missing_count": {"sepal length (cm)": 10, "sepal width (cm)": 10, "petal length (cm)": 10, "petal width (cm)": 10, "target": 10}, "mean": {"sepal length (cm)": 5.679999999999999, "sepal width (cm)": 3.1, "petal length (cm)": 3.1799999999999997, "petal width (cm)": 0.97, "target": 0.7}, "minimum": {"sepal length (cm)": 4.8, "sepal width (cm)": 2.5, "petal length (cm)": 1.4, "petal width (cm)": 0.1, "target": 0.0}, "maximum": {"sepal length (cm)": 6.5, "sepal width (cm)": 3.9, "petal length (cm)": 5.6, "petal width (cm)": 2.1, "target": 2.0}, "sum": {"sepal length (cm)": 56.79999999999999, "sepal width (cm)": 31.0, "petal length (cm)": 31.799999999999997, "petal width (cm)": 9.7, "target": 7.0}, "standard_deviation": {"sepal length (cm)": 0.6779052703405954, "sepal width (cm)": 0.408248290463863, "petal length (cm)": 1.8262286579481526, "petal width (cm)": 0.7557924465236618, "target": 0.8232726023485646}, "variance": {"sepal length (cm)": 0.4595555555555558, "sepal width (cm)": 0.16666666666666666, "petal length (cm)": 3.335111111111111, "petal width (cm)": 0.5712222222222223, "target": 0.6777777777777778}}}, {"id": "4a7ca49b-ece6-45ac-a9cc-9560ab72cb73", "created_at": "2023-02-09T14:36:00.531345", "updated_at": "2023-02-09T14:36:00.531345", "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-23T00:00:00", "feature_metrics": {"missing_count": {"sepal length (cm)": 0, "sepal width (cm)": 0, "petal length (cm)": 0, "petal width (cm)": 0, "target": 0}, "non_missing_count": {"sepal length (cm)": 20, "sepal width (cm)": 20, "petal length (cm)": 20, "petal width (cm)": 20, "target": 20}, "mean": {"sepal length (cm)": 5.819999999999999, "sepal width (cm)": 3.1050000000000004, "petal length (cm)": 3.560000000000001, "petal width (cm)": 1.1300000000000001, "target": 0.9}, "minimum": {"sepal length (cm)": 4.6, "sepal width (cm)": 2.5, "petal length (cm)": 1.4, "petal width (cm)": 0.1, "target": 0.0}, "maximum": {"sepal length (cm)": 7.2, "sepal width (cm)": 3.9, "petal length (cm)": 6.0, "petal width (cm)": 2.1, "target": 2.0}, "sum": {"sepal length (cm)": 116.39999999999999, "sepal width (cm)": 62.10000000000001, "petal length (cm)": 71.20000000000002, "petal width (cm)": 22.6, "target": 18.0}, "standard_deviation": {"sepal length (cm)": 0.7770389138802578, "sepal width (cm)": 0.3235900590497018, "petal length (cm)": 1.7922053453775881, "petal width (cm)": 0.7664683191173177, "target": 0.8522416262267904}, "variance": {"sepal length (cm)": 0.6037894736842108, "sepal width (cm)": 0.10471052631578948, "petal length (cm)": 3.2119999999999997, "petal width (cm)": 0.5874736842105264, "target": 0.7263157894736844}}}, {"id": "5a6f6f9f-98c7-4c7b-94ab-8fe6c60a3906", "created_at": "2023-02-09T14:39:00.626188", "updated_at": "2023-02-09T14:39:00.626188", "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-24T00:00:00", "feature_metrics": {"missing_count": {"sepal length (cm)": 0, "sepal width (cm)": 0, "petal length (cm)": 0, "petal width (cm)": 0, "target": 0}, "non_missing_count": {"sepal length (cm)": 30, "sepal width (cm)": 30, "petal length (cm)": 30, "petal width (cm)": 30, "target": 30}, "mean": {"sepal length (cm)": 5.876666666666666, "sepal width (cm)": 3.2199999999999998, "petal length (cm)": 3.4433333333333334, "petal width (cm)": 1.0966666666666667, "target": 0.8333333333333334}, "minimum": {"sepal length (cm)": 4.6, "sepal width (cm)": 2.5, "petal length (cm)": 1.2, "petal width (cm)": 0.1, "target": 0.0}, "maximum": {"sepal length (cm)": 7.2, "sepal width (cm)": 4.0, "petal length (cm)": 6.1, "petal width (cm)": 2.5, "target": 2.0}, "sum": {"sepal length (cm)": 176.29999999999998, "sepal width (cm)": 96.6, "petal length (cm)": 103.3, "petal width (cm)": 32.9, "target": 25.0}, "standard_deviation": {"sepal length (cm)": 0.8041630188708883, "sepal width (cm)": 0.37268827688047546, "petal length (cm)": 1.8108263180169955, "petal width (cm)": 0.7967534699981061, "target": 0.8339078479367936}, "variance": {"sepal length (cm)": 0.6466781609195406, "sepal width (cm)": 0.13889655172413795, "petal length (cm)": 3.2790919540229884, "petal width (cm)": 0.634816091954023, "target": 0.6954022988505746}}}] \ No newline at end of file diff --git a/drift.json b/drift.json new file mode 100644 index 0000000..07e9c5c --- /dev/null +++ b/drift.json @@ -0,0 +1 @@ +[{"id": "b3381df8-56b4-43f6-aa72-523427b7d723", "created_at": "2023-02-09T14:33:00.456240", "updated_at": "2023-02-09T14:33:00.456240", "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-22T00:00:00", "concept_drift_summary": {"concept_drift_summary": {"column_name": "target", "column_type": "cat", "stattest_name": "chi-square p_value", "drift_score": 0.3896307449384165, "drift_detected": false, "stattest_threshold": 0.05}, "column_correlation": {"column_name": "target", "current": {}, "reference": {}}}, "data_drift_summary": {"number_of_columns": 4, "number_of_drifted_columns": 0, "share_of_drifted_columns": 0.0, "dataset_drift": false, "drift_by_columns": {"petal length (cm)": {"column_name": "petal length (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.7588302830810655, "drift_detected": false, "threshold": 0.05}, "petal width (cm)": {"column_name": "petal width (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.7588302830810655, "drift_detected": false, "threshold": 0.05}, "sepal length (cm)": {"column_name": "sepal length (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.8382225197478262, "drift_detected": false, "threshold": 0.05}, "sepal width (cm)": {"column_name": "sepal width (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.9540265350498883, "drift_detected": false, "threshold": 0.05}}}},{"id": "6f74de30-9a5c-4a88-9e02-0a7d8777e242", "created_at": "2023-02-09T14:36:00.506190", "updated_at": "2023-02-09T14:36:00.506190", "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-23T00:00:00", "concept_drift_summary": {"concept_drift_summary": {"column_name": "target", "column_type": "cat", "stattest_name": "chi-square p_value", "drift_score": 0.6738389777139696, "drift_detected": false, "stattest_threshold": 0.05}, "column_correlation": {"column_name": "target", "current": {}, "reference": {}}}, "data_drift_summary": {"number_of_columns": 4, "number_of_drifted_columns": 0, "share_of_drifted_columns": 0.0, "dataset_drift": false, "drift_by_columns": {"petal length (cm)": {"column_name": "petal length (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.9797880018857934, "drift_detected": false, "threshold": 0.05}, "petal width (cm)": {"column_name": "petal width (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.9325945507895383, "drift_detected": false, "threshold": 0.05}, "sepal length (cm)": {"column_name": "sepal length (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.8957682983065736, "drift_detected": false, "threshold": 0.05}, "sepal width (cm)": {"column_name": "sepal width (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.7450045755465691, "drift_detected": false, "threshold": 0.05}}}}, {"id": "78453a39-faa0-4aa7-bb30-8e4e1b91fef4", "created_at": "2023-02-09T14:39:00.608156", "updated_at": "2023-02-09T14:39:00.608156", "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-24T00:00:00", "concept_drift_summary": {"concept_drift_summary": {"column_name": "target", "column_type": "cat", "stattest_name": "chi-square p_value", "drift_score": 0.32175216781613775, "drift_detected": false, "stattest_threshold": 0.05}, "column_correlation": {"column_name": "target", "current": {}, "reference": {}}}, "data_drift_summary": {"number_of_columns": 4, "number_of_drifted_columns": 0, "share_of_drifted_columns": 0.0, "dataset_drift": false, "drift_by_columns": {"petal length (cm)": {"column_name": "petal length (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.692577574430372, "drift_detected": false, "threshold": 0.05}, "petal width (cm)": {"column_name": "petal width (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.692577574430372, "drift_detected": false, "threshold": 0.05}, "sepal length (cm)": {"column_name": "sepal length (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.8799325977736985, "drift_detected": false, "threshold": 0.05}, "sepal width (cm)": {"column_name": "sepal width (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.1333377862549532, "drift_detected": false, "threshold": 0.05}}}}] \ No newline at end of file diff --git a/performance.json b/performance.json new file mode 100644 index 0000000..b238b2d --- /dev/null +++ b/performance.json @@ -0,0 +1 @@ +[{"id": "b4bff1cd-76bd-47e6-8446-4ce690096dac", "created_at": "2023-02-09T14:33:00.473312", "updated_at": "2023-02-09T14:33:00.473312", "accuracy": 0.6, "precision": {"micro": 0.6, "macro": 0.7333333333333334, "weighted": 0.9199999999999999}, "recall": {"micro": 0.6, "macro": 0.7000000000000001, "weighted": 0.6}, "f1": {"micro": 0.6, "macro": 0.5833333333333334, "weighted": 0.675}, "confusion_matrix": {"class0": {"true_negative": 5, "false_positive": 4, "false_negative": 0, "true_positive": 1}, "class1": {"true_negative": 5, "false_positive": 0, "false_negative": 2, "true_positive": 3}, "class2": {"true_negative": 6, "false_positive": 0, "false_negative": 2, "true_positive": 2}}, "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-22T00:00:00"}, {"id": "0ffa0e1d-8e8a-4658-8443-7405a9cd6fd5", "created_at": "2023-02-09T14:36:00.522083", "updated_at": "2023-02-09T14:36:00.522083", "accuracy": 0.45, "precision": {"micro": 0.45, "macro": 0.48611111111111116, "weighted": 0.6125}, "recall": {"micro": 0.45, "macro": 0.46296296296296297, "weighted": 0.45}, "f1": {"micro": 0.45, "macro": 0.4222222222222222, "weighted": 0.5000000000000001}, "confusion_matrix": {"class0": {"true_negative": 11, "false_positive": 7, "false_negative": 1, "true_positive": 1}, "class1": {"true_negative": 10, "false_positive": 1, "false_negative": 4, "true_positive": 5}, "class2": {"true_negative": 8, "false_positive": 3, "false_negative": 6, "true_positive": 3}}, "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-23T00:00:00"} , {"id": "ca19193b-5c9b-478b-93a7-48c7b08af306", "created_at": "2023-02-09T14:39:00.618561", "updated_at": "2023-02-09T14:39:00.618561", "accuracy": 0.43333333333333335, "precision": {"micro": 0.43333333333333335, "macro": 0.48860398860398857, "weighted": 0.6921652421652421}, "recall": {"micro": 0.43333333333333335, "macro": 0.4447415329768271, "weighted": 0.43333333333333335}, "f1": {"micro": 0.43333333333333335, "macro": 0.389923526765632, "weighted": 0.5119928025191183}, "confusion_matrix": {"class0": {"true_negative": 16, "false_positive": 12, "false_negative": 1, "true_positive": 1}, "class1": {"true_negative": 12, "false_positive": 1, "false_negative": 9, "true_positive": 8}, "class2": {"true_negative": 15, "false_positive": 4, "false_negative": 7, "true_positive": 4}}, "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-24T00:00:00"}] \ No newline at end of file diff --git a/whitebox/cron_tasks/tasks.py b/whitebox/cron_tasks/tasks.py index 521f9d0..34bec27 100644 --- a/whitebox/cron_tasks/tasks.py +++ b/whitebox/cron_tasks/tasks.py @@ -5,7 +5,7 @@ task_manager = get_task_manager() -metrics_cron = os.getenv("METRICS_CRON") or "*/15 * * * *" +metrics_cron = os.getenv("METRICS_CRON") or "*/3 * * * *" task_manager.register( name="metrics_cron", From 8356c507bafd197de54c790f5a5a827d48cf1659 Mon Sep 17 00:00:00 2001 From: NickNtamp Date: Wed, 15 Feb 2023 18:37:43 +0200 Subject: [PATCH 3/6] Initial PR Co-authored-by: John Zaras --- .env.dev | 2 +- descriptive.json | 1 + drift.json | 1 + performance.json | 1 + whitebox/cron_tasks/tasks.py | 2 +- 5 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 descriptive.json create mode 100644 drift.json create mode 100644 performance.json diff --git a/.env.dev b/.env.dev index 6c21b0f..f9b8989 100644 --- a/.env.dev +++ b/.env.dev @@ -5,6 +5,6 @@ APP_NAME_CRON=Whitebox | Development DATABASE_URL=postgresql://postgres:postgres@localhost:5432/postgres VERSION=0.1.0 -METRICS_CRON=*/15 * * * * +METRICS_CRON=*/3 * * * * MODEL_PATH=models \ No newline at end of file diff --git a/descriptive.json b/descriptive.json new file mode 100644 index 0000000..77ec763 --- /dev/null +++ b/descriptive.json @@ -0,0 +1 @@ +[{"id": "99d7c601-925b-4d58-96b3-8bca2bbdff19", "created_at": "2023-02-09T14:33:00.483453", "updated_at": "2023-02-09T14:33:00.483453", "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-22T00:00:00", "feature_metrics": {"missing_count": {"sepal length (cm)": 0, "sepal width (cm)": 0, "petal length (cm)": 0, "petal width (cm)": 0, "target": 0}, "non_missing_count": {"sepal length (cm)": 10, "sepal width (cm)": 10, "petal length (cm)": 10, "petal width (cm)": 10, "target": 10}, "mean": {"sepal length (cm)": 5.679999999999999, "sepal width (cm)": 3.1, "petal length (cm)": 3.1799999999999997, "petal width (cm)": 0.97, "target": 0.7}, "minimum": {"sepal length (cm)": 4.8, "sepal width (cm)": 2.5, "petal length (cm)": 1.4, "petal width (cm)": 0.1, "target": 0.0}, "maximum": {"sepal length (cm)": 6.5, "sepal width (cm)": 3.9, "petal length (cm)": 5.6, "petal width (cm)": 2.1, "target": 2.0}, "sum": {"sepal length (cm)": 56.79999999999999, "sepal width (cm)": 31.0, "petal length (cm)": 31.799999999999997, "petal width (cm)": 9.7, "target": 7.0}, "standard_deviation": {"sepal length (cm)": 0.6779052703405954, "sepal width (cm)": 0.408248290463863, "petal length (cm)": 1.8262286579481526, "petal width (cm)": 0.7557924465236618, "target": 0.8232726023485646}, "variance": {"sepal length (cm)": 0.4595555555555558, "sepal width (cm)": 0.16666666666666666, "petal length (cm)": 3.335111111111111, "petal width (cm)": 0.5712222222222223, "target": 0.6777777777777778}}}, {"id": "4a7ca49b-ece6-45ac-a9cc-9560ab72cb73", "created_at": "2023-02-09T14:36:00.531345", "updated_at": "2023-02-09T14:36:00.531345", "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-23T00:00:00", "feature_metrics": {"missing_count": {"sepal length (cm)": 0, "sepal width (cm)": 0, "petal length (cm)": 0, "petal width (cm)": 0, "target": 0}, "non_missing_count": {"sepal length (cm)": 20, "sepal width (cm)": 20, "petal length (cm)": 20, "petal width (cm)": 20, "target": 20}, "mean": {"sepal length (cm)": 5.819999999999999, "sepal width (cm)": 3.1050000000000004, "petal length (cm)": 3.560000000000001, "petal width (cm)": 1.1300000000000001, "target": 0.9}, "minimum": {"sepal length (cm)": 4.6, "sepal width (cm)": 2.5, "petal length (cm)": 1.4, "petal width (cm)": 0.1, "target": 0.0}, "maximum": {"sepal length (cm)": 7.2, "sepal width (cm)": 3.9, "petal length (cm)": 6.0, "petal width (cm)": 2.1, "target": 2.0}, "sum": {"sepal length (cm)": 116.39999999999999, "sepal width (cm)": 62.10000000000001, "petal length (cm)": 71.20000000000002, "petal width (cm)": 22.6, "target": 18.0}, "standard_deviation": {"sepal length (cm)": 0.7770389138802578, "sepal width (cm)": 0.3235900590497018, "petal length (cm)": 1.7922053453775881, "petal width (cm)": 0.7664683191173177, "target": 0.8522416262267904}, "variance": {"sepal length (cm)": 0.6037894736842108, "sepal width (cm)": 0.10471052631578948, "petal length (cm)": 3.2119999999999997, "petal width (cm)": 0.5874736842105264, "target": 0.7263157894736844}}}, {"id": "5a6f6f9f-98c7-4c7b-94ab-8fe6c60a3906", "created_at": "2023-02-09T14:39:00.626188", "updated_at": "2023-02-09T14:39:00.626188", "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-24T00:00:00", "feature_metrics": {"missing_count": {"sepal length (cm)": 0, "sepal width (cm)": 0, "petal length (cm)": 0, "petal width (cm)": 0, "target": 0}, "non_missing_count": {"sepal length (cm)": 30, "sepal width (cm)": 30, "petal length (cm)": 30, "petal width (cm)": 30, "target": 30}, "mean": {"sepal length (cm)": 5.876666666666666, "sepal width (cm)": 3.2199999999999998, "petal length (cm)": 3.4433333333333334, "petal width (cm)": 1.0966666666666667, "target": 0.8333333333333334}, "minimum": {"sepal length (cm)": 4.6, "sepal width (cm)": 2.5, "petal length (cm)": 1.2, "petal width (cm)": 0.1, "target": 0.0}, "maximum": {"sepal length (cm)": 7.2, "sepal width (cm)": 4.0, "petal length (cm)": 6.1, "petal width (cm)": 2.5, "target": 2.0}, "sum": {"sepal length (cm)": 176.29999999999998, "sepal width (cm)": 96.6, "petal length (cm)": 103.3, "petal width (cm)": 32.9, "target": 25.0}, "standard_deviation": {"sepal length (cm)": 0.8041630188708883, "sepal width (cm)": 0.37268827688047546, "petal length (cm)": 1.8108263180169955, "petal width (cm)": 0.7967534699981061, "target": 0.8339078479367936}, "variance": {"sepal length (cm)": 0.6466781609195406, "sepal width (cm)": 0.13889655172413795, "petal length (cm)": 3.2790919540229884, "petal width (cm)": 0.634816091954023, "target": 0.6954022988505746}}}] \ No newline at end of file diff --git a/drift.json b/drift.json new file mode 100644 index 0000000..07e9c5c --- /dev/null +++ b/drift.json @@ -0,0 +1 @@ +[{"id": "b3381df8-56b4-43f6-aa72-523427b7d723", "created_at": "2023-02-09T14:33:00.456240", "updated_at": "2023-02-09T14:33:00.456240", "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-22T00:00:00", "concept_drift_summary": {"concept_drift_summary": {"column_name": "target", "column_type": "cat", "stattest_name": "chi-square p_value", "drift_score": 0.3896307449384165, "drift_detected": false, "stattest_threshold": 0.05}, "column_correlation": {"column_name": "target", "current": {}, "reference": {}}}, "data_drift_summary": {"number_of_columns": 4, "number_of_drifted_columns": 0, "share_of_drifted_columns": 0.0, "dataset_drift": false, "drift_by_columns": {"petal length (cm)": {"column_name": "petal length (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.7588302830810655, "drift_detected": false, "threshold": 0.05}, "petal width (cm)": {"column_name": "petal width (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.7588302830810655, "drift_detected": false, "threshold": 0.05}, "sepal length (cm)": {"column_name": "sepal length (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.8382225197478262, "drift_detected": false, "threshold": 0.05}, "sepal width (cm)": {"column_name": "sepal width (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.9540265350498883, "drift_detected": false, "threshold": 0.05}}}},{"id": "6f74de30-9a5c-4a88-9e02-0a7d8777e242", "created_at": "2023-02-09T14:36:00.506190", "updated_at": "2023-02-09T14:36:00.506190", "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-23T00:00:00", "concept_drift_summary": {"concept_drift_summary": {"column_name": "target", "column_type": "cat", "stattest_name": "chi-square p_value", "drift_score": 0.6738389777139696, "drift_detected": false, "stattest_threshold": 0.05}, "column_correlation": {"column_name": "target", "current": {}, "reference": {}}}, "data_drift_summary": {"number_of_columns": 4, "number_of_drifted_columns": 0, "share_of_drifted_columns": 0.0, "dataset_drift": false, "drift_by_columns": {"petal length (cm)": {"column_name": "petal length (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.9797880018857934, "drift_detected": false, "threshold": 0.05}, "petal width (cm)": {"column_name": "petal width (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.9325945507895383, "drift_detected": false, "threshold": 0.05}, "sepal length (cm)": {"column_name": "sepal length (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.8957682983065736, "drift_detected": false, "threshold": 0.05}, "sepal width (cm)": {"column_name": "sepal width (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.7450045755465691, "drift_detected": false, "threshold": 0.05}}}}, {"id": "78453a39-faa0-4aa7-bb30-8e4e1b91fef4", "created_at": "2023-02-09T14:39:00.608156", "updated_at": "2023-02-09T14:39:00.608156", "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-24T00:00:00", "concept_drift_summary": {"concept_drift_summary": {"column_name": "target", "column_type": "cat", "stattest_name": "chi-square p_value", "drift_score": 0.32175216781613775, "drift_detected": false, "stattest_threshold": 0.05}, "column_correlation": {"column_name": "target", "current": {}, "reference": {}}}, "data_drift_summary": {"number_of_columns": 4, "number_of_drifted_columns": 0, "share_of_drifted_columns": 0.0, "dataset_drift": false, "drift_by_columns": {"petal length (cm)": {"column_name": "petal length (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.692577574430372, "drift_detected": false, "threshold": 0.05}, "petal width (cm)": {"column_name": "petal width (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.692577574430372, "drift_detected": false, "threshold": 0.05}, "sepal length (cm)": {"column_name": "sepal length (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.8799325977736985, "drift_detected": false, "threshold": 0.05}, "sepal width (cm)": {"column_name": "sepal width (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.1333377862549532, "drift_detected": false, "threshold": 0.05}}}}] \ No newline at end of file diff --git a/performance.json b/performance.json new file mode 100644 index 0000000..b238b2d --- /dev/null +++ b/performance.json @@ -0,0 +1 @@ +[{"id": "b4bff1cd-76bd-47e6-8446-4ce690096dac", "created_at": "2023-02-09T14:33:00.473312", "updated_at": "2023-02-09T14:33:00.473312", "accuracy": 0.6, "precision": {"micro": 0.6, "macro": 0.7333333333333334, "weighted": 0.9199999999999999}, "recall": {"micro": 0.6, "macro": 0.7000000000000001, "weighted": 0.6}, "f1": {"micro": 0.6, "macro": 0.5833333333333334, "weighted": 0.675}, "confusion_matrix": {"class0": {"true_negative": 5, "false_positive": 4, "false_negative": 0, "true_positive": 1}, "class1": {"true_negative": 5, "false_positive": 0, "false_negative": 2, "true_positive": 3}, "class2": {"true_negative": 6, "false_positive": 0, "false_negative": 2, "true_positive": 2}}, "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-22T00:00:00"}, {"id": "0ffa0e1d-8e8a-4658-8443-7405a9cd6fd5", "created_at": "2023-02-09T14:36:00.522083", "updated_at": "2023-02-09T14:36:00.522083", "accuracy": 0.45, "precision": {"micro": 0.45, "macro": 0.48611111111111116, "weighted": 0.6125}, "recall": {"micro": 0.45, "macro": 0.46296296296296297, "weighted": 0.45}, "f1": {"micro": 0.45, "macro": 0.4222222222222222, "weighted": 0.5000000000000001}, "confusion_matrix": {"class0": {"true_negative": 11, "false_positive": 7, "false_negative": 1, "true_positive": 1}, "class1": {"true_negative": 10, "false_positive": 1, "false_negative": 4, "true_positive": 5}, "class2": {"true_negative": 8, "false_positive": 3, "false_negative": 6, "true_positive": 3}}, "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-23T00:00:00"} , {"id": "ca19193b-5c9b-478b-93a7-48c7b08af306", "created_at": "2023-02-09T14:39:00.618561", "updated_at": "2023-02-09T14:39:00.618561", "accuracy": 0.43333333333333335, "precision": {"micro": 0.43333333333333335, "macro": 0.48860398860398857, "weighted": 0.6921652421652421}, "recall": {"micro": 0.43333333333333335, "macro": 0.4447415329768271, "weighted": 0.43333333333333335}, "f1": {"micro": 0.43333333333333335, "macro": 0.389923526765632, "weighted": 0.5119928025191183}, "confusion_matrix": {"class0": {"true_negative": 16, "false_positive": 12, "false_negative": 1, "true_positive": 1}, "class1": {"true_negative": 12, "false_positive": 1, "false_negative": 9, "true_positive": 8}, "class2": {"true_negative": 15, "false_positive": 4, "false_negative": 7, "true_positive": 4}}, "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-24T00:00:00"}] \ No newline at end of file diff --git a/whitebox/cron_tasks/tasks.py b/whitebox/cron_tasks/tasks.py index 521f9d0..34bec27 100644 --- a/whitebox/cron_tasks/tasks.py +++ b/whitebox/cron_tasks/tasks.py @@ -5,7 +5,7 @@ task_manager = get_task_manager() -metrics_cron = os.getenv("METRICS_CRON") or "*/15 * * * *" +metrics_cron = os.getenv("METRICS_CRON") or "*/3 * * * *" task_manager.register( name="metrics_cron", From dacf373eaeaff5b3fd836fcac3401c37df346464 Mon Sep 17 00:00:00 2001 From: NickNtamp Date: Wed, 15 Feb 2023 18:37:55 +0200 Subject: [PATCH 4/6] initial PR --- examples/notebooks/plot_functions.py | 28 + .../notebooks/whitebox-demonstration.ipynb | 908 ++++++++++++++++++ whitebox/sdk/whitebox.py | 80 +- 3 files changed, 1004 insertions(+), 12 deletions(-) create mode 100644 examples/notebooks/plot_functions.py create mode 100644 examples/notebooks/whitebox-demonstration.ipynb diff --git a/examples/notebooks/plot_functions.py b/examples/notebooks/plot_functions.py new file mode 100644 index 0000000..7593399 --- /dev/null +++ b/examples/notebooks/plot_functions.py @@ -0,0 +1,28 @@ +import pandas as pd +import seaborn as sns + + +def desriptive_statistics_plot(report, timestep): + df = pd.DataFrame.from_dict(report[timestep]["feature_metrics"]) + df = df.drop(["target"]) + df["class"] = df.index + df_pivot = pd.melt(df, id_vars="class", var_name="statistics", value_name="value") + gfg = sns.catplot( + x="statistics", + y="value", + hue="class", + data=df_pivot, + kind="bar", + orient="v", + aspect=7 / 3, + palette="Spectral", + ) + sns.set_theme(style="whitegrid") + gfg.set( + xlabel="", + ylabel="", + title="Descriptive Statistics for " + + report[timestep]["timestamp"].strip("T00:00:00"), + ) + + return gfg diff --git a/examples/notebooks/whitebox-demonstration.ipynb b/examples/notebooks/whitebox-demonstration.ipynb new file mode 100644 index 0000000..0fafafa --- /dev/null +++ b/examples/notebooks/whitebox-demonstration.ipynb @@ -0,0 +1,908 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/Users/nikosntampakis/Desktop/Git Hub/whitebox\n" + ] + } + ], + "source": [ + "cd ../.." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "from whitebox.sdk.whitebox import Whitebox\n", + "wb = Whitebox(host=\"http://127.0.0.1:8000\", api_key=\"ca7df06f72f82f5e4bec3926209b5d12bdf168941e33531b302ae9b0c9710975\")" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.datasets import load_iris\n", + "import pandas as pd\n", + "from plot_functions import *\n", + "import seaborn as sns" + ] + }, + { + "cell_type": "code", + "execution_count": 184, + "metadata": {}, + "outputs": [], + "source": [ + "df_tp = load_iris()\n", + "df = pd.DataFrame(df_tp.data, columns=df_tp.feature_names)\n", + "df[\"target\"] = df_tp.target" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "df = df.sample(frac = 1)\n", + "\n", + "training_dataset=df.head(120)\n", + "inference_dataset_1=df.iloc[120:130]\n", + "inference_dataset_2=df.iloc[130:140]\n", + "inference_dataset_3=df.iloc[140:150]" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'id': '83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " 'created_at': '2023-02-09T14:30:13.787193',\n", + " 'updated_at': '2023-02-09T14:30:13.787193',\n", + " 'name': 'IrMod',\n", + " 'description': '',\n", + " 'type': 'multi_class',\n", + " 'features': {'sepal length (cm)': 'numerical',\n", + " 'sepal width (cm)': 'numerical',\n", + " 'petal length (cm)': 'numerical',\n", + " 'petal width (cm)': 'numerical'},\n", + " 'prediction': 'target',\n", + " 'probability': 'proba',\n", + " 'labels': {'Iris-Setosa': 0, 'Iris-Versicolour': 1, 'Iris-Virginica': 2}}" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "wb.create_model(\n", + " name=\"IrMod\",\n", + " type=\"multi_class\",\n", + " features={\n", + " 'sepal length (cm)': 'numerical',\n", + " 'sepal width (cm)': 'numerical',\n", + " 'petal length (cm)': 'numerical',\n", + " 'petal width (cm)': 'numerical'\n", + " },\n", + " labels={\n", + " 'Iris-Setosa': 0,\n", + " 'Iris-Versicolour': 1,\n", + " 'Iris-Virginica': 2\n", + " },\n", + " prediction=\"target\",\n", + " probability=\"proba\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "non_processed_df = training_dataset\n", + "processed_df = training_dataset\n", + "\n", + "wb.log_training_dataset(\n", + " model_id='83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " non_processed=non_processed_df,\n", + " processed=processed_df\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 63, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\n", + "timestamps = pd.Series([\"2022-12-22\"] * 10)\n", + "actuals = pd.Series([1, 1, 0, 2, 1, 1, 2, 2, 2, 1])\n", + "\n", + "wb.log_inferences(\n", + " model_id='83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " non_processed=inference_dataset_1,\n", + " processed=inference_dataset_1,\n", + " timestamps=timestamps,\n", + " actuals=actuals\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 64, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "timestamps = pd.Series([\"2022-12-23\"] * 10)\n", + "actuals = pd.Series([2, 1, 1, 1, 1, 2, 2, 2, 0, 2])\n", + "\n", + "wb.log_inferences(\n", + " model_id='83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " non_processed=inference_dataset_2,\n", + " processed=inference_dataset_2,\n", + " timestamps=timestamps,\n", + " actuals=actuals\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "timestamps = pd.Series([\"2022-12-24\"] * 10)\n", + "actuals = pd.Series([1, 1, 1, 1, 1, 1, 1, 1, 2, 2])\n", + "\n", + "wb.log_inferences(\n", + " model_id='83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " non_processed=inference_dataset_3,\n", + " processed=inference_dataset_3,\n", + " timestamps=timestamps,\n", + " actuals=actuals\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "\n", + "with open('descriptive.json', 'r') as openfile:\n", + " descriptive_report = json.load(openfile)\n", + "\n", + "with open('drift.json', 'r') as openfile:\n", + " drift_report = json.load(openfile)\n", + "\n", + "with open('performance.json', 'r') as openfile:\n", + " performance_report = json.load(openfile)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Descriptive statistics" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'id': '99d7c601-925b-4d58-96b3-8bca2bbdff19',\n", + " 'created_at': '2023-02-09T14:33:00.483453',\n", + " 'updated_at': '2023-02-09T14:33:00.483453',\n", + " 'model_id': '83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " 'timestamp': '2022-12-22T00:00:00',\n", + " 'feature_metrics': {'missing_count': {'sepal length (cm)': 0,\n", + " 'sepal width (cm)': 0,\n", + " 'petal length (cm)': 0,\n", + " 'petal width (cm)': 0,\n", + " 'target': 0},\n", + " 'non_missing_count': {'sepal length (cm)': 10,\n", + " 'sepal width (cm)': 10,\n", + " 'petal length (cm)': 10,\n", + " 'petal width (cm)': 10,\n", + " 'target': 10},\n", + " 'mean': {'sepal length (cm)': 5.679999999999999,\n", + " 'sepal width (cm)': 3.1,\n", + " 'petal length (cm)': 3.1799999999999997,\n", + " 'petal width (cm)': 0.97,\n", + " 'target': 0.7},\n", + " 'minimum': {'sepal length (cm)': 4.8,\n", + " 'sepal width (cm)': 2.5,\n", + " 'petal length (cm)': 1.4,\n", + " 'petal width (cm)': 0.1,\n", + " 'target': 0.0},\n", + " 'maximum': {'sepal length (cm)': 6.5,\n", + " 'sepal width (cm)': 3.9,\n", + " 'petal length (cm)': 5.6,\n", + " 'petal width (cm)': 2.1,\n", + " 'target': 2.0},\n", + " 'sum': {'sepal length (cm)': 56.79999999999999,\n", + " 'sepal width (cm)': 31.0,\n", + " 'petal length (cm)': 31.799999999999997,\n", + " 'petal width (cm)': 9.7,\n", + " 'target': 7.0},\n", + " 'standard_deviation': {'sepal length (cm)': 0.6779052703405954,\n", + " 'sepal width (cm)': 0.408248290463863,\n", + " 'petal length (cm)': 1.8262286579481526,\n", + " 'petal width (cm)': 0.7557924465236618,\n", + " 'target': 0.8232726023485646},\n", + " 'variance': {'sepal length (cm)': 0.4595555555555558,\n", + " 'sepal width (cm)': 0.16666666666666666,\n", + " 'petal length (cm)': 3.335111111111111,\n", + " 'petal width (cm)': 0.5712222222222223,\n", + " 'target': 0.6777777777777778}}},\n", + " {'id': '4a7ca49b-ece6-45ac-a9cc-9560ab72cb73',\n", + " 'created_at': '2023-02-09T14:36:00.531345',\n", + " 'updated_at': '2023-02-09T14:36:00.531345',\n", + " 'model_id': '83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " 'timestamp': '2022-12-23T00:00:00',\n", + " 'feature_metrics': {'missing_count': {'sepal length (cm)': 0,\n", + " 'sepal width (cm)': 0,\n", + " 'petal length (cm)': 0,\n", + " 'petal width (cm)': 0,\n", + " 'target': 0},\n", + " 'non_missing_count': {'sepal length (cm)': 20,\n", + " 'sepal width (cm)': 20,\n", + " 'petal length (cm)': 20,\n", + " 'petal width (cm)': 20,\n", + " 'target': 20},\n", + " 'mean': {'sepal length (cm)': 5.819999999999999,\n", + " 'sepal width (cm)': 3.1050000000000004,\n", + " 'petal length (cm)': 3.560000000000001,\n", + " 'petal width (cm)': 1.1300000000000001,\n", + " 'target': 0.9},\n", + " 'minimum': {'sepal length (cm)': 4.6,\n", + " 'sepal width (cm)': 2.5,\n", + " 'petal length (cm)': 1.4,\n", + " 'petal width (cm)': 0.1,\n", + " 'target': 0.0},\n", + " 'maximum': {'sepal length (cm)': 7.2,\n", + " 'sepal width (cm)': 3.9,\n", + " 'petal length (cm)': 6.0,\n", + " 'petal width (cm)': 2.1,\n", + " 'target': 2.0},\n", + " 'sum': {'sepal length (cm)': 116.39999999999999,\n", + " 'sepal width (cm)': 62.10000000000001,\n", + " 'petal length (cm)': 71.20000000000002,\n", + " 'petal width (cm)': 22.6,\n", + " 'target': 18.0},\n", + " 'standard_deviation': {'sepal length (cm)': 0.7770389138802578,\n", + " 'sepal width (cm)': 0.3235900590497018,\n", + " 'petal length (cm)': 1.7922053453775881,\n", + " 'petal width (cm)': 0.7664683191173177,\n", + " 'target': 0.8522416262267904},\n", + " 'variance': {'sepal length (cm)': 0.6037894736842108,\n", + " 'sepal width (cm)': 0.10471052631578948,\n", + " 'petal length (cm)': 3.2119999999999997,\n", + " 'petal width (cm)': 0.5874736842105264,\n", + " 'target': 0.7263157894736844}}},\n", + " {'id': '5a6f6f9f-98c7-4c7b-94ab-8fe6c60a3906',\n", + " 'created_at': '2023-02-09T14:39:00.626188',\n", + " 'updated_at': '2023-02-09T14:39:00.626188',\n", + " 'model_id': '83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " 'timestamp': '2022-12-24T00:00:00',\n", + " 'feature_metrics': {'missing_count': {'sepal length (cm)': 0,\n", + " 'sepal width (cm)': 0,\n", + " 'petal length (cm)': 0,\n", + " 'petal width (cm)': 0,\n", + " 'target': 0},\n", + " 'non_missing_count': {'sepal length (cm)': 30,\n", + " 'sepal width (cm)': 30,\n", + " 'petal length (cm)': 30,\n", + " 'petal width (cm)': 30,\n", + " 'target': 30},\n", + " 'mean': {'sepal length (cm)': 5.876666666666666,\n", + " 'sepal width (cm)': 3.2199999999999998,\n", + " 'petal length (cm)': 3.4433333333333334,\n", + " 'petal width (cm)': 1.0966666666666667,\n", + " 'target': 0.8333333333333334},\n", + " 'minimum': {'sepal length (cm)': 4.6,\n", + " 'sepal width (cm)': 2.5,\n", + " 'petal length (cm)': 1.2,\n", + " 'petal width (cm)': 0.1,\n", + " 'target': 0.0},\n", + " 'maximum': {'sepal length (cm)': 7.2,\n", + " 'sepal width (cm)': 4.0,\n", + " 'petal length (cm)': 6.1,\n", + " 'petal width (cm)': 2.5,\n", + " 'target': 2.0},\n", + " 'sum': {'sepal length (cm)': 176.29999999999998,\n", + " 'sepal width (cm)': 96.6,\n", + " 'petal length (cm)': 103.3,\n", + " 'petal width (cm)': 32.9,\n", + " 'target': 25.0},\n", + " 'standard_deviation': {'sepal length (cm)': 0.8041630188708883,\n", + " 'sepal width (cm)': 0.37268827688047546,\n", + " 'petal length (cm)': 1.8108263180169955,\n", + " 'petal width (cm)': 0.7967534699981061,\n", + " 'target': 0.8339078479367936},\n", + " 'variance': {'sepal length (cm)': 0.6466781609195406,\n", + " 'sepal width (cm)': 0.13889655172413795,\n", + " 'petal length (cm)': 3.2790919540229884,\n", + " 'petal width (cm)': 0.634816091954023,\n", + " 'target': 0.6954022988505746}}}]" + ] + }, + "execution_count": 98, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#descriptive_report = wb.get_descriptive_statistics('83539c2b-579f-4a2c-b7ba-02d31c9408d8')\n", + "#descriptive_report" + ] + }, + { + "cell_type": "code", + "execution_count": 183, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 183, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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ypWTvb29smXLJkmaOHGiihQpkmj7hBDI1dVVAwcO1MCBA3X06FGtX79e06ZN08iRIzVz5ky5urrq4sWLifbfvHmzChQoYGoUV8KNTO53/vx5U9NLGzZsqA8//FDr1q3T0aNHlT9/fpUvX16SrM950KBBqlSpUqJ93dzckmzzzJkzatmypd588021atXKZl2pUqXUv39/9e7dW//880+S4c3KlSs1duxYDRw4UCEhIdZg780339TevXuT/dycnJzUs2dP9ezZUydPntSvv/6qadOm6e2339bq1asfu3/C87948aL1Zh6SdPLkSR0/flzly5d/7OudHG5uboqKikq0/Ny5c5KUooBry5Yt6t27t1xdXbV48WLrtRUTFC1aVBs3blR8fLzNlOCoqCjrdHxJiomJ0dtvv62ffvpJr732mgYNGpTkOTpnzhxNmDBBlSpV0qeffmoTTvr6+ia6EU3RokVNPZ+Utp8a9QMAACD5uCs0AACSli5dqnPnzlmnFPv7+8vR0VFnzpxRmTJlrP8cHBz08ccf68SJE4qOjlbNmjW1du1aSfeueditWzdVrVpVJ0+elCRVqFBBu3fvtgkXL1y4oK5du9rcjTc5du7caRMu7tu3TydOnLDeBfdh15C7X7Zs2VS7dm2tX79eP/74o5o1a2YNXooVK6acOXPqxIkTNs85b968mjRpksLDw5NsM1euXHJwcNCSJUt0586dROuPHj2qTJkyqXDhwknWuXPnTmXLlk1du3a1hoo3btzQzp07be4y/ajnd/v2bdWvX19z586VdO/ahB06dFDjxo2tr8WDNy55kJ+fnxwdHa3T1BPMnTtXb731ls6ePfvY1zs5KlasqOjoaO3atctm+ffffy9HR0fr9SiTKzw8XD169FC+fPm0dOnSRKGidO/6oDdu3NDvv/9uXXbx4kXt2LFD1apVsy4bOnSofv75Zw0dOlSDBw9OMpT78ssvNX78eDVs2FCzZ89OFMplzZrV5vwpU6ZMktd3fJgnaT816gcAAEDyMWIRAPBcuX79uv766y9J96ZMXrp0SRs3btTSpUvVrFkz6/X1cuTIoa5du+qTTz7R9evXFRgYqDNnzuiTTz6RxWKRj4+PXF1d5eHhoQ8//FDXr19XoUKFtG/fPm3YsEHdu3eXJHXu3Fnffvutunbtqu7du8vR0VGfffaZPDw81LRp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xo1TlSpV5O/vr+7du+vMmTPWbY4fP65u3bopICBAL774oubNm6d69eppxYoVWrFihYYOHWo9Hlu3brXuN3PmTNWoUUN+fn4KDQ216fdBe/bs0c6dO1W/fn3rMsMwtGDBAtWvX19+fn5q3LixVq1aJUk6ceKEvL29tXr1arVo0UJlypRRSEiIIiIi9Omnn6pq1aqqVKmSRo4caRN8Vq9eXdeuXdNPP/2UouP5IIJFAAAAAAAApMjEiRPVvHlzfffdd6pZs6b69OmjP//8U5L022+/qV+/fmrdurVWrVqlESNG6IcfftDAgQMl3bsWYUBAgBo2bKhly5ZJknr27Klr165p3rx5Wrt2rV577TXNnj1bv/zyi+nabt68ab3e4qJFi/T5558rR44cat26tU1wuGrVKl2+fFmLFi3SrFmztH//fk2ZMkWSdOvWLXXu3Fnx8fH64osvNHnyZK1YsUL//POPJKlRo0Z65513JEkbN25UQECAJCk6Olp//vmnZs6cqUWLFuncuXMaNmzYQ2tdv369fH19lStXLuuy2bNna/LkyeratatWrVqltm3batCgQdqyZYt1m8mTJ+udd97R119/ratXr6pdu3Y6duyYPv/8c/Xv319LlizRr7/+at3e0dFR1apVSxQApxTBIgAAAAAAAFIkJCREHTp0ULFixTRgwACVKVNGixYtkiRNnz5drVu3Vtu2bVWoUCFVr15dI0eO1Nq1a3XixAllz55djo6OcnZ2lru7u27fvq3mzZvrgw8+kI+PjwoWLKjOnTsrV65cOnTokOnaVq9eratXr2rChAny8fGRl5eXPvroI2XNmlVfffWVdTtXV1eNGjVKnp6eqlSpkho1amQNR9esWaOLFy9q0qRJ8vHxUYUKFTRhwgTrKEBnZ2e5urpKknLnzi0nJydJ9wK8iRMnysfHR35+fmrbtq327dv30Fr/+usveXl5WR8njFbs1KmTWrVqpUKFCik0NFT9+/fX3bt3rdu99tprqlSpknx8fFSvXj3dvHnT+lzatWunnDlz6siRIzZ9lShRQn/99Zfp45kUrrEIAAAAAACAFAkMDLR5HBAQoE2bNkmSwsPDtWfPHutoROnf6xFGRESoQIECNvs6OzurY8eOWrt2rfbs2aOoqCgdOnRI58+fT9FU6PDwcF25ckUVK1a0WX7nzh1FRERYHxcqVMjm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NooXL67w8HCbP2b8/PPPCgoKUrFixeTg4KCTJ0/anDsbNmzQnDlznus/bABPE34STciaNauWLFmiCRMmKCoqSocPH9aaNWtUpEgR5ciRQ3fu3NG4ceP07bff6sSJE9qxY4e2b9/+yJEBj9KtWzctWrRIK1asUFRUlObMmaMff/zRVBuvv/661qxZo88//1zHjx/XypUr9cUXX1j/uleyZEm9/fbb2rZtmyIiIjRq1CgdPnxYr7zyiiSpbNmyunz5subMmaMTJ07oyy+/1G+//WaqBhcXF0nSwYMHE/2Smh66du2qn376SdOmTVNkZKR+/fVXffDBB6pdu/ZTEyxybv03z62nxWuvvabw8HCNHDlSERER2rVrl95++20dO3ZMRYoUkYeHh6R7d/GOjo7Wjh071KtXL8XGxjJFFQ+VGj+jSFv58uXTn3/+qf379+v48eOaP3++Fi1aJEnWn+133nlHefLkUY8ePfTOO+/oxo0bGjt2bKr07+XlJRcXF82cOVPHjx/X77//rnnz5qVK20h9j/qu4ePjw2tp0uO+u7m4uCgiIkKXLl2Sh4eHTp8+rQ0bNig6Olo//fST3n//fUlK9udw48aNlTNnTr399ts6ePCgtm3bpo8++simHldXV61fv946HXX48OHav3//I/sIDAyUv7+/Bg0apL/++kt79+7VoEGDTAU2yWmjW7du+vHHHxUWFqbIyEht3rxZQ4cO1bVr16wjFqV7o+uWLFmiy5cvq2HDhkn25+HhoVu3bmnt2rU6efKkNm7cqLfeekvSv8fzUd8Rk/M99VmT1HFNzmfI46RGG+3bt9elS5c0YsQIRUREaPv27Ro/frwqV64sV1dXtW3bVp988om+++47/fPPP1q2bJkmTJigPHnypOBIAEgLBIsmeHp6aurUqdqyZYtatGihdu3ayd7eXrNmzZKdnZ1atWqlN954Q9OmTVPDhg3Vr18/Va9eXe+++26K+mvXrp169OihKVOmqEmTJvrjjz8UHByc5DSUhwkKCtKoUaO0ePFiNWrUSGFhYRo6dKhatGghe3t7zZ07V6VKlVKfPn3UsmVLHTlyRPPnz7def69y5cp64403NHfuXDVu3FibNm1S3759TT2P/9fe/YTCt4dxHP9cNbPQEFKKhUaylM3slJSaOWYmFEmhjCn/SkwZTRp200RhSmlKQixmIyzYKKKUnVKUZKEs7KQ0dveurvr18xtzmuEO9/3azjnP+fad53Senr7ne2pqatTQ0KCxsTElEglT52aD0+nU/Py8Dg4O5PV6NTMzI7fbrcXFxS8fy5+QW98zt3JFXV2dVlZWdH19rba2Ng0NDclut2ttbU1Wq1W1tbUKhULa2NiQYRgKhUJyOBzyeDy/rToF/pWNexSfKxwOq7S0VN3d3ero6NDR0ZFmZ2clSZeXl9ra2tLZ2ZkikYisVquKiooUDoeVSCR0fHyc8fVtNpvm5uZ0dXWl5uZmxWIxTU5OZhwXnyNVrVFQUMB/adJHtZvP59Pm5qZCoZB6e3tlGIaCwaA8Ho+Wl5cVCARUUVGR9nM4Pz9f6+vrslgs6urqUjAYlN/vf/vdYrEoFovp5uZGXq9Xfr9fyWRSgUBAt7e3SiaT78bNy8tTPB5XVVWVfD6fBgYG5Ha7VVJSkvZcpBPD5XJpYWFBh4eH8nq9mpiYUH19vZaWln6J5XQ6JUlNTU2y2WzvXs/lcqm/v1/RaFSGYSgSiai9vV0Oh+NtPlPViOnUqT/Ne/P60TMkHdmIUVZWptXVVd3d3am1tVXj4+NqbGzU9PS0JL3dQ7FYTIZhKB6Pa3R0VCMjI6bmAMDn+etv3oPLWScnJ6qurv7lAx3hcFj39/e/7d0CmEFuAQAAAACATLFiMYft7u5qeHhYFxcXenh40M7Ojvb29tTS0vJfDw3fHLkFAAAAAAAyxYrFHPb09KRoNKrT01M9Pz+rsrJSPT096uzs1P7+vqamplKe39fXx2trWTA4OKjz8/OUx2xvb8tut3/RiDJHbgEAAOAjP7EOBgBkF43Fb+rl5eXta3J/UlhYqOLi4i8a0c/1+Pio19fXlMeUl5eb2p8wl5FbAAAAkP5/dTAAwDwaiwAAAAAAAABMY49FAAAAAAAAAKbRWAQAAAAAAABgGo1FAAAAAAAAAKbRWAQAAAAAAABgGo1FAAAAAAAAAKbRWAQAAAAAAABgGo1FAAAAAAAAAKb9Aw80qZyricsyAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABRUAAAHjCAYAAAC9/PhkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB+WElEQVR4nOzdd3xO9///8eeVSBozxAi1aZMQScSKVSP2rqgtSvExq7RmaZW21CqtVO1VtGqW8tGW+mipXbVHEUHs0ZiRSM7vD7+cr0uCnMigHvfbza29zni/X+e6Tq7ryjPv9zk2wzAMAQAAAAAAAEAiOaR1AQAAAAAAAACeL4SKAAAAAAAAACwhVAQAAAAAAABgCaEiAAAAAAAAAEsIFQEAAAAAAABYQqgIAAAAAAAAwBJCRQAAAAAAAACWECoCAAAAAAAAsIRQEQCAfzHDMNK6hCdKao3JcWzPw/MDAAAAPIsIFQEAL6Tg4GB5enqa/7y8vOTv76+goCDNmzdP9+7dS+sSTZMmTZKnp6elfc6fP6///Oc/Cg8PN5cFBgZq0KBByV1ego4ePaq+ffuqUqVKKlGihCpXrqw+ffro8OHDdtvt2rVL//nPfyy3v379eg0cONB8vG3bNnl6emrbtm2J2j8qKkojR47UqlWrzGWDBg1SYGCg5VqsuHnzprp16yY/Pz+VLVtWJ0+eTPY+tmzZonbt2qls2bKqVKmS3n77bZ06dcpum1u3bmn48OGqVKmS/P391aVLF504cSJeraNHj1bNmjVVsmRJNWrUSAsWLFBsbKy5TWxsrL799ls1atRI/v7+qlGjhkaOHKmbN29aqvnXX39N8Bx/mvYTW//MmTNVu3Zt+fr6qnHjxlq5cqWl2gEAAF5U6dK6AAAA0krx4sU1bNgwSVJMTIwiIiL022+/adSoUdq5c6cmTpwoB4e0//tb8+bN9dprr1na548//tDGjRvtloWEhChTpkzJWVqC/v77b7Vs2VIlS5bU0KFDlT17dp0/f17z589XixYtNG/ePJUsWVKStHjxYh0/ftxyH3PmzLF77O3trUWLFumVV15J1P4XL17U3LlzNWrUKHNZjx491L59e8u1WLFixQpt2LBBH374oV599VXly5cvWdvftWuXOnXqpBo1amjcuHG6ffu2Jk+erNatW2vVqlVyc3OTJL333nvas2eP+vfvr0yZMikkJETt27fX6tWr5erqKsMw1KdPH+3bt0+9e/dWkSJFtGXLFn3yySf6559/1LNnT0nSjBkzNHHiRHXq1EkVKlRQaGiovvzyS/3999+aNWuWbDbbE2vetm2b3nvvvQTXJbX9xNb/xRdfaObMmerdu7d8fHy0ceNG9e/fXw4ODmrYsGFSXgIAAIAXBqEiAOCFlSlTJjPcihMYGKgiRYro008/1Y8//qjGjRunTXEPyJ07t3Lnzv3U7RQvXjwZqnmy2bNnK1u2bJo+fbrSpfu/rxo1a9ZU3bp1NXnyZE2bNi1Z+0zotbSqQIECyVPMY/zzzz+SpDZt2iQqcLNq+vTpKlq0qL744gszEC9VqpSqVaum5cuXq1OnTtq9e7c2bNigadOmqWrVqpKkMmXKqEaNGlq4cKG6d++ugwcP6vfff9fEiRNVr149SVKFChUUERGhGTNmqEePHjIMQ9OnT1fLli3NULBixYrKli2b+vbtq/3798vHx+eRtd68eVPTp0/X9OnTlTlzZt2+fdtufWxsbJLbT0z9kZGRmjdvnoKDg83RshUqVNCBAwf0zTffECoCAAA8QdoPvwAA4BnTrl07ubu767vvvrNbvnjxYjVo0EAlSpRQtWrVNGnSJMXExJjrr169qvfee0+VKlWSj4+PmjRpohUrVti1ceLECfXq1UvlypVT2bJl1bVrV3Ok3pkzZ+Tp6anZs2erbt268vPz09KlS+NNfw4ODtagQYM0ZcoUVaxYUaVLl1aPHj3Mqc7Lli3T4MGDJUk1atQwpzw/OP25Tp066t27d7xjb9Kkibp3724+XrdunYKCguTj46NKlSrpk08+iRf+POzy5csyDMNumqkkZciQQe+//74Z8gwaNEjLly9XeHi4PD09tWzZMvN5GDBggCpXrixvb29VqFBBAwYM0LVr18zj3759u7Zv325OeX54+nNkZKQ++ugjValSRSVKlFDdunU1c+ZMs/0aNWpIkgYPHmxOeX54+rNhGJozZ47q1asnX19f1apVSzNnzjSvw5iY1/tBwcHBmjRpkiTJy8vLfC1u3LihUaNGqWbNmvLx8VHDhg21ZMkSu30DAwM1cuRIvfnmm/L19dWQIUMS7MPPz09vvvmm3Qhbd3d3Zc6c2ZwCvWnTJmXIkEGVK1c2t3Fzc1PZsmXtRre2bNlSFSpUsGu/SJEiun37tq5cuaKbN2+qSZMm8cK3IkWKSJJOnz79yOdCkpYsWaLvv/9eH374odq1axdv/dO2/6T6nZ2d9e233+qtt96y28bJyUl37959bNsAAABgpCIAAPE4ODioQoUKWr16te7du6d06dJp6tSpmjBhgtq1a6fBgwfr0KFDmjRpks6dO6eRI0dKkvr3768rV65o+PDhypQpk3744QcNHDhQuXPnVvny5XXhwgW1bNlS7u7u+uijj5QhQwZNmjRJb775pn788Uez/0mTJmnIkCHKlCmT/Pz8tHjx4ng1rl+/XtmyZdPQoUMVGxur8ePHKzg4WKtXr1a1atXUvXt3ff311woJCUnwWnWNGzfWtGnTdPPmTXNK9PHjx3X48GEzVFy1apX69eunRo0aqU+fPgoPD9eECRN07NgxzZ49+5Ej7apVq6aNGzeqVatWatasmcqXL68iRYrIZrOpbt265nY9evTQ1atXdfDgQYWEhKhAgQK6c+eO2rdvr2zZsmnYsGHKnDmzdu/erZCQELm4uGjEiBEaNmyY+vfvL0kaNmyYXnnlFR04cMCuhpEjR2rTpk0aOHCgcuTIod9++01jxoxR1qxZ1ahRI4WEhKhXr17q3r27ateuneBxjBkzRnPnzlXHjh1VqVIl7du3T+PGjdO9e/fUtWvXJ77eDxs2bJhmz56tJUuWaNGiRXJzc1NkZKTatGmjK1euqHfv3sqbN6/WrVunIUOG6PLly+rWrZu5/4IFC9SxY0d16dJFGTNmTLDmBwPhONu3b1dERIReffVV83XOly+fHB0d7bYrUKCAeY1Jb29vjRgxIl5b69atk5ubm9zc3OTg4KChQ4cmuI2kJ05FDwwMVMuWLZU+fXozbH1QlixZktx+Yuv38vKSdD9AvnLlipYtW6Y//vgjwX0BAABgj1ARAIAE5MiRQ9HR0frnn3/00ksvafLkyWrZsqUZclSuXFlZs2bV0KFD1bFjR7366qvavn27evbsqZo1a0qSypUrp6xZs8rZ2VnS/esARkVFafbs2cqZM6ek+yPWWrdurT179qho0aKSpHr16qlZs2aPre/OnTtatmyZ8ufPL+n+CKymTZtqxYoVat26tTmVt1ixYglet69x48aaNGmS1q1bp9dff12S9OOPPypLliwKDAyUYRgaN26cXnvtNY0bN87cr1ChQurQoYM2btyoatWqJVhbmzZtdOnSJc2cOdMMZ7Jly6bKlSurffv28vX1lXQ/xHJzc5Ozs7M5dfnQoUPKnTu3Ro8ebR5b+fLltWfPHm3fvl3S/TApLgh91JTn7du3q1KlSmrQoIEkKSAgQBkyZFD27Nnl7OysYsWKmTUkNC38+vXrmjdvntq1a2cGmBUrVtSlS5e0Y8cOde3a9Ymv98NeeeUVcxp7XN0LFy7U0aNH9d1338nf31+S9Nprr+nevXuaPHmyWrVqpaxZs0qSXn75ZfXr1y/Bth/l6tWr+uCDD5QrVy7zdb5x40aC19bMmDGjbt269ci25s6dq+3bt2vQoEGPvNbonj17NG3aNFWvXl0eHh6PrS0p082ttP+wx9W/evVqc4p1tWrVnonLHgAAADzrmP4MAEAC4qa42mw27d69W5GRkQoMDNS9e/fMf3FTZTdv3izpfnA1adIk9e7dW4sXL9bly5c1cOBAlSpVStL9m2iULFnSDBSl+9dL3LBhg3ltO0lm4PU4pUqVMkM36f71EvPnz68dO3Yk6vjy58+vUqVKac2aNeay1atXq27dunJ2dtaJEyd0/vz5eMdctmxZZcqUyTzmR3nnnXf0+++/a/z48XrjjTeUKVMmrVq1yrxRy6MUK1ZMCxcuVN68eXXy5Elt3LhRM2fO1IkTJxQVFZWoY5Puvxbff/+9unTpovnz5+v06dPq2bPnI4PQh/3111+6d+9evFGMQ4cO1YwZM8w+Hvd6J8b27duVN29eM1CM07hxY929e1d79uwxlyXmvHjQxYsX9eabb+rixYt2N+mJO7cT8qjRp/Pnz9eoUaNUr149dejQIcFtdu3apc6dOytfvnzmDXAMw7A7f+7du/fY/h/nadp/Uv2+vr6aP3++PvjgA/3555/q3LlzkusEAAB4UTBSEQCABFy4cEEuLi7KmjWreXONuJs5POzixYuSpAkTJmjKlCn673//q59++kkODg6qWLGiRowYobx58+qff/5J1N1+M2TI8MRt3N3d4y3Lnj27IiIinrhvnCZNmujjjz/WtWvXdObMGYWFhZlTueOOefjw4Ro+fHi8feOO+XFcXV3VsGFD85p4Bw8eVP/+/TV27Fg1atRI2bJlS3C/2bNna8qUKfrnn3+UI0cOlShRQunTp9eNGzcSfWxDhgxR7ty5tXLlSn388cf6+OOP5e/vr48++sic8vo4cccfd7fkhDzp9U6MiIgIu5A5To4cOSTdHzEZJzHnRZwjR46oW7duunXrlmbMmCE/Pz9zXaZMmXT58uV4+9y6dUuZM2e2WxYbG6sxY8Zo9uzZatiwoUaPHp1g8LhmzRoNGjRIhQoV0owZM8zXdvv27fHuqD1v3jwFBAQk+liepv3E1l+gQAEVKFDADM0HDhyonTt3qmzZspbqBAAAeJEQKgIA8JB79+5p27ZtKlWqlBwdHZUlSxZJ0rhx41SoUKF428cFQJkzZ1b//v3Vv39/nThxQuvXr9fkyZM1fPhwTZs2TZkzZ9bVq1fj7b9lyxbly5fP0t2A425a8qDLly9bmlJar149ffLJJ1q3bp1OnDihvHnzqnTp0pJkHvOAAQNUrly5ePu6urom2OaFCxfUrFkzvfPOO2revLnduuLFi6tv377q2bOnTp8+nWCouGrVKn322Wfq37+/goKCzFDvnXfe0b59+xJ9bM7Ozurevbu6d++us2fPasOGDZo8ebLee+89rV69+on7xx3/1atXzRuDSNLZs2d16tQplS5d+omvd2K4uroqLCws3vJLly5J0iOD18fZunWrevbsqcyZM2vBggXmtRTjFC5cWJs2bVJsbKzdNOCwsDBzCr4kRUVF6b333tPPP/+st956SwMGDEjwHJ05c6bGjh2rcuXK6auvvrILJr29vePddKZw4cKWjiep7T+p/qtXr+q3337Ta6+9puzZs5vL46bDJyY4BwAAeJEx/RkAgIcsWrRIly5dUuvWrSXdv6Ouk5OTLly4IB8fH/NfunTp9Pnnn+vMmTMKDw9X1apVtXbtWkn3r3HYpUsXVaxYUWfPnpUklSlTRnv27LELFq9cuaLOnTvb3XU3MXbt2mUXLO7fv19nzpwx73b7qGvePShLliyqXr261q9fr59++kmNGzc2Q5ciRYooe/bsOnPmjN0xu7u7a/z48Tp48GCCbebIkUPp0qXTwoULE7yD7okTJ/TSSy+pYMGCCda5a9cuZcmSRZ07dzYDxVu3bmnXrl12d5N+3PFFRkaqTp06mjVrlqT71yJs27atGjRoYL4WD9+k5GG+vr5ycnLShg0b7JbPmjVL7777ri5evPjE1zsxypYtq/DwcO3evdtu+cqVK+Xk5GRefzKxDh48qG7duilPnjxatGhRvEBRun890Fu3bun33383l129elU7d+5UpUqVzGWDBw/WL7/8osGDB2vgwIEJBorfffedxowZo3r16mnGjBnxRjpmypTJ7vzx8fFJ8HqOj/I07T+p/sjISA0cODBeKBk3tT+hGxwBAADg/zBSEQDwwrp586b++usvSfenSV67dk2bNm3SokWL1LhxY/N6etmyZVPnzp31xRdf6ObNmwoICNCFCxf0xRdfyGazycvLS5kzZ1bu3Ln1ySef6ObNmypQoID279+vjRs3qmvXrpKkDh06aMWKFercubO6du0qJycnff3118qdO7caNWpkaXrvnTt31LlzZ3Xv3l23bt3ShAkT5OHhYU41jhtp98svv6hKlSp2I9Ae1LhxY/Xu3VsxMTFq0qSJudzR0VF9+/bVhx9+KEdHR1WvXl3Xr1/X5MmTdeHCBXl7eyfYnqOjoz766CP17NlTzZo1U9u2bVW0aFHduXNHmzdv1oIFC/TOO++YIx2zZMmiy5cva+PGjSpWrJh8fX317bff6rPPPlP16tV18eJFzZw5U5cvX7YbHZklSxbt3r1bW7ZsiXejFRcXF3l7eyskJEROTk7y9PRUaGioli9frjp16kiSGU5t2bJFRYsWtZseLN2f9ty+fXvNmTNHzs7OKleunPbs2aNvv/1WAwYMUN68eZ/4eidGUFCQFi5cqJ49e6p3797Kly+ffv31Vy1dulS9evUyX8fEGjJkiO7du6e3335b586d07lz5+yOKW6Kb7ly5cxRllmzZtWkSZOUOXNmM0hft26dfvzxRwUGBqpkyZLmz0mc4sWLKyIiQqNGjVLevHnVtm3beEFz3I14kurSpUtJbj8x9b/88stq1qyZvvrqK6VLl07FixfXzp07NW3aNL3xxhtPvHs1AADAi45QEQDwwjp48KBatmwp6f4NKjJmzCgPDw999NFH8abu9unTRzlz5tTChQs1Y8YMubq6qkKFCnr33XfNgCokJESff/65vvjiC127dk158uRRr169zGsx5smTRwsXLtTYsWM1aNAgOTs7KyAgQBMmTJCrq6ulULFMmTIqX768hgwZIkkKDAzUgAEDzDsPBwQEqGLFiho/fry2bNnyyOm4VatWVebMmZU/f/5401KbN2+ujBkzasaMGVq0aJEyZMigUqVKady4cXY3iXlYtWrV9P3332vmzJmaMmWKrl69KmdnZxUvXlwTJkywu/lJUFCQNm7caIZqXbp0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p7CH1KxZU3PnztWqVavUqFGjZGuXUBEAAAAAAOAZEB0Toah719K6DCRSco3ynDBhgoKDg+Xk5JQs7SXkrbfe0ieffKL69evL0dExWdpk+jMAAAAAAAASzdPTUwsWLFCLFi3k4+OjRo0aaf369XbbbNiwQUFBQfL19VWtWrU0ceJERUVFSZKCg4O1fft2LV++3JwufPbsWfXt21cVKlSQt7e3qlSporFjxyo2NjZJNV64cEF9+/ZVmTJlFBAQoG7duunkyZPm+kGDBmnQoEEaPXq0KlSoID8/P3Xt2lUXLlwwtzl16pS6dOkif39/vfbaa5o9e7Zq1aqlZcuWadmyZRo8eLD5fGzbts3cb9q0aapSpYp8fX0VHBxs1+/D9u7dq127dqlOnTrmMsMwNHfuXNWpU0e+vr5q0KCBfvzxR0nSmTNn5OnpqdWrV+v111+Xj4+PgoKCdPz4cX311VeqWLGiypUrp+HDh9uFnpUrV9aNGzf0888/J+n5TAihIgAAAAAAACwZN26cmjRpoh9++EFVq1ZVr1699Oeff0qSfvvtN/Xp00ctWrTQjz/+qGHDhum///2v+vfvL+n+tQf9/f1Vr149LVmyRJLUvXt33bhxQ7Nnz9batWv11ltvacaMGfr1118t13b79m3z+orz58/XN998o2zZsqlFixZ2oeGPP/6of/75R/Pnz9f06dN14MABTZw4UZJ0584ddejQQbGxsfr22281YcIELVu2TKdPn5Yk1a9fX++//74kadOmTfL395ckhYeH688//9S0adM0f/58Xbp0SUOGDHlkrevXr5e3t7dy5MhhLpsxY4YmTJigzp0768cff1SrVq00YMAAbd261dxmwoQJev/997V48WJdv35drVu31smTJ/XNN9+ob9++WrhwoTZs2GBu7+TkpEqVKsULf58GoSIAAAAAAAAsCQoKUtu2bVWkSBH169dPPj4+mj9/viRpypQpatGihVq1aqUCBQqocuXKGj58uNauXaszZ84oa9ascnJykouLi9zc3BQZGakmTZro448/lpeXl/Lnz68OHTooR44cOnLkiOXaVq9erevXr2vs2LHy8vKSh4eHPv30U2XKlEnff/+9uV3mzJk1YsQIFS1aVOXKlVP9+vXNYHTNmjW6evWqxo8fLy8vL5UpU0Zjx441R/+5uLgoc+bMkqScOXPK2dlZ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IR8fHzVq1Ejr16+322bDhg0KCgqSr6+vatWqpYkTJyoqKkqSFBwcrO3bt2v58uUKDAyUdH86dN++fVWhQgV5e3urSpUqGjt2rGJjn3zNx2+++UZly5Y1Rx/GxsYqICBAXbt2Nbc5cuSIPD09de7cOQ0aNEjBwcHmup07d6p58+by9fVV48aNdfjwYXPdpEmTFBISovDwcHl6eurMmTOSpOjoaI0ePVrly5dXyZIl1aNHD12+fPmRNf7888+KiIhQxYoVzWXR0dH64osvVL16dfn5+SkoKEibN2+WdH8KdvHixfXLL7+oTp068vX1Vfv27XXu3Dl98sknKlOmjCpUqKCvv/7arp+6detq9+7d2rt37xOft6dFqAgAAAAAAABLxo0bpyZNmuiHH35Q1apV1atXL/3555+SpN9++019+vRRixYt9OOPP2rYsGH673//q/79+0u6H9T5+/urXr16WrJkiSSpe/fuunHjhmbPnq21a9fqrbfe0owZM/Trr78+sZbq1avr+vXr2r9/vyTpwIEDioiI0M6dO82gcePGjfL29laePHns9j19+rTeeustFStWTMuXL1fPnj01efJkc/1bb72lt956S7lz59amTZvM/Xfv3q3r169r4cKFmjp1qv766y+NGTPmkTWuW7dOFStWlLOzs7ns008/1XfffaeBAwdq1apVeu2119StWzedOHFC0v3RjV9//bXGjRunuXPn6vDhw2rSpImcnJy0ePFitWrVShMnTrS7zmSOHDlUokSJeCFvSiBUBAAAAAAAgCVBQUFq27atihQpon79+snHx0fz58+XJE2ZMkUtWrRQq1atVKBAAVWuXFnDhw/X2rVrdebMGWXNmlVOTk5ycXGRm5ubIiMj1aRJE3388cfy8vJS/vz51aFDB+XIkSNRN2bJly+fPDw8tGnTJknSH3/8oapVq+ru3bs6cOCAJOl///ufOSryQd9//71y5MihYcOGqWjRoqpTp466d+9urs+YMaMyZMggR0dH5cyZU46OjpKknDlz6uOPP1aRIkUUEBCg+vXrm6FmQvbs2SMPDw/z8c2bN7VkyRL16dNHdevWVYECBdS3b1917NhRN2/eNLd755135OPjI39/f5UvX17p06fXgAEDVLhwYXMk5t9//23X16uvvqq//vrric/b0+JGLQAAAAAAALAkICDA7rG/v785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MIz/Ow8PHjxoro/7+bhw4UJyHyKMp3uviNv/cT8XCb0fLFiwwNz2s88+M7y9vY3bt2+byypUqJDg/nES+tm0cgxImNXncfv27cYPP/xg18bChQsNLy8v83F0dLQRFBRkBAcHG9WrVzeDCsNIOFR85513zPUbNmwwPDw8jE2bNpnL3nnnHeOtt95KcP+ElrVr18544403zPVHjx41PDw8jEWLFpnLxowZY9SuXTvxTxQse9z3Cl5Ha570He3BQC0sLMyYPn263R/ljh07Znh4eBg7duwwDON+qFi+fHkjKirK3ObTTz81n8tvv/3WKFmypHH9+nVzfdznclyouGLFCrO9OH369DHat29vGMb/vffPnTvXXP/bb7/FC5/iji2xoWJi2mjdunW8z6gtW7aY51dsbKxRo0YNY9KkSeb6+vXrG59//rlhGPH/6D516lTj5s2b5raRkZGGh4eHGVg9fO4+uH9iv496enoa//zzj7nNnDlzDG9v70Q9J2ntcc9nYj4zqlevbvTs2dNumwdDxcS28fD30SZNmpifXePGjTOqVatmREdHm+u3bNliTJ482bh165bh4+Nj/rE7zhdffGHp9xIAKYtrKj6kYMGC5v+nT59eklSgQAFzmYuLizlE/0HFihVTw4YN1a1bN+XMmVOVKlVStWrVVKtWLUlS48aNtXTpUtWpU0evvPKKKlasqDp16ujll19+ZC1FixY1/z/uYrjR0dG6du2awsPDVbJkSbvty5Qpo4MHDyb6WI8ePaoGDRrYLWvRooUkafr06cqcObM8PDzMdTabTWXKlNGmTZsS3cfDxyHdP5bo6GhLbTyNx/Wf0HNQrlw5c90rr7zyxDYSi3Pr33dupTYr59DBgwcVFhYmf3//eO0cP35cAQEBateundauXau9e/cqLCxMR44c0eXLl83pz3Eedb4gZST1vSKO1Z+LB/vLkCGDcuTIYfabmP6e1GZSjgH3WXkey5Yta05dP3HihPkz/eDPc7p06TR27Fg1btxY2bNn1wcffPDU/cdNf06sB/ePazN//vx2bfL+krIe970isZe34HW870nf0R5UoEABBQUFad68eTp69KhOnTqlw4cPS5JiYmLstnNycjIfP/y9tVChQnY3yXj4c75Jkyb6448/NG7cOJ08eVInTpxQaGioypQpY7fdgz/fR48elaurq93rWqxY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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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P3++Vq5cqSZNmqRYu4SKAAAAAAAAT4DomCuKunspvctAIqXUKM9JkyYpJCRETk5OKdJeQl555RV98MEHatiwoRwdHVOkTaY/AwAAAAAAING8vb21ePFitW7dWr6+vmrSpInWrVtnt82vv/6q4OBg+fn5qW7dupo8ebKioqIkSSEhIdqyZYu+/fZbc7rwqVOn1L9/f1WuXFmlSpVS9erVNX78eMXGxiapxjNnzqh///4qX768AgMD1aNHDx09etRcP2TIEA0ZMkRjx45V5cqV5e/vr+7du+vMmTPmNsePH1e3bt0UEBCgF154QXPnzlXdunW1fPlyLV++XEOHDjXPR1hYmLnfjBkzVL16dfn5+SkkJMSu3wft2rVL27dvV7169cxlhmFo/vz5qlevnvz8/NSoUSOtWrVKknTy5El5e3tr9erVat68uXx9fRUcHKzDhw/rs88+U5UqVVSxYkWNHDnSLvSsVq2arl27pp9++ilJ5zMhhIoAAAAAAACwZMKECWrWrJm+//571ahRQ71799Zff/0lSfr999/Vr18/tW7dWqtWrdKIESP0v//9TwMHDpR0796DAQEBatCggZYtWyZJ6tmzp65du6a5c+dqzZo1euWVVzRr1iz98ssvlmu7efOmeX/FRYsWaeHChcqWLZtat25tFxquWrVKly9f1qJFizRz5kzt3btXkydPliTdunVLnTt3VmxsrL744gtNmjRJy5cv14kTJyRJDRs21LBhwyRJGzZsUEBAgCQpMjJSf/31l2bMmKFFixbp3Llzevvttx9a67p161SqVCnlyJHDXDZr1ixNmjRJr776qlatWqW2bdtq0KBB2rx5s7nNpEmTNGzYMH399de6evWq2rVrp6NHj2rhwoXq37+/lixZol9//dXc3snJSVWrVo0X/iYHoSIAAAAAAAAsCQ4OVocOHVS0aFENGDBAvr6+WrRokSRp2rRpat26tdq2bauCBQuqWrVqGjlypNasWaOTJ08qa9ascnJykouLizw8PHT79m01a9ZM77//vnx8fFSgQAF17txZOXLkUHh4uOXaVq9eratXr2r8+PHy8fGRl5eXPvzwQ2XOnFlfffWVuZ2bm5tGjRolT09PVaxYUQ0bNjSD0R9++EEXL17UxIkT5ePjo/Lly2v8+PHm6D8XFxe5ublJknLmzClnZ2dJ98K7CRMmyMfH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h7msePHiql69un755Rc1bNgwSX05OTmpWLFiya4ZAAAASCqbzZbeJfwnFClShJGKAJ5JsUasHGypepe6J6pfPP1SJVQ8cOCATpw4oSZNmsRbd3+gKEm5cuVS1qxZdfr06ST3Z7PZGGIMAAAA/AcwhRzAs8rB5qDFO//QmetX0qzP3Jnd1cH/hTTr736nTp3Sjh071KhRo0Rtv3z5cg0dOlTh4eHJ7nvIkCGKjIzUwoULE1wfFhamTp06ad26dcqfP79u3rypb7/9Vh06dEjU/o/y+uuvq0WLFqpbt26yjiEh8+fP14kTJzR8+PAUbzshqRIqbtu2TdmzZ5ePj4/d8kmTJmnNmjVas2aN+S+5J0+e1KVLlxhpCAAAAAAAnmlnrl9R5NWL6V1Gmhg8eLDy5cuX6FAxJb399tuKiYlJ9PZz5szR8uXLzVAxqVatWqVr166lSqAoSR06dFCjRo20bds2lS9fPlX6uF+qjG/dt2+fvL294y2vW7euIiMj9d577ykiIkJbt25Vnz59VLZsWb3wQvok4wAAAAAAAHh2uLm5mQ8VToyUuC1HTEyMJk+erK5duya7rYfJkCGDQkJCNGnSpFTr436pEiqeO3cuwTendOnSmjlzpsLDwxUcHKzevXurRIkSmjZtGvegAQAAAAAAeAp4e3tr8eLFat26tXx9fdWkSROtW7fObptff/1VwcHB8vPzU926dTV58mRFRUVJkkJCQrRlyxZ9++23CgoKknRvOnT//v1VuXJllSpVStWrV9f48eMVGxv72HoWLlyoChUqmKMPY2NjFRgYqO7du5vbhIeHy9vbW//++6+GDBmikJAQc922bdvUqlUr+fn5qWnTpjpw4IC5bsqUKQoNDVVkZKS8vb118uRJSfceGjx27FhVqlRJZcqU0euvv67z588/tMaffvpJV65cUZUqVcxl0dHR+uSTT1SrVi35+/srODhYGzdulHRvCnbJkiX1888/q169evLz81OnTp3077//6oMPPlD58uVVuXJlff7553b91K9fXzt27NCuXbsee96SK1VCxZkzZz40Fa1cubK+/PJL7dixQ2FhYRo9erTc3d1TowwAAAAAAACkggkTJqhZs2b6/vvvVaNGDfXu3Vt//fWXJOn3339Xv3791Lp1a61atUojRozQ//73Pw0cOFDSvaAuICBADRo00LJlyyRJ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u7trPTqgoxgtMjKSvLw8TCYTCxcuxGAwkJCQQHBwMF999RVxcXF4eXnZvd91dXVl586duLi4EBERQUJCAlFRUZb3XVxcyMjIoLy8nJCQEKKiomhubiYuLo6Kigqam5vbLLdnz55s374db29vIiMjWbp0KUFBQfTr18/uvrCnjBkzZrB161a+//57QkJCWLVqFX5+fmRmZlqVNX36dADef/993Nzc2qxvxowZLF68mJSUFAwGA8nJycyePRtfX19Lf9qKBe2JR7uLtvqzo32GPZxRxqBBg8jOzubOnTuEhoby6aefMnXqVNauXQtg2XYyMjIwGAxs374do9HI8uXLHeoDEek8PZ7pPrcu68yZM4wYMcJqQo7ExERqa2tbPcdFxF4aVyIiIiIiIiLSEV2p2IUdPnyY2NhYiouLqaur49ChQxw5coQPP/zw/26adGEaVyIiIiIiIiLSEV2p2IU1NDSQkpLC2bNn+eOPPxgyZAgLFixgzpw5mM1mPvvsM5uf//jjj3Xb2kuKiYnh8uXLNpc5ePAgw4YNe0UtenkaVyIiIiLSojvGuyIi4hxKKnZTTU1Nlhnl2tOnTx88PDxeUYu6p19++YVHjx7ZXObtt9926HmErzONKxEREZE3y5sW74qIiP2UVBQRERERERERERGH6JmKIiIiIiIiIiIi4hAlFUVERERERERERMQhSiqKiIiIiIiIiIiIQ5RUFBEREREREREREYcoqSgiIiIiIiIiIiIOUVJRREREREREREREHKKkooiIiIiIiIiIiDjkb2eKjLVAvxUCAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "desriptive_statistics_plot(descriptive_report,0)\n", + "desriptive_statistics_plot(descriptive_report,1)\n", + "desriptive_statistics_plot(descriptive_report,2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Drifting metrics" + ] + }, + { + "cell_type": "code", + "execution_count": 185, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'id': 'b3381df8-56b4-43f6-aa72-523427b7d723',\n", + " 'created_at': '2023-02-09T14:33:00.456240',\n", + " 'updated_at': '2023-02-09T14:33:00.456240',\n", + " 'model_id': '83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " 'timestamp': '2022-12-22T00:00:00',\n", + " 'concept_drift_summary': {'concept_drift_summary': {'column_name': 'target',\n", + " 'column_type': 'cat',\n", + " 'stattest_name': 'chi-square p_value',\n", + " 'drift_score': 0.3896307449384165,\n", + " 'drift_detected': False,\n", + " 'stattest_threshold': 0.05},\n", + " 'column_correlation': {'column_name': 'target',\n", + " 'current': {},\n", + " 'reference': {}}},\n", + " 'data_drift_summary': {'number_of_columns': 4,\n", + " 'number_of_drifted_columns': 0,\n", + " 'share_of_drifted_columns': 0.0,\n", + " 'dataset_drift': False,\n", + " 'drift_by_columns': {'petal length (cm)': {'column_name': 'petal length (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.7588302830810655,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05},\n", + " 'petal width (cm)': {'column_name': 'petal width (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.7588302830810655,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05},\n", + " 'sepal length (cm)': {'column_name': 'sepal length (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.8382225197478262,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05},\n", + " 'sepal width (cm)': {'column_name': 'sepal width (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.9540265350498883,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05}}}},\n", + " {'id': '6f74de30-9a5c-4a88-9e02-0a7d8777e242',\n", + " 'created_at': '2023-02-09T14:36:00.506190',\n", + " 'updated_at': '2023-02-09T14:36:00.506190',\n", + " 'model_id': '83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " 'timestamp': '2022-12-23T00:00:00',\n", + " 'concept_drift_summary': {'concept_drift_summary': {'column_name': 'target',\n", + " 'column_type': 'cat',\n", + " 'stattest_name': 'chi-square p_value',\n", + " 'drift_score': 0.6738389777139696,\n", + " 'drift_detected': False,\n", + " 'stattest_threshold': 0.05},\n", + " 'column_correlation': {'column_name': 'target',\n", + " 'current': {},\n", + " 'reference': {}}},\n", + " 'data_drift_summary': {'number_of_columns': 4,\n", + " 'number_of_drifted_columns': 0,\n", + " 'share_of_drifted_columns': 0.0,\n", + " 'dataset_drift': False,\n", + " 'drift_by_columns': {'petal length (cm)': {'column_name': 'petal length (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.9797880018857934,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05},\n", + " 'petal width (cm)': {'column_name': 'petal width (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.9325945507895383,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05},\n", + " 'sepal length (cm)': {'column_name': 'sepal length (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.8957682983065736,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05},\n", + " 'sepal width (cm)': {'column_name': 'sepal width (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.7450045755465691,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05}}}},\n", + " {'id': '78453a39-faa0-4aa7-bb30-8e4e1b91fef4',\n", + " 'created_at': '2023-02-09T14:39:00.608156',\n", + " 'updated_at': '2023-02-09T14:39:00.608156',\n", + " 'model_id': '83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " 'timestamp': '2022-12-24T00:00:00',\n", + " 'concept_drift_summary': {'concept_drift_summary': {'column_name': 'target',\n", + " 'column_type': 'cat',\n", + " 'stattest_name': 'chi-square p_value',\n", + " 'drift_score': 0.32175216781613775,\n", + " 'drift_detected': False,\n", + " 'stattest_threshold': 0.05},\n", + " 'column_correlation': {'column_name': 'target',\n", + " 'current': {},\n", + " 'reference': {}}},\n", + " 'data_drift_summary': {'number_of_columns': 4,\n", + " 'number_of_drifted_columns': 0,\n", + " 'share_of_drifted_columns': 0.0,\n", + " 'dataset_drift': False,\n", + " 'drift_by_columns': {'petal length (cm)': {'column_name': 'petal length (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.692577574430372,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05},\n", + " 'petal width (cm)': {'column_name': 'petal width (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.692577574430372,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05},\n", + " 'sepal length (cm)': {'column_name': 'sepal length (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.8799325977736985,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05},\n", + " 'sepal width (cm)': {'column_name': 'sepal width (cm)',\n", + " 'column_type': 'num',\n", + " 'stattest_name': 'K-S p_value',\n", + " 'drift_score': 0.1333377862549532,\n", + " 'drift_detected': False,\n", + " 'threshold': 0.05}}}}]" + ] + }, + "execution_count": 185, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#drift_report = wb.get_drifting_metrics('83539c2b-579f-4a2c-b7ba-02d31c9408d8')\n", + "#drift_report" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Performance metrics" + ] + }, + { + "cell_type": "code", + "execution_count": 186, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'id': 'b4bff1cd-76bd-47e6-8446-4ce690096dac',\n", + " 'created_at': '2023-02-09T14:33:00.473312',\n", + " 'updated_at': '2023-02-09T14:33:00.473312',\n", + " 'accuracy': 0.6,\n", + " 'precision': {'micro': 0.6,\n", + " 'macro': 0.7333333333333334,\n", + " 'weighted': 0.9199999999999999},\n", + " 'recall': {'micro': 0.6, 'macro': 0.7000000000000001, 'weighted': 0.6},\n", + " 'f1': {'micro': 0.6, 'macro': 0.5833333333333334, 'weighted': 0.675},\n", + " 'confusion_matrix': {'class0': {'true_negative': 5,\n", + " 'false_positive': 4,\n", + " 'false_negative': 0,\n", + " 'true_positive': 1},\n", + " 'class1': {'true_negative': 5,\n", + " 'false_positive': 0,\n", + " 'false_negative': 2,\n", + " 'true_positive': 3},\n", + " 'class2': {'true_negative': 6,\n", + " 'false_positive': 0,\n", + " 'false_negative': 2,\n", + " 'true_positive': 2}},\n", + " 'model_id': '83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " 'timestamp': '2022-12-22T00:00:00'},\n", + " {'id': '0ffa0e1d-8e8a-4658-8443-7405a9cd6fd5',\n", + " 'created_at': '2023-02-09T14:36:00.522083',\n", + " 'updated_at': '2023-02-09T14:36:00.522083',\n", + " 'accuracy': 0.45,\n", + " 'precision': {'micro': 0.45,\n", + " 'macro': 0.48611111111111116,\n", + " 'weighted': 0.6125},\n", + " 'recall': {'micro': 0.45, 'macro': 0.46296296296296297, 'weighted': 0.45},\n", + " 'f1': {'micro': 0.45,\n", + " 'macro': 0.4222222222222222,\n", + " 'weighted': 0.5000000000000001},\n", + " 'confusion_matrix': {'class0': {'true_negative': 11,\n", + " 'false_positive': 7,\n", + " 'false_negative': 1,\n", + " 'true_positive': 1},\n", + " 'class1': {'true_negative': 10,\n", + " 'false_positive': 1,\n", + " 'false_negative': 4,\n", + " 'true_positive': 5},\n", + " 'class2': {'true_negative': 8,\n", + " 'false_positive': 3,\n", + " 'false_negative': 6,\n", + " 'true_positive': 3}},\n", + " 'model_id': '83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " 'timestamp': '2022-12-23T00:00:00'},\n", + " {'id': 'ca19193b-5c9b-478b-93a7-48c7b08af306',\n", + " 'created_at': '2023-02-09T14:39:00.618561',\n", + " 'updated_at': '2023-02-09T14:39:00.618561',\n", + " 'accuracy': 0.43333333333333335,\n", + " 'precision': {'micro': 0.43333333333333335,\n", + " 'macro': 0.48860398860398857,\n", + " 'weighted': 0.6921652421652421},\n", + " 'recall': {'micro': 0.43333333333333335,\n", + " 'macro': 0.4447415329768271,\n", + " 'weighted': 0.43333333333333335},\n", + " 'f1': {'micro': 0.43333333333333335,\n", + " 'macro': 0.389923526765632,\n", + " 'weighted': 0.5119928025191183},\n", + " 'confusion_matrix': {'class0': {'true_negative': 16,\n", + " 'false_positive': 12,\n", + " 'false_negative': 1,\n", + " 'true_positive': 1},\n", + " 'class1': {'true_negative': 12,\n", + " 'false_positive': 1,\n", + " 'false_negative': 9,\n", + " 'true_positive': 8},\n", + " 'class2': {'true_negative': 15,\n", + " 'false_positive': 4,\n", + " 'false_negative': 7,\n", + " 'true_positive': 4}},\n", + " 'model_id': '83539c2b-579f-4a2c-b7ba-02d31c9408d8',\n", + " 'timestamp': '2022-12-24T00:00:00'}]" + ] + }, + "execution_count": 186, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#performance_report = wb.get_performance_metrics('83539c2b-579f-4a2c-b7ba-02d31c9408d8')\n", + "#performance_report" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# XAI" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [], + "source": [ + "xai1 = wb.get_xai_row(\"5e7b7c5f-ad22-434d-97f2-5fc337e18652\")\n", + "xai2 = wb.get_xai_row(\"1d530810-6305-47c1-94fb-2c220b75de22\")\n", + "xai3 = wb.get_xai_row(\"eea71062-bbcc-4bf7-afd0-a74445e29fe8\")" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'petal length (cm)': -0.3655865878574561,\n", + " 'petal width (cm)': 0.2930264801775198,\n", + " 'sepal width (cm)': -0.0613901196998769,\n", + " 'sepal length (cm)': 0.00817411441223634}" + ] + }, + "execution_count": 76, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "xai1" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'petal length (cm)': -0.36642992068168223,\n", + " 'sepal width (cm)': -0.02670817184574049,\n", + " 'petal width (cm)': 0.024446452319809565,\n", + " 'sepal length (cm)': 0.006533247074591248}" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "xai2" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'petal length (cm)': 0.2504030752277958,\n", + " 'petal width (cm)': -0.060684870258653496,\n", + " 'sepal width (cm)': -0.02022202057162284,\n", + " 'sepal length (cm)': 0.01005262567815375}" + ] + }, + "execution_count": 78, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "xai3" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#wb.delete_model('f96e93bd-80fb-4b44-834d-6ffc5a737fbc')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.10.8 (conda)", + "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.10.8" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "4de3d24b14351dd1d776fcd4034cd3e8d8527433466e9293dd76189fddd35128" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/whitebox/sdk/whitebox.py b/whitebox/sdk/whitebox.py index 8a98a5f..3e57246 100644 --- a/whitebox/sdk/whitebox.py +++ b/whitebox/sdk/whitebox.py @@ -173,18 +173,6 @@ def log_inferences( return False - def _check_processed_and_non_processed_length( - self, processed: pd.DataFrame, non_processed: pd.DataFrame - ) -> bool: - """ - Checks if the processed and non processed dataframes have the same number of rows. - """ - if len(processed) != len(non_processed): - raise ValueError( - "Processed and non processed dataframes must have the same length." - ) - return True - def create_model_monitor( self, model_id: str, @@ -231,3 +219,71 @@ def get_alerts(self, model_id: str = "") -> dict: logger.info(result.json()) return result.json() + + def get_drifting_metrics(self, model_id: str): + """ + Returns a model's drifting metric reports. If the model does not exist, returns None. + If the model exists but there are no metrics, returns an empty list. + """ + result = requests.get( + url=f"{self.host}/{self.api_version}/drifting-metrics?model_id={model_id}", + headers={"api-key": self.api_key}, + ) + if result.status_code == status.HTTP_404_NOT_FOUND: + return None + + return result.json() + + def get_descriptive_statistics(self, model_id: str): + """ + Returns a model's descriptive metric reports. If the model does not exist, returns None. + If the model exists but there are no metrics, returns an empty list. + """ + result = requests.get( + url=f"{self.host}/{self.api_version}/model-integrity-metrics?model_id={model_id}", + headers={"api-key": self.api_key}, + ) + if result.status_code == status.HTTP_404_NOT_FOUND: + return None + + return result.json() + + def get_performance_metrics(self, model_id: str): + """ + Returns a model's performance metric reports. If the model does not exist, returns None. + If the model exists but there are no metrics, returns an empty list. + """ + result = requests.get( + url=f"{self.host}/{self.api_version}/performance-metrics?model_id={model_id}", + headers={"api-key": self.api_key}, + ) + if result.status_code == status.HTTP_404_NOT_FOUND: + return None + + return result.json() + + def get_xai_row(self, inference_row_id: str): + """ + Given a specific inference row id, this endpoint produces an explainability report for this inference. + If some of the required data isn't found, returns None. + """ + result = requests.get( + url=f"{self.host}/{self.api_version}/inference-rows/{inference_row_id}/xai", + headers={"api-key": self.api_key}, + ) + if result.status_code == status.HTTP_404_NOT_FOUND: + return None + + return result.json() + + def _check_processed_and_non_processed_length( + self, processed: pd.DataFrame, non_processed: pd.DataFrame + ) -> bool: + """ + Checks if the processed and non processed dataframes have the same number of rows. + """ + if len(processed) != len(non_processed): + raise ValueError( + "Processed and non processed dataframes must have the same length." + ) + return True From dd6f59b1e10ee34ca55b07a8325694a5259ffbb1 Mon Sep 17 00:00:00 2001 From: NickNtamp Date: Wed, 15 Feb 2023 18:50:50 +0200 Subject: [PATCH 5/6] delete json --- descriptive.json | 1 - drift.json | 1 - performance.json | 1 - 3 files changed, 3 deletions(-) delete mode 100644 descriptive.json delete mode 100644 drift.json delete mode 100644 performance.json diff --git a/descriptive.json b/descriptive.json deleted file mode 100644 index 77ec763..0000000 --- a/descriptive.json +++ /dev/null @@ -1 +0,0 @@ -[{"id": "99d7c601-925b-4d58-96b3-8bca2bbdff19", "created_at": "2023-02-09T14:33:00.483453", "updated_at": "2023-02-09T14:33:00.483453", "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-22T00:00:00", "feature_metrics": {"missing_count": {"sepal length (cm)": 0, "sepal width (cm)": 0, "petal length (cm)": 0, "petal width (cm)": 0, "target": 0}, "non_missing_count": {"sepal length (cm)": 10, "sepal width (cm)": 10, "petal length (cm)": 10, "petal width (cm)": 10, "target": 10}, "mean": {"sepal length (cm)": 5.679999999999999, "sepal width (cm)": 3.1, "petal length (cm)": 3.1799999999999997, "petal width (cm)": 0.97, "target": 0.7}, "minimum": {"sepal length (cm)": 4.8, "sepal width (cm)": 2.5, "petal length (cm)": 1.4, "petal width (cm)": 0.1, "target": 0.0}, "maximum": {"sepal length (cm)": 6.5, "sepal width (cm)": 3.9, "petal length (cm)": 5.6, "petal width (cm)": 2.1, "target": 2.0}, "sum": {"sepal length (cm)": 56.79999999999999, "sepal width (cm)": 31.0, "petal length (cm)": 31.799999999999997, "petal width (cm)": 9.7, "target": 7.0}, "standard_deviation": {"sepal length (cm)": 0.6779052703405954, "sepal width (cm)": 0.408248290463863, "petal length (cm)": 1.8262286579481526, "petal width (cm)": 0.7557924465236618, "target": 0.8232726023485646}, "variance": {"sepal length (cm)": 0.4595555555555558, "sepal width (cm)": 0.16666666666666666, "petal length (cm)": 3.335111111111111, "petal width (cm)": 0.5712222222222223, "target": 0.6777777777777778}}}, {"id": "4a7ca49b-ece6-45ac-a9cc-9560ab72cb73", "created_at": "2023-02-09T14:36:00.531345", "updated_at": "2023-02-09T14:36:00.531345", "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-23T00:00:00", "feature_metrics": {"missing_count": {"sepal length (cm)": 0, "sepal width (cm)": 0, "petal length (cm)": 0, "petal width (cm)": 0, "target": 0}, "non_missing_count": {"sepal length (cm)": 20, "sepal width (cm)": 20, "petal length (cm)": 20, "petal width (cm)": 20, "target": 20}, "mean": {"sepal length (cm)": 5.819999999999999, "sepal width (cm)": 3.1050000000000004, "petal length (cm)": 3.560000000000001, "petal width (cm)": 1.1300000000000001, "target": 0.9}, "minimum": {"sepal length (cm)": 4.6, "sepal width (cm)": 2.5, "petal length (cm)": 1.4, "petal width (cm)": 0.1, "target": 0.0}, "maximum": {"sepal length (cm)": 7.2, "sepal width (cm)": 3.9, "petal length (cm)": 6.0, "petal width (cm)": 2.1, "target": 2.0}, "sum": {"sepal length (cm)": 116.39999999999999, "sepal width (cm)": 62.10000000000001, "petal length (cm)": 71.20000000000002, "petal width (cm)": 22.6, "target": 18.0}, "standard_deviation": {"sepal length (cm)": 0.7770389138802578, "sepal width (cm)": 0.3235900590497018, "petal length (cm)": 1.7922053453775881, "petal width (cm)": 0.7664683191173177, "target": 0.8522416262267904}, "variance": {"sepal length (cm)": 0.6037894736842108, "sepal width (cm)": 0.10471052631578948, "petal length (cm)": 3.2119999999999997, "petal width (cm)": 0.5874736842105264, "target": 0.7263157894736844}}}, {"id": "5a6f6f9f-98c7-4c7b-94ab-8fe6c60a3906", "created_at": "2023-02-09T14:39:00.626188", "updated_at": "2023-02-09T14:39:00.626188", "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-24T00:00:00", "feature_metrics": {"missing_count": {"sepal length (cm)": 0, "sepal width (cm)": 0, "petal length (cm)": 0, "petal width (cm)": 0, "target": 0}, "non_missing_count": {"sepal length (cm)": 30, "sepal width (cm)": 30, "petal length (cm)": 30, "petal width (cm)": 30, "target": 30}, "mean": {"sepal length (cm)": 5.876666666666666, "sepal width (cm)": 3.2199999999999998, "petal length (cm)": 3.4433333333333334, "petal width (cm)": 1.0966666666666667, "target": 0.8333333333333334}, "minimum": {"sepal length (cm)": 4.6, "sepal width (cm)": 2.5, "petal length (cm)": 1.2, "petal width (cm)": 0.1, "target": 0.0}, "maximum": {"sepal length (cm)": 7.2, "sepal width (cm)": 4.0, "petal length (cm)": 6.1, "petal width (cm)": 2.5, "target": 2.0}, "sum": {"sepal length (cm)": 176.29999999999998, "sepal width (cm)": 96.6, "petal length (cm)": 103.3, "petal width (cm)": 32.9, "target": 25.0}, "standard_deviation": {"sepal length (cm)": 0.8041630188708883, "sepal width (cm)": 0.37268827688047546, "petal length (cm)": 1.8108263180169955, "petal width (cm)": 0.7967534699981061, "target": 0.8339078479367936}, "variance": {"sepal length (cm)": 0.6466781609195406, "sepal width (cm)": 0.13889655172413795, "petal length (cm)": 3.2790919540229884, "petal width (cm)": 0.634816091954023, "target": 0.6954022988505746}}}] \ No newline at end of file diff --git a/drift.json b/drift.json deleted file mode 100644 index 07e9c5c..0000000 --- a/drift.json +++ /dev/null @@ -1 +0,0 @@ -[{"id": "b3381df8-56b4-43f6-aa72-523427b7d723", "created_at": "2023-02-09T14:33:00.456240", "updated_at": "2023-02-09T14:33:00.456240", "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-22T00:00:00", "concept_drift_summary": {"concept_drift_summary": {"column_name": "target", "column_type": "cat", "stattest_name": "chi-square p_value", "drift_score": 0.3896307449384165, "drift_detected": false, "stattest_threshold": 0.05}, "column_correlation": {"column_name": "target", "current": {}, "reference": {}}}, "data_drift_summary": {"number_of_columns": 4, "number_of_drifted_columns": 0, "share_of_drifted_columns": 0.0, "dataset_drift": false, "drift_by_columns": {"petal length (cm)": {"column_name": "petal length (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.7588302830810655, "drift_detected": false, "threshold": 0.05}, "petal width (cm)": {"column_name": "petal width (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.7588302830810655, "drift_detected": false, "threshold": 0.05}, "sepal length (cm)": {"column_name": "sepal length (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.8382225197478262, "drift_detected": false, "threshold": 0.05}, "sepal width (cm)": {"column_name": "sepal width (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.9540265350498883, "drift_detected": false, "threshold": 0.05}}}},{"id": "6f74de30-9a5c-4a88-9e02-0a7d8777e242", "created_at": "2023-02-09T14:36:00.506190", "updated_at": "2023-02-09T14:36:00.506190", "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-23T00:00:00", "concept_drift_summary": {"concept_drift_summary": {"column_name": "target", "column_type": "cat", "stattest_name": "chi-square p_value", "drift_score": 0.6738389777139696, "drift_detected": false, "stattest_threshold": 0.05}, "column_correlation": {"column_name": "target", "current": {}, "reference": {}}}, "data_drift_summary": {"number_of_columns": 4, "number_of_drifted_columns": 0, "share_of_drifted_columns": 0.0, "dataset_drift": false, "drift_by_columns": {"petal length (cm)": {"column_name": "petal length (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.9797880018857934, "drift_detected": false, "threshold": 0.05}, "petal width (cm)": {"column_name": "petal width (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.9325945507895383, "drift_detected": false, "threshold": 0.05}, "sepal length (cm)": {"column_name": "sepal length (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.8957682983065736, "drift_detected": false, "threshold": 0.05}, "sepal width (cm)": {"column_name": "sepal width (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.7450045755465691, "drift_detected": false, "threshold": 0.05}}}}, {"id": "78453a39-faa0-4aa7-bb30-8e4e1b91fef4", "created_at": "2023-02-09T14:39:00.608156", "updated_at": "2023-02-09T14:39:00.608156", "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-24T00:00:00", "concept_drift_summary": {"concept_drift_summary": {"column_name": "target", "column_type": "cat", "stattest_name": "chi-square p_value", "drift_score": 0.32175216781613775, "drift_detected": false, "stattest_threshold": 0.05}, "column_correlation": {"column_name": "target", "current": {}, "reference": {}}}, "data_drift_summary": {"number_of_columns": 4, "number_of_drifted_columns": 0, "share_of_drifted_columns": 0.0, "dataset_drift": false, "drift_by_columns": {"petal length (cm)": {"column_name": "petal length (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.692577574430372, "drift_detected": false, "threshold": 0.05}, "petal width (cm)": {"column_name": "petal width (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.692577574430372, "drift_detected": false, "threshold": 0.05}, "sepal length (cm)": {"column_name": "sepal length (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.8799325977736985, "drift_detected": false, "threshold": 0.05}, "sepal width (cm)": {"column_name": "sepal width (cm)", "column_type": "num", "stattest_name": "K-S p_value", "drift_score": 0.1333377862549532, "drift_detected": false, "threshold": 0.05}}}}] \ No newline at end of file diff --git a/performance.json b/performance.json deleted file mode 100644 index b238b2d..0000000 --- a/performance.json +++ /dev/null @@ -1 +0,0 @@ -[{"id": "b4bff1cd-76bd-47e6-8446-4ce690096dac", "created_at": "2023-02-09T14:33:00.473312", "updated_at": "2023-02-09T14:33:00.473312", "accuracy": 0.6, "precision": {"micro": 0.6, "macro": 0.7333333333333334, "weighted": 0.9199999999999999}, "recall": {"micro": 0.6, "macro": 0.7000000000000001, "weighted": 0.6}, "f1": {"micro": 0.6, "macro": 0.5833333333333334, "weighted": 0.675}, "confusion_matrix": {"class0": {"true_negative": 5, "false_positive": 4, "false_negative": 0, "true_positive": 1}, "class1": {"true_negative": 5, "false_positive": 0, "false_negative": 2, "true_positive": 3}, "class2": {"true_negative": 6, "false_positive": 0, "false_negative": 2, "true_positive": 2}}, "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-22T00:00:00"}, {"id": "0ffa0e1d-8e8a-4658-8443-7405a9cd6fd5", "created_at": "2023-02-09T14:36:00.522083", "updated_at": "2023-02-09T14:36:00.522083", "accuracy": 0.45, "precision": {"micro": 0.45, "macro": 0.48611111111111116, "weighted": 0.6125}, "recall": {"micro": 0.45, "macro": 0.46296296296296297, "weighted": 0.45}, "f1": {"micro": 0.45, "macro": 0.4222222222222222, "weighted": 0.5000000000000001}, "confusion_matrix": {"class0": {"true_negative": 11, "false_positive": 7, "false_negative": 1, "true_positive": 1}, "class1": {"true_negative": 10, "false_positive": 1, "false_negative": 4, "true_positive": 5}, "class2": {"true_negative": 8, "false_positive": 3, "false_negative": 6, "true_positive": 3}}, "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-23T00:00:00"} , {"id": "ca19193b-5c9b-478b-93a7-48c7b08af306", "created_at": "2023-02-09T14:39:00.618561", "updated_at": "2023-02-09T14:39:00.618561", "accuracy": 0.43333333333333335, "precision": {"micro": 0.43333333333333335, "macro": 0.48860398860398857, "weighted": 0.6921652421652421}, "recall": {"micro": 0.43333333333333335, "macro": 0.4447415329768271, "weighted": 0.43333333333333335}, "f1": {"micro": 0.43333333333333335, "macro": 0.389923526765632, "weighted": 0.5119928025191183}, "confusion_matrix": {"class0": {"true_negative": 16, "false_positive": 12, "false_negative": 1, "true_positive": 1}, "class1": {"true_negative": 12, "false_positive": 1, "false_negative": 9, "true_positive": 8}, "class2": {"true_negative": 15, "false_positive": 4, "false_negative": 7, "true_positive": 4}}, "model_id": "83539c2b-579f-4a2c-b7ba-02d31c9408d8", "timestamp": "2022-12-24T00:00:00"}] \ No newline at end of file From 1d196e92483d4566c54f014b964030256d12e045 Mon Sep 17 00:00:00 2001 From: NickNtamp Date: Wed, 15 Feb 2023 18:58:00 +0200 Subject: [PATCH 6/6] Reset times on scheduler --- .env.dev | 2 +- whitebox/cron_tasks/tasks.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.env.dev b/.env.dev index f9b8989..6c21b0f 100644 --- a/.env.dev +++ b/.env.dev @@ -5,6 +5,6 @@ APP_NAME_CRON=Whitebox | Development DATABASE_URL=postgresql://postgres:postgres@localhost:5432/postgres VERSION=0.1.0 -METRICS_CRON=*/3 * * * * +METRICS_CRON=*/15 * * * * MODEL_PATH=models \ No newline at end of file diff --git a/whitebox/cron_tasks/tasks.py b/whitebox/cron_tasks/tasks.py index 34bec27..521f9d0 100644 --- a/whitebox/cron_tasks/tasks.py +++ b/whitebox/cron_tasks/tasks.py @@ -5,7 +5,7 @@ task_manager = get_task_manager() -metrics_cron = os.getenv("METRICS_CRON") or "*/3 * * * *" +metrics_cron = os.getenv("METRICS_CRON") or "*/15 * * * *" task_manager.register( name="metrics_cron",