Skip to content
Snippets Groups Projects
02-DNN-Regression Premium.ipynb 132 KiB
Newer Older
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Deep Neural Network (DNN) - BHPD dataset\n",
    "========================================\n",
    "---\n",
    "Introduction au Deep Learning  (IDLE) - S. Arias, E. Maldonado, JL. Parouty - CNRS/SARI/DEVLOG - 2020  \n",
    "\n",
    "## A very simple example of **regression** (Premium edition):\n",
    "\n",
    "Objective is to predicts **housing prices** from a set of house features. \n",
    "\n",
    "The **[Boston Housing Dataset](https://www.cs.toronto.edu/~delve/data/boston/bostonDetail.html)** consists of price of houses in various places in Boston.  \n",
    "Alongside with price, the dataset also provide information such as Crime, areas of non-retail business in the town,  \n",
    "age of people who own the house and many other attributes...\n",
    "\n",
    "What we're going to do:\n",
    "\n",
    " - (Retrieve data)\n",
    " - (Preparing the data)\n",
    " - (Build a model)\n",
    " - Train and save the model\n",
    " - Restore saved model\n",
    " - Evaluate the model\n",
    " - Make some predictions\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1/ Init python stuff"
   ]
  },
  {
   "cell_type": "code",
Jean-Luc Parouty's avatar
Jean-Luc Parouty committed
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "IDLE 2020 - Practical Work Module\n",
      "  Version            : 0.2\n",
      "  Run time           : Monday 27 January 2020, 15:48:21\n",
      "  Matplotlib style   : fidle/talk.mplstyle\n",
      "  TensorFlow version : 2.0.0\n",
      "  Keras version      : 2.2.4-tf\n"
     ]
    }
   ],
   "source": [
    "import tensorflow as tf\n",
    "from tensorflow import keras\n",
    "\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "import os\n",
    "\n",
    "from IPython.display import display, Markdown\n",
    "import fidle.pwk as ooo\n",
    "from importlib import reload\n",
    "\n",
    "ooo.init()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2/ Retrieve data\n",
    "\n",
    "**From Keras :**\n",
    "Boston housing is a famous historic dataset, so we can get it directly from [Keras datasets](https://www.tensorflow.org/api_docs/python/tf/keras/datasets)  "
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {},
   "source": [
    "(x_train, y_train), (x_test, y_test) = keras.datasets.boston_housing.load_data(test_split=0.2, seed=113)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**From a csv file :**  \n",
    "More fun !"
   ]
  },
  {
   "cell_type": "code",
Jean-Luc Parouty's avatar
Jean-Luc Parouty committed
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style  type=\"text/css\" >\n",
       "</style><table id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afb\" ><thead>    <tr>        <th class=\"blank level0\" ></th>        <th class=\"col_heading level0 col0\" >crim</th>        <th class=\"col_heading level0 col1\" >zn</th>        <th class=\"col_heading level0 col2\" >indus</th>        <th class=\"col_heading level0 col3\" >chas</th>        <th class=\"col_heading level0 col4\" >nox</th>        <th class=\"col_heading level0 col5\" >rm</th>        <th class=\"col_heading level0 col6\" >age</th>        <th class=\"col_heading level0 col7\" >dis</th>        <th class=\"col_heading level0 col8\" >rad</th>        <th class=\"col_heading level0 col9\" >tax</th>        <th class=\"col_heading level0 col10\" >ptratio</th>        <th class=\"col_heading level0 col11\" >b</th>        <th class=\"col_heading level0 col12\" >lstat</th>        <th class=\"col_heading level0 col13\" >medv</th>    </tr></thead><tbody>\n",
       "                <tr>\n",
       "                        <th id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afblevel0_row0\" class=\"row_heading level0 row0\" >0</th>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow0_col0\" class=\"data row0 col0\" >0.01</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow0_col1\" class=\"data row0 col1\" >18.00</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow0_col2\" class=\"data row0 col2\" >2.31</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow0_col3\" class=\"data row0 col3\" >0.00</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow0_col4\" class=\"data row0 col4\" >0.54</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow0_col5\" class=\"data row0 col5\" >6.58</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow0_col6\" class=\"data row0 col6\" >65.20</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow0_col7\" class=\"data row0 col7\" >4.09</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow0_col8\" class=\"data row0 col8\" >1.00</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow0_col9\" class=\"data row0 col9\" >296.00</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow0_col10\" class=\"data row0 col10\" >15.30</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow0_col11\" class=\"data row0 col11\" >396.90</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow0_col12\" class=\"data row0 col12\" >4.98</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow0_col13\" class=\"data row0 col13\" >24.00</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afblevel0_row1\" class=\"row_heading level0 row1\" >1</th>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow1_col0\" class=\"data row1 col0\" >0.03</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow1_col1\" class=\"data row1 col1\" >0.00</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow1_col2\" class=\"data row1 col2\" >7.07</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow1_col3\" class=\"data row1 col3\" >0.00</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow1_col4\" class=\"data row1 col4\" >0.47</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow1_col5\" class=\"data row1 col5\" >6.42</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow1_col6\" class=\"data row1 col6\" >78.90</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow1_col7\" class=\"data row1 col7\" >4.97</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow1_col8\" class=\"data row1 col8\" >2.00</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow1_col9\" class=\"data row1 col9\" >242.00</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow1_col10\" class=\"data row1 col10\" >17.80</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow1_col11\" class=\"data row1 col11\" >396.90</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow1_col12\" class=\"data row1 col12\" >9.14</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow1_col13\" class=\"data row1 col13\" >21.60</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afblevel0_row2\" class=\"row_heading level0 row2\" >2</th>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow2_col0\" class=\"data row2 col0\" >0.03</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow2_col1\" class=\"data row2 col1\" >0.00</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow2_col2\" class=\"data row2 col2\" >7.07</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow2_col3\" class=\"data row2 col3\" >0.00</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow2_col4\" class=\"data row2 col4\" >0.47</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow2_col5\" class=\"data row2 col5\" >7.18</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow2_col6\" class=\"data row2 col6\" >61.10</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow2_col7\" class=\"data row2 col7\" >4.97</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow2_col8\" class=\"data row2 col8\" >2.00</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow2_col9\" class=\"data row2 col9\" >242.00</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow2_col10\" class=\"data row2 col10\" >17.80</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow2_col11\" class=\"data row2 col11\" >392.83</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow2_col12\" class=\"data row2 col12\" >4.03</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow2_col13\" class=\"data row2 col13\" >34.70</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afblevel0_row3\" class=\"row_heading level0 row3\" >3</th>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow3_col0\" class=\"data row3 col0\" >0.03</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow3_col1\" class=\"data row3 col1\" >0.00</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow3_col2\" class=\"data row3 col2\" >2.18</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow3_col3\" class=\"data row3 col3\" >0.00</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow3_col4\" class=\"data row3 col4\" >0.46</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow3_col5\" class=\"data row3 col5\" >7.00</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow3_col6\" class=\"data row3 col6\" >45.80</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow3_col7\" class=\"data row3 col7\" >6.06</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow3_col8\" class=\"data row3 col8\" >3.00</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow3_col9\" class=\"data row3 col9\" >222.00</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow3_col10\" class=\"data row3 col10\" >18.70</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow3_col11\" class=\"data row3 col11\" >394.63</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow3_col12\" class=\"data row3 col12\" >2.94</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow3_col13\" class=\"data row3 col13\" >33.40</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afblevel0_row4\" class=\"row_heading level0 row4\" >4</th>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow4_col0\" class=\"data row4 col0\" >0.07</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow4_col1\" class=\"data row4 col1\" >0.00</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow4_col2\" class=\"data row4 col2\" >2.18</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow4_col3\" class=\"data row4 col3\" >0.00</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow4_col4\" class=\"data row4 col4\" >0.46</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow4_col5\" class=\"data row4 col5\" >7.15</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow4_col6\" class=\"data row4 col6\" >54.20</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow4_col7\" class=\"data row4 col7\" >6.06</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow4_col8\" class=\"data row4 col8\" >3.00</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow4_col9\" class=\"data row4 col9\" >222.00</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow4_col10\" class=\"data row4 col10\" >18.70</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow4_col11\" class=\"data row4 col11\" >396.90</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow4_col12\" class=\"data row4 col12\" >5.33</td>\n",
       "                        <td id=\"T_13ff0f06_4114_11ea_af1b_698ca2e84afbrow4_col13\" class=\"data row4 col13\" >36.20</td>\n",
       "            </tr>\n",
       "    </tbody></table>"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7f5fda4af110>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Données manquantes :  0   Shape is :  (506, 14)\n"
     ]
    }
   ],
   "source": [
    "data = pd.read_csv('./data/BostonHousing.csv', header=0)\n",
    "\n",
    "display(data.head(5).style.format(\"{0:.2f}\"))\n",
    "print('Données manquantes : ',data.isna().sum().sum(), '  Shape is : ', data.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3/ Preparing the data\n",
    "### 3.1/ Split data\n",
    "We will use 80% of the data for training and 20% for validation.  \n",
    "x will be input data and y the expected output"
   ]
  },
  {
   "cell_type": "code",
Jean-Luc Parouty's avatar
Jean-Luc Parouty committed
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Original data shape was :  (506, 14)\n",
      "x_train :  (354, 13) y_train :  (354,)\n",
      "x_test  :  (152, 13) y_test  :  (152,)\n"
     ]
    }
   ],
   "source": [
    "# ---- Split => train, test\n",
    "#\n",
    "data_train = data.sample(frac=0.7, axis=0)\n",
    "data_test  = data.drop(data_train.index)\n",
    "\n",
    "# ---- Split => x,y (medv is price)\n",
    "#\n",
    "x_train = data_train.drop('medv',  axis=1)\n",
    "y_train = data_train['medv']\n",
    "x_test  = data_test.drop('medv',   axis=1)\n",
    "y_test  = data_test['medv']\n",
    "\n",
    "print('Original data shape was : ',data.shape)\n",
    "print('x_train : ',x_train.shape, 'y_train : ',y_train.shape)\n",
    "print('x_test  : ',x_test.shape,  'y_test  : ',y_test.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.2/ Data normalization\n",
    "**Note :** \n",
    " - All input data must be normalized, train and test.  \n",
    " - To do this we will subtract the mean and divide by the standard deviation.  \n",
    " - But test data should not be used in any way, even for normalization.  \n",
    " - The mean and the standard deviation will therefore only be calculated with the train data."
   ]
  },
  {
   "cell_type": "code",
Jean-Luc Parouty's avatar
Jean-Luc Parouty committed
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style  type=\"text/css\" >\n",
       "</style><table id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afb\" ><caption>Before normalization :</caption><thead>    <tr>        <th class=\"blank level0\" ></th>        <th class=\"col_heading level0 col0\" >crim</th>        <th class=\"col_heading level0 col1\" >zn</th>        <th class=\"col_heading level0 col2\" >indus</th>        <th class=\"col_heading level0 col3\" >chas</th>        <th class=\"col_heading level0 col4\" >nox</th>        <th class=\"col_heading level0 col5\" >rm</th>        <th class=\"col_heading level0 col6\" >age</th>        <th class=\"col_heading level0 col7\" >dis</th>        <th class=\"col_heading level0 col8\" >rad</th>        <th class=\"col_heading level0 col9\" >tax</th>        <th class=\"col_heading level0 col10\" >ptratio</th>        <th class=\"col_heading level0 col11\" >b</th>        <th class=\"col_heading level0 col12\" >lstat</th>    </tr></thead><tbody>\n",
       "                <tr>\n",
       "                        <th id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afblevel0_row0\" class=\"row_heading level0 row0\" >count</th>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow0_col0\" class=\"data row0 col0\" >354.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow0_col1\" class=\"data row0 col1\" >354.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow0_col2\" class=\"data row0 col2\" >354.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow0_col3\" class=\"data row0 col3\" >354.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow0_col4\" class=\"data row0 col4\" >354.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow0_col5\" class=\"data row0 col5\" >354.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow0_col6\" class=\"data row0 col6\" >354.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow0_col7\" class=\"data row0 col7\" >354.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow0_col8\" class=\"data row0 col8\" >354.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow0_col9\" class=\"data row0 col9\" >354.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow0_col10\" class=\"data row0 col10\" >354.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow0_col11\" class=\"data row0 col11\" >354.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow0_col12\" class=\"data row0 col12\" >354.00</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afblevel0_row1\" class=\"row_heading level0 row1\" >mean</th>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow1_col0\" class=\"data row1 col0\" >3.50</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow1_col1\" class=\"data row1 col1\" >11.26</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow1_col2\" class=\"data row1 col2\" >10.98</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow1_col3\" class=\"data row1 col3\" >0.05</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow1_col4\" class=\"data row1 col4\" >0.55</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow1_col5\" class=\"data row1 col5\" >6.30</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow1_col6\" class=\"data row1 col6\" >68.18</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow1_col7\" class=\"data row1 col7\" >3.83</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow1_col8\" class=\"data row1 col8\" >9.29</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow1_col9\" class=\"data row1 col9\" >403.31</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow1_col10\" class=\"data row1 col10\" >18.54</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow1_col11\" class=\"data row1 col11\" >359.90</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow1_col12\" class=\"data row1 col12\" >12.38</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afblevel0_row2\" class=\"row_heading level0 row2\" >std</th>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow2_col0\" class=\"data row2 col0\" >8.57</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow2_col1\" class=\"data row2 col1\" >23.21</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow2_col2\" class=\"data row2 col2\" >6.82</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow2_col3\" class=\"data row2 col3\" >0.22</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow2_col4\" class=\"data row2 col4\" >0.11</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow2_col5\" class=\"data row2 col5\" >0.66</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow2_col6\" class=\"data row2 col6\" >28.04</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow2_col7\" class=\"data row2 col7\" >2.10</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow2_col8\" class=\"data row2 col8\" >8.59</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow2_col9\" class=\"data row2 col9\" >167.27</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow2_col10\" class=\"data row2 col10\" >2.13</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow2_col11\" class=\"data row2 col11\" >88.19</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow2_col12\" class=\"data row2 col12\" >6.61</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afblevel0_row3\" class=\"row_heading level0 row3\" >min</th>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow3_col0\" class=\"data row3 col0\" >0.01</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow3_col1\" class=\"data row3 col1\" >0.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow3_col2\" class=\"data row3 col2\" >0.74</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow3_col3\" class=\"data row3 col3\" >0.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow3_col4\" class=\"data row3 col4\" >0.39</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow3_col5\" class=\"data row3 col5\" >3.86</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow3_col6\" class=\"data row3 col6\" >2.90</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow3_col7\" class=\"data row3 col7\" >1.13</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow3_col8\" class=\"data row3 col8\" >1.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow3_col9\" class=\"data row3 col9\" >187.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow3_col10\" class=\"data row3 col10\" >12.60</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow3_col11\" class=\"data row3 col11\" >2.52</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow3_col12\" class=\"data row3 col12\" >1.92</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afblevel0_row4\" class=\"row_heading level0 row4\" >25%</th>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow4_col0\" class=\"data row4 col0\" >0.08</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow4_col1\" class=\"data row4 col1\" >0.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow4_col2\" class=\"data row4 col2\" >5.19</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow4_col3\" class=\"data row4 col3\" >0.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow4_col4\" class=\"data row4 col4\" >0.45</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow4_col5\" class=\"data row4 col5\" >5.89</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow4_col6\" class=\"data row4 col6\" >45.18</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow4_col7\" class=\"data row4 col7\" >2.12</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow4_col8\" class=\"data row4 col8\" >4.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow4_col9\" class=\"data row4 col9\" >279.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow4_col10\" class=\"data row4 col10\" >17.40</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow4_col11\" class=\"data row4 col11\" >377.59</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow4_col12\" class=\"data row4 col12\" >7.19</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afblevel0_row5\" class=\"row_heading level0 row5\" >50%</th>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow5_col0\" class=\"data row5 col0\" >0.23</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow5_col1\" class=\"data row5 col1\" >0.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow5_col2\" class=\"data row5 col2\" >8.56</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow5_col3\" class=\"data row5 col3\" >0.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow5_col4\" class=\"data row5 col4\" >0.54</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow5_col5\" class=\"data row5 col5\" >6.22</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow5_col6\" class=\"data row5 col6\" >76.50</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow5_col7\" class=\"data row5 col7\" >3.21</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow5_col8\" class=\"data row5 col8\" >5.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow5_col9\" class=\"data row5 col9\" >329.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow5_col10\" class=\"data row5 col10\" >19.10</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow5_col11\" class=\"data row5 col11\" >391.81</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow5_col12\" class=\"data row5 col12\" >11.17</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afblevel0_row6\" class=\"row_heading level0 row6\" >75%</th>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow6_col0\" class=\"data row6 col0\" >2.89</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow6_col1\" class=\"data row6 col1\" >12.50</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow6_col2\" class=\"data row6 col2\" >18.10</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow6_col3\" class=\"data row6 col3\" >0.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow6_col4\" class=\"data row6 col4\" >0.62</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow6_col5\" class=\"data row6 col5\" >6.61</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow6_col6\" class=\"data row6 col6\" >93.57</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow6_col7\" class=\"data row6 col7\" >5.12</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow6_col8\" class=\"data row6 col8\" >8.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow6_col9\" class=\"data row6 col9\" >666.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow6_col10\" class=\"data row6 col10\" >20.20</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow6_col11\" class=\"data row6 col11\" >396.21</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow6_col12\" class=\"data row6 col12\" >16.57</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afblevel0_row7\" class=\"row_heading level0 row7\" >max</th>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow7_col0\" class=\"data row7 col0\" >88.98</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow7_col1\" class=\"data row7 col1\" >95.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow7_col2\" class=\"data row7 col2\" >27.74</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow7_col3\" class=\"data row7 col3\" >1.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow7_col4\" class=\"data row7 col4\" >0.87</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow7_col5\" class=\"data row7 col5\" >8.72</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow7_col6\" class=\"data row7 col6\" >100.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow7_col7\" class=\"data row7 col7\" >12.13</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow7_col8\" class=\"data row7 col8\" >24.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow7_col9\" class=\"data row7 col9\" >711.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow7_col10\" class=\"data row7 col10\" >22.00</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow7_col11\" class=\"data row7 col11\" >396.90</td>\n",
       "                        <td id=\"T_1878bc44_4114_11ea_af1b_698ca2e84afbrow7_col12\" class=\"data row7 col12\" >36.98</td>\n",
       "            </tr>\n",
       "    </tbody></table>"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7f5fd31583d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<style  type=\"text/css\" >\n",
       "</style><table id=\"T_188108ae_4114_11ea_af1b_698ca2e84afb\" ><caption>After normalization :</caption><thead>    <tr>        <th class=\"blank level0\" ></th>        <th class=\"col_heading level0 col0\" >crim</th>        <th class=\"col_heading level0 col1\" >zn</th>        <th class=\"col_heading level0 col2\" >indus</th>        <th class=\"col_heading level0 col3\" >chas</th>        <th class=\"col_heading level0 col4\" >nox</th>        <th class=\"col_heading level0 col5\" >rm</th>        <th class=\"col_heading level0 col6\" >age</th>        <th class=\"col_heading level0 col7\" >dis</th>        <th class=\"col_heading level0 col8\" >rad</th>        <th class=\"col_heading level0 col9\" >tax</th>        <th class=\"col_heading level0 col10\" >ptratio</th>        <th class=\"col_heading level0 col11\" >b</th>        <th class=\"col_heading level0 col12\" >lstat</th>    </tr></thead><tbody>\n",
       "                <tr>\n",
       "                        <th id=\"T_188108ae_4114_11ea_af1b_698ca2e84afblevel0_row0\" class=\"row_heading level0 row0\" >count</th>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow0_col0\" class=\"data row0 col0\" >354.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow0_col1\" class=\"data row0 col1\" >354.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow0_col2\" class=\"data row0 col2\" >354.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow0_col3\" class=\"data row0 col3\" >354.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow0_col4\" class=\"data row0 col4\" >354.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow0_col5\" class=\"data row0 col5\" >354.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow0_col6\" class=\"data row0 col6\" >354.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow0_col7\" class=\"data row0 col7\" >354.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow0_col8\" class=\"data row0 col8\" >354.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow0_col9\" class=\"data row0 col9\" >354.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow0_col10\" class=\"data row0 col10\" >354.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow0_col11\" class=\"data row0 col11\" >354.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow0_col12\" class=\"data row0 col12\" >354.00</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_188108ae_4114_11ea_af1b_698ca2e84afblevel0_row1\" class=\"row_heading level0 row1\" >mean</th>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow1_col0\" class=\"data row1 col0\" >-0.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow1_col1\" class=\"data row1 col1\" >-0.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow1_col2\" class=\"data row1 col2\" >0.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow1_col3\" class=\"data row1 col3\" >0.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow1_col4\" class=\"data row1 col4\" >-0.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow1_col5\" class=\"data row1 col5\" >0.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow1_col6\" class=\"data row1 col6\" >-0.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow1_col7\" class=\"data row1 col7\" >-0.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow1_col8\" class=\"data row1 col8\" >-0.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow1_col9\" class=\"data row1 col9\" >0.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow1_col10\" class=\"data row1 col10\" >0.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow1_col11\" class=\"data row1 col11\" >0.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow1_col12\" class=\"data row1 col12\" >-0.00</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_188108ae_4114_11ea_af1b_698ca2e84afblevel0_row2\" class=\"row_heading level0 row2\" >std</th>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow2_col0\" class=\"data row2 col0\" >1.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow2_col1\" class=\"data row2 col1\" >1.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow2_col2\" class=\"data row2 col2\" >1.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow2_col3\" class=\"data row2 col3\" >1.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow2_col4\" class=\"data row2 col4\" >1.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow2_col5\" class=\"data row2 col5\" >1.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow2_col6\" class=\"data row2 col6\" >1.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow2_col7\" class=\"data row2 col7\" >1.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow2_col8\" class=\"data row2 col8\" >1.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow2_col9\" class=\"data row2 col9\" >1.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow2_col10\" class=\"data row2 col10\" >1.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow2_col11\" class=\"data row2 col11\" >1.00</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow2_col12\" class=\"data row2 col12\" >1.00</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_188108ae_4114_11ea_af1b_698ca2e84afblevel0_row3\" class=\"row_heading level0 row3\" >min</th>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow3_col0\" class=\"data row3 col0\" >-0.41</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow3_col1\" class=\"data row3 col1\" >-0.49</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow3_col2\" class=\"data row3 col2\" >-1.50</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow3_col3\" class=\"data row3 col3\" >-0.23</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow3_col4\" class=\"data row3 col4\" >-1.47</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow3_col5\" class=\"data row3 col5\" >-3.68</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow3_col6\" class=\"data row3 col6\" >-2.33</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow3_col7\" class=\"data row3 col7\" >-1.29</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow3_col8\" class=\"data row3 col8\" >-0.96</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow3_col9\" class=\"data row3 col9\" >-1.29</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow3_col10\" class=\"data row3 col10\" >-2.79</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow3_col11\" class=\"data row3 col11\" >-4.05</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow3_col12\" class=\"data row3 col12\" >-1.58</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_188108ae_4114_11ea_af1b_698ca2e84afblevel0_row4\" class=\"row_heading level0 row4\" >25%</th>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow4_col0\" class=\"data row4 col0\" >-0.40</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow4_col1\" class=\"data row4 col1\" >-0.49</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow4_col2\" class=\"data row4 col2\" >-0.85</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow4_col3\" class=\"data row4 col3\" >-0.23</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow4_col4\" class=\"data row4 col4\" >-0.92</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow4_col5\" class=\"data row4 col5\" >-0.61</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow4_col6\" class=\"data row4 col6\" >-0.82</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow4_col7\" class=\"data row4 col7\" >-0.81</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow4_col8\" class=\"data row4 col8\" >-0.62</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow4_col9\" class=\"data row4 col9\" >-0.74</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow4_col10\" class=\"data row4 col10\" >-0.54</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow4_col11\" class=\"data row4 col11\" >0.20</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow4_col12\" class=\"data row4 col12\" >-0.78</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_188108ae_4114_11ea_af1b_698ca2e84afblevel0_row5\" class=\"row_heading level0 row5\" >50%</th>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow5_col0\" class=\"data row5 col0\" >-0.38</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow5_col1\" class=\"data row5 col1\" >-0.49</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow5_col2\" class=\"data row5 col2\" >-0.35</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow5_col3\" class=\"data row5 col3\" >-0.23</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow5_col4\" class=\"data row5 col4\" >-0.11</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow5_col5\" class=\"data row5 col5\" >-0.12</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow5_col6\" class=\"data row5 col6\" >0.30</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow5_col7\" class=\"data row5 col7\" >-0.30</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow5_col8\" class=\"data row5 col8\" >-0.50</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow5_col9\" class=\"data row5 col9\" >-0.44</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow5_col10\" class=\"data row5 col10\" >0.26</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow5_col11\" class=\"data row5 col11\" >0.36</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow5_col12\" class=\"data row5 col12\" >-0.18</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_188108ae_4114_11ea_af1b_698ca2e84afblevel0_row6\" class=\"row_heading level0 row6\" >75%</th>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow6_col0\" class=\"data row6 col0\" >-0.07</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow6_col1\" class=\"data row6 col1\" >0.05</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow6_col2\" class=\"data row6 col2\" >1.04</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow6_col3\" class=\"data row6 col3\" >-0.23</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow6_col4\" class=\"data row6 col4\" >0.65</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow6_col5\" class=\"data row6 col5\" >0.48</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow6_col6\" class=\"data row6 col6\" >0.91</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow6_col7\" class=\"data row6 col7\" >0.61</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow6_col8\" class=\"data row6 col8\" >-0.15</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow6_col9\" class=\"data row6 col9\" >1.57</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow6_col10\" class=\"data row6 col10\" >0.78</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow6_col11\" class=\"data row6 col11\" >0.41</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow6_col12\" class=\"data row6 col12\" >0.63</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_188108ae_4114_11ea_af1b_698ca2e84afblevel0_row7\" class=\"row_heading level0 row7\" >max</th>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow7_col0\" class=\"data row7 col0\" >9.98</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow7_col1\" class=\"data row7 col1\" >3.61</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow7_col2\" class=\"data row7 col2\" >2.46</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow7_col3\" class=\"data row7 col3\" >4.31</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow7_col4\" class=\"data row7 col4\" >2.93</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow7_col5\" class=\"data row7 col5\" >3.67</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow7_col6\" class=\"data row7 col6\" >1.13</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow7_col7\" class=\"data row7 col7\" >3.95</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow7_col8\" class=\"data row7 col8\" >1.71</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow7_col9\" class=\"data row7 col9\" >1.84</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow7_col10\" class=\"data row7 col10\" >1.62</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow7_col11\" class=\"data row7 col11\" >0.42</td>\n",
       "                        <td id=\"T_188108ae_4114_11ea_af1b_698ca2e84afbrow7_col12\" class=\"data row7 col12\" >3.72</td>\n",
       "            </tr>\n",
       "    </tbody></table>"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7f5fd2d75f50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "display(x_train.describe().style.format(\"{0:.2f}\").set_caption(\"Before normalization :\"))\n",
    "\n",
    "mean = x_train.mean()\n",
    "std  = x_train.std()\n",
    "x_train = (x_train - mean) / std\n",
    "x_test  = (x_test  - mean) / std\n",
    "\n",
    "display(x_train.describe().style.format(\"{0:.2f}\").set_caption(\"After normalization :\"))\n",
    "\n",
    "x_train, y_train = np.array(x_train), np.array(y_train)\n",
    "x_test,  y_test  = np.array(x_test),  np.array(y_test)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4/ Build a model\n",
Jean-Luc Parouty's avatar
Jean-Luc Parouty committed
    "More informations about : \n",
    " - [Optimizer](https://www.tensorflow.org/api_docs/python/tf/keras/optimizers)\n",
    " - [Activation](https://www.tensorflow.org/api_docs/python/tf/keras/activations)\n",
    " - [Loss](https://www.tensorflow.org/api_docs/python/tf/keras/losses)\n",
    " - [Metrics](https://www.tensorflow.org/api_docs/python/tf/keras/metrics)"
   ]
  },
  {
   "cell_type": "code",
Jean-Luc Parouty's avatar
Jean-Luc Parouty committed
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "  def get_model_v1(shape):\n",
    "    \n",
    "    model = keras.models.Sequential()\n",
    "    model.add(keras.layers.Dense(64, activation='relu', input_shape=shape))\n",
    "    model.add(keras.layers.Dense(64, activation='relu'))\n",
    "    model.add(keras.layers.Dense(1))\n",
    "    \n",
    "    model.compile(optimizer = 'rmsprop',\n",
    "                  loss      = 'mse',\n",
    "                  metrics   = ['mae', 'mse'] )\n",
    "    return model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5/ Train the model\n",
    "### 5.1/ Get it"
   ]
  },
  {
   "cell_type": "code",
Jean-Luc Parouty's avatar
Jean-Luc Parouty committed
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "dense (Dense)                (None, 64)                896       \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 64)                4160      \n",
      "_________________________________________________________________\n",
      "dense_2 (Dense)              (None, 1)                 65        \n",
      "=================================================================\n",
      "Total params: 5,121\n",
      "Trainable params: 5,121\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "model=get_model_v1( (13,) )\n",
    "\n",
    "model.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 5.2/ Add callback"
   ]
  },
  {
   "cell_type": "code",
Jean-Luc Parouty's avatar
Jean-Luc Parouty committed
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "os.makedirs('./run/models',   mode=0o750, exist_ok=True)\n",
    "save_dir = \"./run/models/best_model.h5\"\n",
    "savemodel_callback = tf.keras.callbacks.ModelCheckpoint(filepath=save_dir, verbose=0, save_best_only=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 5.3/ Train it"
   ]
  },
  {
   "cell_type": "code",
Jean-Luc Parouty's avatar
Jean-Luc Parouty committed
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "history = model.fit(x_train,\n",
    "                    y_train,\n",
    "                    epochs          = 100,\n",
    "                    batch_size      = 10,\n",
    "                    verbose         = 0,\n",
    "                    validation_data = (x_test, y_test),\n",
    "                    callbacks       = [savemodel_callback])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 6/ Evaluate\n",
    "### 6.1/ Model evaluation\n",
    "MAE =  Mean Absolute Error (between the labels and predictions)  \n",
    "A mae equal to 3 represents an average error in prediction of $3k."
   ]
  },
  {
   "cell_type": "code",
Jean-Luc Parouty's avatar
Jean-Luc Parouty committed
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "x_test / loss      : 14.2504\n",
      "x_test / mae       : 2.4316\n",
      "x_test / mse       : 14.2504\n"
     ]
    }
   ],
   "source": [
    "score = model.evaluate(x_test, y_test, verbose=0)\n",
    "\n",
    "print('x_test / loss      : {:5.4f}'.format(score[0]))\n",
    "print('x_test / mae       : {:5.4f}'.format(score[1]))\n",
    "print('x_test / mse       : {:5.4f}'.format(score[2]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 6.2/ Training history\n",
    "What was the best result during our training ?"
   ]
  },
  {
   "cell_type": "code",
Jean-Luc Parouty's avatar
Jean-Luc Parouty committed
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "min( val_mae ) : 2.2208\n"
     ]
    }
   ],
   "source": [
    "print(\"min( val_mae ) : {:.4f}\".format( min(history.history[\"val_mae\"]) ) )"
   ]
  },
  {
   "cell_type": "code",
Jean-Luc Parouty's avatar
Jean-Luc Parouty committed
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAg0AAAGdCAYAAACRlkBKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deZxcVZ338c+vlt6ydFayAsGwGgIJEAUybuCIyCjKuCCLygyiljiKPjMDzsgmjzqboEjpgD7jiIosKoOjI8hIQGUJAQKICQmQQBZCQpZOeq3tPH+cW923i+ru6qS7qm7n+369ilt976nb5940Vd8659xzzTmHiIiIyFBita6AiIiIRINCg4iIiFREoUFEREQqotAgIiIiFVFoEBERkYooNIiIiEhFFBpERESkIgoNIrJXzOz7ZuaCR9bMDhii/HtD5Z2ZfaxMmSlm9g9m9qCZ7Qj2+4qZPWlmt5jZJ8zsdWVed2XJvgd7XDeCp0Fkv5KodQVEZExIAOcAg30gf2SwHZjZG4G7gHD42A2MA44JHmcD/wW8d4DdFIBtQ9R19xDbRWQACg0isq9eAg7Ch4KyocHMpgBnAO1ABphSsn0SfYFhLXAlcJdzrj3YPhN4C/BBfDAYyAbn3Ly9PxQRGYxCg4jsq4eALLDYzBY4554pU+ZsoAG4BXj7ANsPAHqAU5xzG8MbnXNbgFuBW82seSQrLyKV05gGERkJNwfLgbogiut/MMD2hcFyZWlgKOWc6xpm3URkhCg0iMhIKIaGc82s3/uKmR0OvBHYACwbYj+zzMxGvnoiMhIUGkRknznnXgD+AMwBTinZXGxl+JFzbqDxCCuC5UHA/zWzxpGvpYjsK4UGERkpxa6H3i6KoNXgvJLt5dwCPBs8vwzYYmY/NbO/M7O3mVlLhXU40My2DPFYMJyDEpE+Cg0iMlJuA7qBs8xsXLDuLcDBwArn3KqBXuic68a3UPwyWDUJOAv4J+C3wC4zu8vMThqiDjFgxhCP5PAPTURAoUFERohzbhfwC/y8Cn8ZrB5qAGT49Zudc38BHIVvbfgl8HKwOQm8G/iDmX12kN286JyzIR4r9+LwRASFBhEZWcVwcH5waeRf4i/HvKXSHTjnVjvnvuac+wvn3Gx8iLgK6AQM+LqZHTfC9RaRCig0iMhI+jWwFd/VcDEwEfgf59yre7vDIERcCZwOOPz71kf3vaoiMlwKDSIyYpxzOeAn+PeW/xusvnngVwxr3w/gZ4sEOHwk9ikiw6PQICIjrdhFkQR24sc5jJSOYJkZwX2KSIU0jbSIjCjn3GNmdiUwAXjKOdcz1GvMbAmwxjnXNkiZBcCxwY8azChSAwoNIjLinHNXDfMlHwIuNLNbgJ8Cjzjn9gCY2VT8jaoux7eOdgDfHcHqikiFFBpEpB5kgVbgk8EDM9uNf48KT+y0CzjbObdhgP0caGZbhvhdDzrnztrH+orslxQaRKQefBH4b+CdwEnAkcB0/CWW24BVwN3ATc65bYPspzi502CmDLFdRAZgzrla10FEREQiQFdPiIiISEUUGkRERKQiCg0iIiJSEYUGERERqYhCwwBSqZRLpVIaJSoiIhLQJZdDU3AQEZH9iQ20QS0NIiIiUhGFBhEREamIQoOIiIhURKFBREREKqKBkMOUzWbZuHEj3d3dta5KJDQ1NTF37lySyWStqyIiIvtIoWGYNm7cyIQJE5g3bx5mAw4wFcA5x/bt29m4cSOHHHJIrasjIiL7SN0Tw9Td3c3UqVMVGCpgZkydOlWtMiIiY4RCw15QYKiczpWIyNih0CAiIiIVUWgQERGRiig0RND69es58sgjufDCCzn66KM599xzuffee1m6dCmHHXYYy5cv5/7772fRokUsWrSIxYsXs2fPHgD+5V/+hSVLlnDMMcdwxRVX1PhIREQkSnT1xD447cu/HLV93/2lMwbd/txzz3H77bdz4403smTJEn784x/z+9//nrvuuouvfOUr5PN5brjhBpYuXUp7eztNTU3cc889rF27luXLl+Oc4z3veQ8PPPAAb37zm0ftOEREZOxQS0NEHXLIISxcuJBYLMaCBQs49dRTMTMWLlzI+vXrWbp0KZ///Of55je/ya5du0gkEtxzzz3cc889LF68mOOOO47Vq1ezdu3aWh+KiIhEhFoaIqqxsbH3eSwW6/05FouRy+W49NJLOeOMM/jVr37FiSeeyL333otzjssuu4xPfOITtaq2iIhEmELDPhiqCyFszeY2infZPmxW66hfivj888+zcOFCFi5cyEMPPcTq1as57bTT+NKXvsS5557L+PHj2bRpE8lkkgMOOGBU6yIiImODQkOVmIHzmQHn/M+j6brrruO+++4jHo/z+te/ntNPP53GxkZWrVrFSSedBMD48eP54Q9/qNAgIiIVMVf8JJN+UqmUA0in0/3Wr1q1iqOOOmrY+3tuSxuFgj/X82dOJB7bf4aT7O05ExGRmhjwa+3+88lVYxb6N1BOExGRKFJoqJJwd4Rad0REJIoUGqqkX2ioXTVERET2mkJDlah7QkREok6hoUrUPSEiIlGn0FAl4XkZFBlERCSKFBqqJHz9ihoaREQkihQaqqRW3RPjx4+v2u8SEZGxTaGhStQ9ISIiUadppPfFhe+suOic4e77u78uu/rv//7vOfjgg0mlUgBceeWVmBkPPPAAO3fuJJvNcs0113DmmWcO+SuWLVvGFVdcwYwZM1i5ciVnnXUWCxcu5Bvf+AZdXV3ceeedzJ8/n9tvv52rrrqKeDxOa2srDzzwAPl8nksvvZRly5bR09PDpz/9ad0IS0RkjFNLQ8ScffbZ3Hrrrb0/33bbbVxwwQX8/Oc/5/HHH+e+++7jC1/4QsVdIE8++STf+MY3ePrpp7n55ptZs2YNy5cv58ILL+T6668H4Oqrr+buu+/mySef5K677gLge9/7Hq2trTz66KM8+uij3HTTTaxbt27kD1hEROqGWhoiZvHixWzdupXNmzezbds2Jk+ezKxZs7jkkkt44IEHiMVibNq0iVdeeYWZM2cOub8lS5Ywa9YsAObPn8873vEOABYuXMh9990HwNKlS/nYxz7GBz/4Qc466ywA7rnnHp566inuuOMOANra2li7di2HHHLIaBy2iIjUAYWGfTFAF0I5r+zqpK0zA8ABrc1MGte417/2/e9/P3fccQdbtmzh7LPP5kc/+hHbtm3jscceI5lMMm/ePLq7uyvaV2NjXz1isVjvz7FYjFwuB8B3vvMdHnnkEX75y1+yaNEiVq5ciXOO66+/ntNOO22vj0NERKJF3RNV0m8g5D6OhDz77LP5yU9+wh133MH73/9+2traOOCAA0gmk9x33328+OKL+1jb/p5//nne+MY3cvXVVzNt2jQ2bNjAaaedxre//W2y2SwAa9asoaOjY0R/r4iI1Be1NFRJ/3tP7FtqWLBgAXv27GHOnDnMmjWLc889l3e/+92ccMIJLFq0iCOPPHIfa9vf3/7t37J27Vqcc5x66qkce+yxHHPMMaxfv57jjjsO5xzTp0/nzjvvHNHfKyIi9cU0pXF5qVTKAaTT6X7rV61axVFHHTXs/b26u4sd7T0ATJ3QxNQJTSNQy2jY23MmIiI1YQNtUPdElWieBhERiTp1T1RJLW9Y9fTTT3P++ef3W9fY2MgjjzxS1XqIiEi0KTRUSS1vjb1w4UJWrlxZ3V8qIiJjjron9sLetBSM5EDIKNGYGRGRsUOhYZiamprYvn37sD8M+3dPjHCl6pRzju3bt9PUtP8M+hQRGcvUPTFMc+fOZePGjWzbtm1Yr+vK5Njd6ec02NEQZ2dLw2hUr+40NTUxd+7cWldDRERGgELDMCWTyb2aKnnZM5v56r1PAPCmo2bxj+/XJYgiIhIt6p6okoZ436nO5gs1rImIiMjeUWiokkQoNOQUGkREJIIUGqokmVBLg4iIRJtCQ5WopUFERKJOoaFKkuExDTmFBhERiR6FhipJaiCkiIhEnEJDlSTjfbM7KTSIiEgUKTRUSTIR732u0CAiIlGk0FAliXBLg8Y0iIhIBCk0VElSV0+IiEjEKTRUieZpEBGRqFNoqJL+LQ37yW0uRURkTKm70GBmLWa2zsycmX2rzPYjzOxOM9tpZh1m9jszO2WAfbWa2fVmtsnMus3sGTP7lFn4RtXVkSi55HK4t9YWERGptXq8y+XVwLRyG8xsPvAgkAP+GWgDPg7cbWanO+fuDZVtAH4DLAauB1YBpwNpYAZw5egdwmvFzIjHjHzBh4VsvkBD6IoKERGReldXLQ1mdhzwOeCKAYp8FZgEnOac+6pzLg28CdgM3FDSgnAhsAT4vHPu8865m5xzZwE/A75oZgeP2oEMQF0UIiISZXUTGswsDtwE/Br/wV66fRzwHmCZc25lcb1zrh34LnA4PiQUnQN0BvsMuw5IAh8ayfpXQoMhRUQkyuomNACXAEcCFw+w/RigEXiozLaHg+USADOLAccBTzjnukvKLgcK9A8YVaHLLkVEJMrqIjSY2SHAVcDVzrn1AxSbHSw3ldlWXDcnWE4GmsuVdc71ANtDZatGN60SEZEoq4vQAHwbWAd8fZAyLcGyp8y27pIyg5Utlm8pt8HMLjKzFYPUY6+Fr6DIqKVBREQipuahwczOA94BfNI5lx2kaGewbCyzramkzGBli+U7y21wzt3onDthkHrsNXVPiIhIlNX0kksza8S3LvwK2GJmhwabil0HrcG6V/FXSIS3hRXXFbsjdgJd5coGv3MqcP8+H8AwaSCkiIhEWa1bGpqB6cAZwNrQY1mw/bzg5wuBp/HdDSeV2c+JwXIFgHOuADwOLA5CQtgb8Mc9Kl0QgwnftEotDSIiEjW1ntypA/hAmfXT8ZMw/Rr4HvCUc67dzH4BnGVmxzrnngQws/H4ULEWf2VE0S3AUuAi/ORORZ/DTw512wgfy5A0EFJERKKspqEhGMNwR+l6M5sXPH3eORfefhlwKnCPmV0L7MbPCDkHOMP1n5v5JuAC4OvB/lYB7wLeB1zjnFs3ksdSiWRc3RMiIhJdtW5pGBbn3HNmthT4GnAp0IDvhnhneArpoGzGzN4OXAN8GD+O4XngM8ANVa14QKFBRESirC5DQzBXQ9mbSjnnVgFnVrifXfjJogaaMKqq+g2EVPeEiIhETK0HQu5XSu90KSIiEiUKDVWkeRpERCTKFBqqSPM0iIhIlCk0VFH/gZC6NbaIiESLQkMVaZ4GERGJMoWGKtJASBERiTKFhirSQEgREYkyhYYq0kBIERGJMoWGKkqopUFERCJMoaGKwt0TGQ2EFBGRiFFoqKJk6NbY6p4QEZGoUWioIg2EFBGRKFNoqKJkIt77XPM0iIhI1Cg0VFEi1D2hlgYREYkahYYqSmpyJxERiTCFhipSaBARkShTaKiGXBZuv4kDf3Mzn9pxP6DQICIi0aPQUC13/5Spy+/mjD1/BDQQUkREokehoRriid6nSQqYc+R0a2wREYkYhYZqMINEsvfHBHl1T4iISOQoNFRLKDQknUKDiIhEj0JDtZSEBs3TICIiUaPQUC3JcGgo6IZVIiISOQoN1aLuCRERiTiFhmpR94SIiEScQkO1JMKXXebJFxwFp8suRUQkOhQaqqWkpQF00yoREYkWhYZqCc/TEIQGzQopIiJRotBQLaHQ0FAMDWppEBGRCFFoqJbka7snFBpERCRKFBqqJXz/CXVPiIhIBCk0VEu4pQENhBQRkehRaKiWfgMhfVhQ94SIiESJQkO1lLnkUqFBRESiRKGhWsqGBk3uJCIi0aHQUC3lQoMGQoqISIQoNFSLZoQUEZGIU2ioljJXT2hMg4iIRIlCQ7Woe0JERCJOoaFayk3upJYGERGJEIWGatE00iIiEnEKDdWigZAiIhJxCg3VEp4REs0IKSIi0aPQUC3luic0EFJERCJEoaFa4uqeEBGRaFNoqJYyLQ0ZhQYREYkQhYZq0Q2rREQk4hQaqiXx2hkh1T0hIiJRotBQLZoRUkREIk6hoVoSr50RMqdbY4uISITUPDSY2RFm9iMzW2VmbWbWaWarzezrZjZrgPJ3mtlOM+sws9+Z2SkD7LvVzK43s01m1m1mz5jZp8zMRv/ISmhMg4iIRFxi6CKjbi4wC/g5sBHIAQuBi4CzzWyRc24rgJnNBx4Myvwz0AZ8HLjbzE53zt1b3KmZNQC/ARYD1wOrgNOBNDADuLIaB9crdPVEwgWTO+XyVa2CiIjIvqh5aHDO/S/wv6XrzewB4DbgY/iAAPBVYBJwvHNuZVDuB8AzwA1mdqRzrtjmfyGwBPgb59z1wbqbzOynwBfN7D+ccy+O0mG9VrmWhoK6J0REJDpq3j0xiOIH+mQAMxsHvAdYVgwMAM65duC7wOH4kFB0DtAJ3FSy3+uAJPCh0an2AMpcPaGBkCIiEiV1ExrMrMnMppnZXDN7B/DvwaZfBctjgEbgoTIvfzhYLgn2FQOOA55wznWXlF0OFOgfMEafblglIiIRVzehAd+dsA3YANyN74Y4zzn3u2D77GC5qcxri+vmBMvJQHO5ss65HmB7qGx1aCCkiIhEXD2FhjuBPwfeB1wN7AKmh7a3BMueMq/tLikzWNli+ZZyG8zsIjNbUWGdKxePg/nTHccRcwV1T4iISKTUTWhwzm10zt3rnLvTOXcF8FHgn8zssqBIZ7BsLPPyppIyg5Utlu8st8E5d6Nz7oTh1b5CJfefUEuDiIhESd2EhlLOuaeAJ4BUsGpzsCzXrVBcV+yO2Al0lStrZo3AVMp3c4yuhEKDiIhEV92GhkAzMCV4/jS+u+GkMuVODJYrAJxzBeBxYHEQEsLegD/uke+CGEo8NCskeQ2EFBGRSKl5aDCzmQOsfxtwNMGVEcGllb8A3mpmx4bKjccPolyLvzKi6Bb8uIWLSnb9OfzkULeN0CFUTt0TIiISYTWf3An4djBd9G/xczM0AccDZwN7gC+Eyl4GnArcY2bXArvxM0LOAc4ITewEfn6GC4Cvm9k8/IyQ78IPtLzGObduFI+pvET/WSE7NBBSREQipB5Cwy34QY/n46+WcPjw8O/AvzjnXioWdM49Z2ZLga8BlwIN+G6Id4ankA7KZszs7cA1wIfx4xieBz4D3DDaB1VWyZgGdU+IiEiU1Dw0OOduYxhdBc65VcCZFZbdBVwcPGqv5E6X6p4QEZEoqfmYhv1KqKWhweUpOMgXFBxERCQaFBqqqdz9J/K6aZWIiESDQkM19bs9tm5aJSIi0aLQUE26aZWIiESYQkM16aZVIiISYQoN1VQuNKh7QkREIkKhoZrU0iAiIhGm0FBN/a6e8GFBoUFERKJCoaGakhoIKSIi0aXQUE3x/jNCgloaREQkOhQaqqlMS4MGQoqISFQoNFSTBkKKiEiEKTRUU/jW2Cg0iIhItCg0VJNmhBQRkQhTaKgmdU+IiEiEVRQaUqnUR1Kp1DEl6xpSqdTEAcq/JZVKXT4SFRxTNCOkiIhEWKUtDd8H3luy7jJg5wDl3wpcsXdVGsM0T4OIiESYuieqqcyMkBmFBhERiQiFhmoqOxDS1ao2IiIiw6LQUE2JMjNCakyDiIhEhEJDNenqCRERiTCFhmrSPA0iIhJhiaGL9JqUSqUOCv8MkEqlDgSstOy+VmxMCl09kVBLg4iIRMxwQsNng0ep9SNTlf1A+C6XaEyDiIhES6Wh4SVAw/z3VaKh96nGNIiISNRUFBrS6fS8Ua7H/qHcrbEVGkREJCI0ELKaNBBSREQiTKGhmvqFBh8W1NIgIiJRUVH3RCqVagZmAa+m0+ndJdsOBq4FTsFfRXE/8H/S6fSaEa5r9GlyJxERibBKWxouBtYCrw+vTKVSE/Ah4UxgIjAB+AtgWSqVmjqC9RwbQi0NDeTBObU0iIhIZFQaGt4EbEin0w+XrP8UcBDwEHAoMAO4HphJ+csz92+xGMTjvT8mKCg0iIhIZFR6yeXrgRVl1p+FvxTzr9Lp9AvBus+mUqkzgNOBy/e9imNMIgl53zWRdHndsEpERCKj0paG6cC68IpUKpUEFgPPlhm/8Ft8y4OUSvSfFTKby9ewMiIiIpWrNDQ0AvGSdQuAJLC8TPmtQMs+1GvsKhkMqe4JERGJikpDwxbg6JJ1J+O7Jsp1W0wAduxDvcaukrka1D0hIiJRUWlo+ANwSiqVeiv0XoL58WDbb8qUPxrYtM+1G4tKrqBQS4OIiERFpaHh2mB5TyqVehw/vuEYYFk6nX42XDCVSk0ElgKlV1oIvKalQaFBRESioqLQkE6nVwAfA7qARcAB+G6Jj5Yp/lGgAbhnZKo4xvS7PXZBkzuJiEhkVHxr7HQ6/cNUKvVTfNfD9tAllqV+ATwArBqB+o098de2NDjnMLMaVkpERGRoFYcGgHQ63QU8OkSZ9ftSoTGvzJ0u8wVHIq7QICIi9U03rKq28JgGdHtsERGJjkpvWPWRvdl5Op3+wd68bkwrmdwJfGhorlV9REREKlRp98T38XMyVMqC8goNpcKXXAahIZMtoNQgIiL1bjhjGnLAfwN/GqW67B/K3B67O5urVW1EREQqVmlouB94M/Be/OWWNwG3pdPp7tGq2JiVeO1AyO6M7j8hIiL1r9J5Gt4GHAH8K/5GVP8BvJxKpa5PpVLHjGL9xp4yV090ZxUaRESk/g1nnobngL9PpVL/AJyJn0b6U0AqlUo9Bvw78JN0Ot0xKjUdK8IDIfFXTfQoNIiISAQM+5LLdDqdS6fTP02n0+8E5gNfAWYBNwKbU6nUSSNcx7ElrpYGERGJpn2apyGdTr+YTqe/BFyEv0HVeGD6SFRszCrXPZHRQEgREal/w5oRMiyVSs0G/ip4HAx0Az8EHh+Zqo1R5QZCqqVBREQiYFihIZVKxYC/AC4E3hm8/mngs8DN6XS6bbgVMLPDgfOAd+C7O5qA54Hbgeuccx0l5Y8A/gl4C/7GWI8DVzjnfltm363ANcBZwNRgv98CvuOcG868EyNHoUFERCKq0hkhDwH+GrgAP36hA/hP4KZ0Or18H+vwV8CngbuAHwFZ4G34D/sPmtmJzrkuADObDzyInzPin4E2/IDMu83sdOfcvcWdmlkD8BtgMXA9/gZapwNpYAZw5T7We+8kXzuNtC65FBGRKKi0peG5YLkCuAK4ZQSvkrgD+KpzLtxK8R0zWwv8Az6sfCtY/1VgEnC8c24lgJn9AHgGuMHMjgy1IFwILAH+xjl3fbDuJjP7KfBFM/sP59yLI3QMlYuXm9xJoUFEROpfpaHB8C0As4DLgctTqdRQr3HpdPrgIQs5t2KATbfiQ8PRAGY2DngPsKwYGILXt5vZd4Gr8SGh2PJxDtCJn4gq7Dp8d8WH8K0V1VW2e0IDIUVEpP4NZ0xDEpg7WhUpo/i7XgmWxwCNwENlyj4cLJcAy80sBhwHPO6cK521cjlQCMpWX9mrJ9TSICIi9a+i0JBOp6t6C20zi+NbNHLAj4PVs4PlpjIvKa6bEywn428B9ZqyzrkeM9seKltdGggpIiIRVdUwMAzXAScClzvnng3WtQTLnjLlu0vKDFa2WL6l3AYzu8jMBuoy2Xf9bo3tZ4RUaBARkSiou9BgZl8GLgZudM59NbSpM1g2lnlZU0mZwcoWy3eW2+Ccu9E5d0LlNR6m8F0ug6snNI20iIhEQV2FBjO7EvhH/A2xPlmyeXOwLNetUFxX7I7YCXSVK2tmjfg5G8p1c4y+REPvU41pEBGRKKmb0GBmV+Av5/wBcGGZyZeexnc3lLu3xYnBcgWAc66An/RpcRASwt6AP+7R64IYjK6eEBGRiKqL0GBml+MnW7oZuCD40O/HOdcO/AJ4q5kdG3rtePycDGvpu9wS4Bb8uIWLSnb1OfwAy9tG8BAqp1tji4hIRO31vSdGipl9GrgKeAm4FzjHzMJFXnHO/SZ4fhlwKnCPmV0L7MbPCDkHOKOkdeIm/AyWXzezefgZId8FvA+4xjm3brSOaVDlWhrUPSEiIhFQ89BA33wJB+Gnpi51P346aJxzz5nZUuBrwKX03XvineEppIOyGTN7O3466g/Td++JzwA3jMJxVCY8EFJXT4iISITUPDQ45z4GfGwY5VcBZ1ZYdhf+SoyL96ZuoyLx2ntP9GTzFJwj1r+FRUREpK7UxZiG/UqZ7gmAjFobRESkzik0VFtoIGRDKDSoi0JEROqdQkO1hWeEJBQaNBhSRETqnEJDtYVujZ1wBSy44EMtDSIiUu8UGqrNrGxrgyZ4EhGReqfQUAu606WIiESQQkMtaIInERGJIIWGWtAETyIiEkEKDbVQpqVBt8cWEZF6p9BQC2W7JzQQUkRE6ptCQy0kXzuVtLonRESk3ik01IIGQoqISAQpNNRCIjzBk1oaREQkGhQaaiHx2vtPKDSIiEi9U2ioBQ2EFBGRCFJoqAXNCCkiIhGk0FALunpCREQiSKGhFuKhG1YFM0JqcicREal3Cg21kNQllyIiEj0KDbWgMQ0iIhJBCg21UDY06OoJERGpbwoNtaAZIUVEJIIUGmohfGtsXT0hIiIRodBQC/1mhPRXT+QLjmy+UKsaiYiIDEmhoRZCoaEp1hcU1EUhIiL1TKGhFkKXXDZZKDRoMKSIiNQxhYZaSAwQGtTSICIidUyhoRZCAyEbzPU+12BIERGpZwoNtZBo6H3aSF9QUGgQEZF6ptBQC+GrJ+jrntD9J0REpJ4pNNRCMhwaQi0NGQ2EFBGR+qXQUAvx0JgGp+4JERGJBoWGWgh1TyQIX3Kp0CAiIvVLoaEWytwaG3TJpYiI1DeFhloItzQU+sYxqKVBRETqmUJDLfQLDRoIKSIi0aDQUAuhyZ3iGggpIiIRodBQC6GWhnhe3RMiIhINCg21EJoRMhYe06CBkCIiUscUGmohdPVELNTS0KO7XIqISB1TaKiFRDg0ZHufq3tCRETqmUJDLcRiYAaAOUfM+QmeFBpERKSeKTTUglm/1obiBE8a0yAiIvVMoaFWyoQG3eVSRETqmUJDrTT0XUHR5PwASHVPiIhIPVNoqJWJk3ufTs53AJoRUkRE6ptCQ620Tu19OjUIDT25AgXnalUjERGRQSk01Hqn/sMAACAASURBVMqkvpaGGa6z97nGNYiISL1SaKiVSX0tDdPp6n2uKyhERKReKTTUSqh7Ynqhr6VBgyFFRKRe1Tw0mNllZna7mb1gZs7M1g9R/o1mdq+Z7TGz3Wb2azNbNEDZ2Wb2AzPbZmZdZrbCzD4wKgcyXKGWhim5jt7nGgwpIiL1quahAfgKcArwPLBzsIJmdiJwP3AIcDlwBXAY8DszW1hSdgrwe+As4NvAZ4F24DYzu2CEj2H4Jk3pfTo51977XC0NIiJSrxK1rgAw3zn3AoCZ/REYP0jZbwIZ4M3OuU3Ba24DVgH/BrwjVPZSfLh4j3PuF0HZ7wEPAf9qZrc759qplda+0DApq9AgIiL1r+YtDcXAMBQzOxRYAtxeDAzB6zcBtwNvN7OZoZecAzxfDAxB2TxwPTAFeNcIVH/vTZzce/+JcdlO4poVUkRE6lzNQ8MwLAmWD5XZ9jBgwPEAZjYLmBOsL1c2vL/aSCRgwiQAYjgm5/0VFLp6QkRE6lWUQsPsYLmpzLbiujl7UbYfM7vIzFbsVQ2HKzSuYWred1F0ZzUQUkRE6lOUQkNLsOwps627pMxwyvbjnLvROXfCXtVwuMJXUBSnklb3hIiI1KkohYbiZAaNZbY1lZQZTtnaaQ23NBTvP6HQICIi9SlKoWFzsCzXrVBct2kvytZOv5YGn2HU0iAiIvUqSqHh0WB5UpltJwIOeAzAOfcyPhScOEBZgOqMWxhMeExDTt0TIiJS3yITGpxzz+E/6D9gZsWBjgTPPwD81jm3JfSSW4D5ZvbuUNk48BlgF/CrqlR8MP3udBkMhNSMkCIiUqdqPrmTmZ0PHBz8OB1oMLN/DH5+0Tl3c6j4Z4H78DNAXh+s+ww+/HyhZNdfw4eJH5vZ1/EtDx/GX2p5oXNuz4gfzHBNKjOmQS0NIiJSp2oeGoC/Bt5Ssu7LwfJ+oDc0OOceNLO3AtcEDwc8CHzAOfdkeAfOue1mthQfHj6Nn2nyT8DZzrlbR+E4hq/c1RMaCCkiInWq5qHBOffWYZZ/CDi1wrKbgPP3olrVMWESWAxcgUmFbhIur5YGERGpW5EZ0zAmxeMwcVLvj5PznZrcSURE6pZCQ61NCg+G7KAnW6hhZURERAam0FBrrf2nklZLg4iI1CuFhlormatBAyFFRKReKTTUWkn3hAZCiohIvVJoqLWSqaS7M3mcczWskIiISHkKDbUW6p6Yku+g4BzZvAZDiohI/VFoqLVyd7pUF4WIiNQhhYZaKxnTAJoVUkRE6pNCQ61NaIWY/2eYWOgm6XJqaRARkbqk0FBrsXi/Loop+U627+muYYVERETKU2ioB62Te59OzXXw7KZdNayMiIhIeQoN9aDkbperFRpERKQOKTTUg9b+gyGf3bxLczWIiEjdUWioB5P6339iR3sP23ZrXIOIiNQXhYZ6UDIrJKAuChERqTsKDfWgzARPqzftrFVtREREylJoqAdlJnhSS4OIiNQbhYZ6UHL1BMBzL7eR0z0oRESkjig01IPxEyEeB2BCoYeGQo6eXIF1W/fUuGIiIiJ9FBrqQSzWb1zD9LwPC+qiEBGReqLQUC9mzOl9+ubO5wA0M6SIiNQVhYZ6sfQdvU/P2PM0cZfXFRQiIlJXFBrqxfF/BhMmATA938HJnS+wYXsH7d3ZGldMRETEU2ioF8kGeMu7en98z56nAHh2s7ooRESkPig01JO3ntF7FcUxPZs5JPOqxjWIiEjdUGioJ5OmwuKlvT+euedJXUEhIiJ1Q6Gh3pz6nt6nb+tYw4aXXtYdL0VEpC4oNNSbQxfgDnwdAE0ux8lbn2Tzzs4aV0pEREShof6YYaee2fvju/c8zS33r65hhURERDyFhnr0hreSaxoHwMz8bpb+9rs88ezmGldKRET2dwoN9aihkcS7PtD740ld62hJX07PLg2KFBGR2lFoqFenf4iuU97X++MRHRvp+PIlsPPVGlZKRET2ZwoN9cqM5nM+waqT+1ocprS9TO6qi+EXP1J4EBGRqlNoqHNHXPBX/PDw95EL/qkS7bvgv26Gv/sIfPMKeGo56JJMERGpAoWGOhcz480XnMNVM97Nzlhz3wZXgKcegW9eDt+6Ui0PIiIy6hQaIuCg6RM48rS3c/7cC/jKtNN4omlu/wJPPgKXfwJ+92u1OoiIyKhJ1LoCUpkPv+lQGhIxvn9fgvvHHc7s7C7ev/txzmh/xhfo6oD/vA4e/i2c/Oew4Dg/LbWIiMgIUWiIiJgZHzh5PosOmcbXfvYEG3fAN6eewn3jjuCS7f/LnFybL/jsU/4BcODrYMEJcPTxMP8ofydNERGRvWS6r0F5qVTKAaTT6VpX5TW6Mzm+fc+f+PUTGwBoLGT5SNsjvG/3SuIM8O/Z0AhHHANHLoLpM2HyNP+YOAli8SrWXkRE6pwNuEGhobx6Dg1FT7+4ndseeoHla7cCMDe7k5M7X+CErhdZ0PMyCQpD7ySegBlzYPbBMOdgv5w8HSZNgYmTIRE0RjkH2Qz0dEMyCQ1NENOQGBGRMWjA0KDuiQhbePBUFh48lRe37eGnD7/Ab5+OcVtyMre1Hk9LIcOx3Rs4vmsDx3W/1Nd9USqfg80v+seKkm1mMG6iL9PTBYWSENLQCE0t0NwSLMf558kkWBAoYjHfkpFIQCLpl8kGSDT4ZUODDyDjxkPLBL/MZmHds32PV7fA+InQOhkmTvGBZsp0mHoATJ3plxMn9e9+yeVg4zp4YRVseMG//shFcOjrobFpxP4NRET2J2ppGEAUWhpK7ero4f4/vcx9f9zEqo39p5yemW3j+O6XmJ/ZxrR8BzNdB9PzHbRkx9AdNJtaYEKrX76yETI9ry2TSMLrjoSZc32wiZlfxhM+wCQb/dIB3Z1+gGlXJxTyfQGpeRyMmwAHzPaPSVN9OMpmYNsWeGUT7Nzmw1BzC7SM869NNvjfn0z60DR+IsQH6RrK52HTOnh+Nby4xoeveYf7+s8+yJfZuA7W/BHWPA17dsGESb6FqHWybzE6/GiYPssHwGpq3+2v6sll/aDcaTNH/3c6539vY5MPtCKyt9Q9MVxRDA1hL+/sZNkzm3ns+W2s3rSLbL58V0VLIcNB2R0cnN3BgthuXsdupuY7GN+9m2TXHiz895FI+jfjfM53U4jX0OgDwM7tfv6MSsXj/oN92gyYOsN/sHd1+LDS0e5bf8oFH4DGZh94uioIfVMPgKMW+7CRzcCeNv/o7vQBaEKrr3/zOGjbCTtege1bYdcO/9rXHQXzj4SDD/Pzgaz9o3+sX+ND1iFHBI/D4eUN/gqep5b7v5Oigw+D45fC64/zYSqegETcf9B3tvvj7WyH7q6+IBeL+WUh7wNUPuefW9B6FYv51q+XX/KtSRue98dl5s/nzLkw80DfMtXYDE1Nfpls8K+Px/2yucWXbxnX/7zlsrBjm/9bnzbDn5/wtvVrYfWTviXsoPlw7In+fEl9KhT830a1A3Q0KTQMV9RDQ1hPNs/qTbt46sXt/HHDDlZv3EV3Nj/k6+IuzxQyjB/fQuP4cUyY0ExrSwPTJzYzs7WR2S1xZjYZkxI5GjI9wbfyDv/m7pz/AC0Ey2zWv9HmcpDL+A+vbAYyGd/10dkOHXv8h4crwIHz4XXBh9Hsg/1+23b4D7K2HbA9+GDbvhV2bPUfFqXdJ1MP8FeNHHy4L796JWx+aZTOskRey3gfHhoa/N9V247+855MmORblpINvturXKCbewgc8wbf2hP+gOrugs4O6Gr3f8sWg6ZmH6Camv2jeVxfF19DY6glLO7fwgsFX59Cwf+cbPTlii1kyWTQBZj05XbvhF3b/XG07/HbG4PflWzw/58W/x/MZf2+mkPdjJOm+n2Vk8sBbuDtA8lm+s5DPu//H21qGd4+euuQ9cF6/VofYDeu88d30OvgoEP91WPtu/3VZGuehudX+dcduchfUbbgBJgxe+9+d1j7bnjmMfjjCh9eZx8Eb3onHHFs/3FfbTvguT/583zQob41sFRnhw+zlXShOueP+4mH/BeCRSfu+7H0UWgYrrEUGkrlCwXWvbKHP23cyepNu3h+y25eerWdwj78LTQl47S2NDCxpYHJ4xuZNqGJ6RObmDaxiXGNSf8XaGAYjck4k8f5chNbGoiNRPIvFPz/cO27fPCYekD5eSp2bYe1z0Dnnr5AUyj4N7Bsj/8gyGR82eZQd0Qs5r/VF7sr2nbAtpdh62b/pgH+A2LKdJgx138zzWb7Wg66Ov0bZi4IT5mevtcNZsp0/03/dUdAvuA/rF5Y7X8/QOsUOGIhHLYQZs6BPbv9h0XbDti03r9h1qpV6JAjfDfOqpX9Wx1GU0OjP+/DafGR8mIx37U1c65/ZHr83/vWl+HVV/w5jif6Qk9Dkx+zFE/4gFJw/gtBd/HR6f/2S01o9WFs6gwfZuJBK5AFLUm5bBBwstCxG3bv8l8S2st8URiuCZOCujf6D+rGJv83O74Vxk/oa11yzj/yuf7vA9tfgXVryv+9TZ8FS//cl33mcR9qwiZN9eEhkfCtVa++4r88mcGsg4IvTUfCnHmhcNjg/w2eeAieeLBvJuBFJ8HFV+zbuehPoWG4xnJoKKcnm2fd1j288MpuXty2h5debefFbXvYvmeA5vEREjNjXFOCmBnxmGEGyXiMic0NtI5roLWlgQnNDcTsta+LxYy4GfF4jJbGBBOakoxrSjChuYEJTcngtUkScZ/2nXPkCo6ebJ5kPEZjcoQuNe3Y49/EpkwfXl96pse/Uby6xTeDx2L9B5ZOn1k++Djn3yxcAaYcMHhzay4YVPqnJ/xYi5bx/k26OPajqyN4A97t37AmTvL7LA4ufXlDX1DZ/JJ//aEL4LCj/aDSTA+sWw0vPAsvrvV1P+FNcOIpvmsA/H6ffAQe/4OvQz7X190Afp/jJvhlU3OolSr4Zl3sSogn/LIQbCvk/fZpM3zL1IHz/TnL5/wb65aNfmxLxx7o7vYfWj1d/lty8ffn83779ld8qAsz8+e/odG3PJR+4E2b6S9jnjnXd1M8+1T5D0WR0ZZsgOtuG8lB3goNw7W/hYaBdGVy7OrIsKujh7bODDs7eti6q4stuzrZsquLV9o62dWRIV+o37+jlsYEOOjO5vu1piTjMSY0JxnflKQhEfMtv85RcI54zAeRlsYELQ0JmpJxYkGoKQacZDxGMhGjIREnETcSsRiJuBGPxYiXphz6XpeI++3xmJFMxEjGYyTiMRoTMZqSCZoa4jQm45gFn43OUSi43t9tZsRivv7JeAyrVh9tLts3lmCscc5/g311iz/OKdP9PCbF5vdC3ge1rZt9i9a8w/w347DuTv+N8vlVfh/OAc4Pqm1q9mMmmsf7ZSHvg0ymu+9bePHba2eH78IrhiNX8PuIFcd5mN93JhO0jgXLXLavG9DMf1ueNNW3Rk2Y6Lf1dPmWp0xPcCVT8A02kfTruoPf39nuW+UG+nww83XJD93N2U887s9Bc4t/fbkwNhzTZvjxMvMO99/auzv92JaXnvff7BsafcA9fKEPeLlsX1fCqpUDjxkaDjPfqrZwiV8+tdyP6+ls718unvDdpfm8r2O5351s8KG20paylvF+LM1xJ/vfP9zuooEpNAyXQkPlnHN09uRo68zQ1plhR3sPr+7uYtvubl7d001Xxn8jLP6ldWVy7GzvYWdHhvZufTPbF/GY0dwQp6khQTIeI5cvkMs7coUCzsG4YvBp9MGn4PpCSME5H0Csr+UmETNisRiJknATft7bwlN8HosRM3rDkg9Ofr1zvmWnO5unO+NDW1PS17epIU5TMk5z6Hljwk9P5pzD51Af4Ir1ScRjZPMFsrk8PbkCuXyBpmSccU0+/I1v8leRZ/OObLC9GBSL2Spm1hvgfBC04Pc5nINEPEbTSLVC1UKxKX1fw11Ptw9JL2/wLTYNjXDAHDhglm96Tzb4D+HuTh98Mj2+9SaX6wsCTc3Q2BLqwmjs3zJWyPsBxFs3+1BWHOyaz/vA1NvClPAhZ/zEoKVskn++L7Pc5rI+KGYzQbdkEODad/c9ujsB6z84t3h5ecs4/6E973Bfp7BMDzz2O/jjY76eC46Dw4/x56B43Fs2+fAAvtVq2gw/Fqan27favfCsb8Xbsa2vazOb8ce84HhYfLIPQ4NdgbX3FBqGS6GhOjK5PJ09uX7f8jPZAm1dGdo6MrR19tDencOFZ7p0vrs0XyhQcJDLF+jsydHenWVPd5b2riy7uzLs6cqypytDuBEkETMaknGyucKAV5SINCZitI5rpLWlgXGNCfIFR77gw1ihTKuamWHFZSiExQxiMfPd4QVHvlAgX3AkYjEaEjEaknEaE7FQcKG3VSkes979AOTy/vW54Pc3Bq1cjcm431eiuIz1BrZCaJ99Ycy/vqUx4YNWY5KWpgSFgqM7m6cnmyeTC4WtQc5T8XgNHxp9q1mxBS1OY9IHsIZEnGQi1tvw0vv64D/FcU2958A5XNDi1xdEY/3qUjye4r9NuBWx+G9RbBFsSPhWwfhYbCUbHfvn5E5mFgM+C3wCmAdsA24DLnfOddSwahLwb3SvTcpzGFem9PAVnKOjO0fMoDEZ7ze+oSdXYE8QLvIFh0HwRm9k8wW6Mjk6e/yj2LXhgm/p+YILvvEWyAQBpPihki848nlH6TtcofcNrtD7AZDNO3J5//riN/Ke4Fu5w4U+fKz3eAoF/404k8v3foDIyOrJFdja1sXWtq5aV0VGUCwYM1XsVjTzYSyb961SxW7WYugAekMR+PeH5gbfZdnS6FvI8gXnW/eC/48LBUfeud79FVvqiq1lEG7t8+9LrS0NvY9YzOjoztIRvPdkcvneFkHwLWHNyTjNjQmaG/xj2sQmzlwyryrncEyHBuBa4G+AnwP/BhwV/LzYzN7unIZYj3UxMyY0v7afz8x8M3mymekTm2tQs5FRDDddPTlyeefHVgTN+EAQerK9wWegZvni2IniG51/Iyz0+3acK36jK/SFn+IbZHh9ODiZQVNDwo/XaPADXruzObozPiB1ZfzzrmyOnozvcohZ+BusBeGqQD7odknE+75VJ+IxujO+lam9O0tHd653MG3xPITHl4RbtIrH6Zzr7bLAUCvUGFZwPhD25ArAUFf0lA/kXZk8OxjdAeLDddC08QoN+8rMFgCfAX7mnPvL0Pp1wDeBs4Ef16h6IiMiGY+RbG5gYnP5vt3Wlv3rzqYuGKexr/vozOSC7rEMnZlcaJCr9Q5GLX1NcQxGsTug+G0y71zJGBAjl3dkcgUyOd+y5CgOcvXL4v7yoe6QeOjbarGlqSeXpyfr9xNu9crlCyXdJH37LobFYpdee/CtNhGP0ZTwVxU1JOP9LoUud16d6+vyKHa/FH93Nu/rkglaz4r16rv0OtgHxSEYLhiGEa4nveGzGERL9Ybg4DiNvm4Lh/93CJ+bsdou19xQvY/yMRsagA/j/zavK1l/E/A14DwUGkTGlJG4ksTMGNeYZFxjktlTRqabTGqvOP6h2K2YDQbJFq9CSsRjveNHimP9XHgMRvD6rkzet95lcnRl8v0G6SZDA4aLIbEQtNIVBykDvWNdzIyebN4PIu/ooa0rS6HgGNeUYFxjkpZG30rXG67wXSFdmVxvC2NnJs+kcdX7cjCWQ8MSoAAsD690znWb2cpgu4iI7AfMrLf7boCGuYqMa0oC++9N78byUNLZwKvOuXKdT5uAaWb2mj8dM7vIzErv9ygiIrLfG8uhoQUGHK3SHSrTj3PuRufcCaNWKxERkYgay6GhExhoTt+mUBkRERGpwFgODZvxXRDlgsMcfNdFpsw2ERERKWMsh4ZH8cf3hvBKM2sCFgEatyAiIjIMYzk03Iq/WuZzJes/jh/L8KOq10hERCTCxuwll865p83sBuBiM/sZ8Cv6ZoS8H83RICIiMixjNjQEPgesBy4CzgBeBa7H33tC88SKiIgMw5gODc65PP6eE/9W67qIiIhE3Vge0yAiIiIjSKFBREREKjKmuydGQiqVqnUVREREqsml0+myd39TS4OIiIhUxIq3AJXRZ2YrdF+LfafzODJ0HkeGzuPI0HkcGaN9HtXSICIiIhVRaBAREZGKKDRU1421rsAYofM4MnQeR4bO48jQeRwZo3oeNaZBREREKqKWBhEREamIQoOIiIhURKFhlJlZzMwuMbPVZtZtZhvM7N/MbFyt61ZvzOxwM7vazB42s21mtsfMVprZP5Q7X2Z2hJndaWY7zazDzH5nZqfUou71zsxazGydmTkz+1aZ7TqXAzCzKWb2r2b2XPD/8DYzu8/M3lRS7o1mdm/wd7vbzH5tZotqVe96YmbjzeyLZvZ0cH5eNbMHzexjZmYlZff782hml5nZ7Wb2QvD/7Pohyld8zsxstpn9IPg77jKzFWb2gYrrpjENo8vMvoG/HffPgf/B3577M8DvgLfrbpt9zOxrwKeBu4CHgSzwNuCDwFPAic65rqDsfGA5kAOuA9qAjwNHA6c75+6t+gHUMTP7V+ATwHjgBufcxaFtOpcDMLODgWX48/Y9YA3QChwD3O2c+0lQ7sSg3CagGMouBg4ATnbOPV3VitcRM4sB9wMnA/+J/3+7Bfgw8Abgn51zfx+U1XkEzMwBO4DHgeOB3c65eQOUrficmdkUYEWw7evARuAc4C3AXznn/mPIyjnn9BilB7AAKAA/LVn/GcAB59S6jvX0AE4AWsusvyY4XxeH1t0G5IFFoXXjgReBZwkCsR4O4Dh8IPh8cB6/VbJd53Lgc/c7YAMwa4hyy4HdwJzQujnBuntqfRw1PocnBX9315asbwBeAHbpPL7mnL0u9PyPwPpBylZ8zoB/Dv4t3h1aFw/2sR0YP1Td1D0xuj4MGP7bW9hNQCdwXtVrVMeccyucc21lNt0aLI8GCLoq3gMsc86tDL2+HfgucDiwZJSrGwlmFsf/vf0a+FmZ7TqXAzCzNwN/hv8m/LKZJc2spUy5Q/Hn6Hbn3Kbi+uD57cDbzWxmtepdhyYGy83hlc65DPAq0AE6j2HOuRcqKbcX5+wc4Hnn3C9CZfPA9cAU4F1D/U6FhtG1BN/SsDy80jnXDaxkP30z3gtzg+UrwfIYoBF4qEzZh4Olzq13CXAkvrmyHJ3LgRXfQF8ys18AXUCHma0xs3DgL56fgc6h4ZuY91fLgV3A35nZB8zsoGAMzVfx5+XKoJzO4/BVfM7MbBa+BeLhAcqG9zcghYbRNRt41TnXU2bbJmCamTVUuU6REnxTvhzfvP7jYPXsYLmpzEuK6+aMctXqnpkdAlwFXO2cWz9AMZ3LgR0RLG/Cfwv7KPDXQAa42cwuCLbrHA7CObcT35q1A98V9iKwGj9+6S+dczcFRXUeh28452xEzq9ujT26WoBygQGgO1QmU53qRNJ1wInAF51zzwbrik3E5c5td0mZ/dm3gXX4AU8D0bkc2IRguQd4W9Ccjpn9HN8X/xUz+090DivRju+bvwt4EB/CPg382MzOdM79Bp3HvTGcczYi51ehYXR14kepltMUKiNlmNmX8c3qNzrnvhraVDxnjWVepvMKBM3n7wDe7JzLDlJU53JgXcHylmJgAP/N2czuAj6Cb43QORyEmS3EB4VLnHPfCa2/BR8kbgqu4NF5HL7hnLMROb/qnhhdm/FdEOX+kebguy7UylCGmV0J/CPwH8AnSzYXB1SVa0orrivXBLdfCP7evg78CthiZocGA6YODoq0BusmoXM5mI3BckuZbS8Hy8noHA7lEvyH0u3hlc65TuCX+L/Leeg87o3hnLMROb8KDaPrUfw5fkN4pZk1AYvw18tKCTO7ArgC+AFwoQuuCwp5Gt/EdlKZl58YLPfnc9sMTAfOANaGHsuC7ecFP1+IzuVgigOY55bZVly3Ff//OQx8Dh3w2MhWLVKKH0jxMtsSoaXO4/BVfM6ccy/jQ8GJA5SFSv5fr/X1qGP5ASxk8Hkazqt1HevtgR/06PCBITZIudvxcwscG1pXnFtgDfv33AJJ4P1lHp8Kzu3/BD8frnM56HmcjL/WfSOh69eBWfg++jWhdY8GZWeH1s0O1t1b62Op8Xm8Nvi7+7uS9cWWrh1AQudxwPM31DwNFZ8z4F8YeJ6GncCEoeqjGSFHmZldj++X/zm+ufgo/AyRfwBOcZoRspeZfRo/o9lLwJfwgSvsFecHTBWvT16OnzXyWvz/IB/HB7UznHN3V6veUWFm8/ADI0tnhNS5HICZXQT8O/AM8P/wExJ9Ch8c/sI5d09Q7mTgPnzAuD54+WeAGcBS59yTVa563Qhm1XwcH8J+hH/vm4L/G5sHfNo5lw7K6jwCZnY+fd2Jn8H/3f1b8POLzrmbQ2UrPmdmNhXf8jAV34W5CT+f0FvxrbrfG7JytU5RY/2BT3FfwM+s1xP8I32dCmbe2t8ewPfxKXigx7KS8kcB/4W/BrwT+D1+au6aH0s9PvBv0K+ZEVLncsjzdhb+OvYO/JUU9wRvxqXlTgL+F98KsQe4Gziu1vWvhwcwHz+F9EZ8ON0NPACcpfNY9nwtq/R9cLjnDN9ddDN+Yq1ufKD7UKV1U0uDiIiIVEQDIUVERKQiCg0iIiJSEYUGERERqYhCg4iIiFREoUFEREQqotAgIiIiFVFoEBERkYroLpciMualUqkr8fczeVs6nV5W29qIRJdCg4gMKZVKVTILnD6QRcY4hQYRGY6rBtm2vlqVEJHaUGgQkYql0+kra10HEakdhQYRGXHhMQT4u/V9DjgSfzOd/wa+mE6nt5R53WH4O5yeCkzH31TnXuDL6XR6bZnycfzdEs8HjsbfDXAT/oY//zTAa94P/F1Qvht/A6ovpNPpTftyzCL7A109ISKj6RLgO8CTwHX4u71eADyYSqWmhwumUqklwArgPOBR4F/xd5c8F1iRSqVOKCnfAPwa+DZwIPBj4Jv4W/++HNVfmQAAAs1JREFUD1hapj4p4If4rpQbgD8CHwLuTaVSjft8tCJjnFoaRKRiQQtCOd3pdPprZdafDrwxnU4/EdrHtfiWh68Bfx2sM+AHwETgvHQ6/aNQ+Q8BPwF+mEqlXp9OpwvBpiuBtwO/AD6QTqd7Qq9pDPZV6p3AknQ6/XSo7I+BDwNnArcNePAiopYGERmWKwZ4XDpA+ZvDgSFwJdAGnBP6dn8yvvvioXBgAEin07cCvweOAP4MerslUkAX8MlwYAhe05NOp7eVqc83w4EhcFOwfMMAxyAiAbU0iEjF0um0DfMl95fZR1sqlVoJvAU4ClgJHBds/u0A+/ktPjAsBh7AB4xW4JF0Or15GPVZUWbdhmA5eRj7EdkvqaVBREbTKwOsLw6CbC1ZvjxA+eL6SSXL4Q5e3FVmXS5Yxoe5L5H9jkKDiIymGQOsnxks20qWM8uUBZhVUq744T9n76smIsOl0CAio+ktpStSqVQrsAh/ueOqYHVx3MNbB9hPcf3jwXI1Pjgck0qlZo9ERUVkaAoNIjKazk+lUotL1l2J7464JTSA8Q/4yzH/LJhHoVfw85uBNfgBkaTT6TyQBpqB75ReLplKpRpKL+kUkX2ngZAiUrFBLrkEuDOdTq8sWfc/wB9SqdRt+HEJfxY81hO64iKdTrtUKvVR4DfAralU6r/wrQlHAO/FTwr1kdDlluCntH4j8G5gTSqV+u+g3IHAO4C/Bb6/VwcqImUpNIjIcFwxyLb1+Cshwq4Ffo6fl+FDQDv+g/yL6XR6a7hgOp1+JJjg6R/x8y+8Gz8j5C34GSGfLSmfSaVS7wQ+CXwE+ChgwObgd/5++IcnIoMx5yq5eZ2ISOV0K2qRsUljGkRERKQiCg0iIiJSEYUGERERqYjGNIiIiEhF1NIgIiIiFVFoEBERkYooNIiIiEhFFBpERESkIgoNIiIiUhGFBhEREanI/wdDG0JRsDxDLgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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QkREBuSpMGGMWQR8G/gt8F+9Hl6Xvs3WDdG5LVv3RaHP4WkzZsxg3rx5AOy///68//3vxxjDvHnzqK+vp6mpiXPOOYc333wTYwzxeByABx98kJdffpm7774bgKamJt58802FCRERGZBnwoQx5krgSuAW4IIs0zOX47on3pvl8MPTtwONaSjEOTytrKy76BIIBLq+DwQCJBIJLr/8co477jjuuece6uvrOfbYYwG37sMNN9zAiSeeWIxmi4iIj3kiTBhjrgAWAbcC51lrU733sda2GGPuBz5hjFlgrV2WPrYauAB4E3g245x1wCRgi7V2y2DOMVgDdUVkenvTDuIJ93Knj6+hNBQc6tP3q6mpiSlTXBHm5ptv7tp+4okn8otf/ILjjz+eUCjEypUrmTJlClVVVcPaHhER8b+ihwljzMXAVcAa4GHg073WH9horX0off8bwPuBB40xPwJ24FavnAKc0qua8XFcd8lVuKDCIM4x7AIZrzXF8D/11772Nc455xyuv/56jj/++K7tF1xwAfX19Rx88MFYaxk/fjz33nvvsLdHRET8z+zi986dG2DMzcA5/ezyqLX22Iz99wW+R8/raizqvQy2MeZc0mHCWruo12M5nSObcDhsASKRSI/tr7/+Ovvuu+9Ah+9kzeYWovEEAHuOq6aitOj5bpca7M9NRER2uT5XGiz6O5e19lzg3Dz2fx34aA773QzcPJRz7AqZRZhiBzsREZHB8Oo6E7uNHt0cyhIiIuJDChNFpsqEiIj4ncJEkWUONlWWEBERP1KYKLKAKhMiIuJzChNFZjRmQkREfE5hosh6jJnYBetMiIiIFJrCRJEVszJRXV29a59QRERGJIWJItOYCRER8buiL1o1Il1wUs67jkl/5ew3D/T50GWXXca0adMIh8MALFq0CGMMjz32GNu2bSMej3PNNdfw0Y8OvF7XkiVLuPLKK5k4cSIvvfQSn/jEJ5g3bx4/+clPaG9v595772XmzJncf//9XHPNNXR0dDB27Fhuu+02Jk6cSGtrK5dccgnLly8nkUiwaNGinJ5XRET8R5WJEeSMM87gjjvu6Pr+zjvv5LzzzuOee+7hhRdeYPHixXz1q1/NuQKybNkyfvKTn7B8+XJuvfVWVq5cybPPPssFF1zADTfcAMBRRx3F008/zYsvvsgZZ5zB97//fQD+53/+h+OP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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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+OxnP8vBBx/M7Nmz+fnPfw7AmjVrmDdvHocddhgHH3wwjzzyCPl8nvPOO6+n7HXXXVfn2ouISNTo6oldcPLX7x6y577vy6fusMyvfvUrFi5cyLPPPsu6deuYM2cO8+bN44477uDkk0/mi1/8Ivl8no6ODhYuXMiqVat4/vnnAdi0adOQ1V1ERIYntTRE2J/+9CfOOuss4vE4kyZN4p3vfCdPPvkkc+bM4ZZbbuGqq65i0aJFjBo1in333Zdly5Zx6aWXcu+99zJ69Oh6V19ERCJGoSHCnCu/AOe8efN4+OGHmTp1Kueeey633XYb48aN49lnn+W4447jhhtu4IILLqhxbUVEJOrUPbELKulCKFq6ejPFVbbfuteYQbkkcd68efzwhz/kox/9KBs2bODhhx/mO9/5DitWrGDq1KlceOGFtLe38/TTT3PKKafQ1NTEBz7wAfbbbz/OO++8Xf79IiKye1FoqBEzKDYMOOd/3lXve9/7eOyxxzj00EMxM7797W8zefJkfvrTn/Kd73yHZDLJyJEjue2221i1ahXnn38+hUIBgGuuuWbXKyAiIrsV66+Je3eXSqUcQDqd7rN/8eLFHHjggVU/399e30yh4M/1fpNHE48N/56hnT1XIiJSV/1+rR3+n1wNwkL/BsppIiISRQoNNRLujlDrjoiIRJFCQ430CQ31q4aIiMhOU2ioEXVPiIhI1Ck01Ii6J0REJOoUGmokPC+DIoOIiESRQkONhK9fUUODiIhEkUJDjdSre2LkyJH9PvbKK69w8MEH16wuIiISbQoNNaLuCRERiTpNI70rLnh3xUWnVvvcP7637O7Pf/7zTJ8+nVQqBcBVV12FmfHwww+zceNGstksV199NaeffnpVv66rq4uLL76YBQsWkEgkuPbaazn++ON54YUXOP/888lkMhQKBX75y18yZcoUPvShD7Fy5Ury+Txf/vKX+fCHP1ztKxQRkYhRaIiYM888k8suu6wnNMyfP597772Xyy+/nNGjR7Nu3Trmzp3LaaedVtWiWDfccAMAixYtYsmSJZx00kksXbqUm266iU9/+tN85CMfIZPJkM/nueeee5gyZQp33303AJs3bx78FyoiIg1H3RMRc/jhh/Pmm2+yevVqnn32WcaNG8dee+3FFVdcwSGHHMKJJ57IqlWreOONN6p63j/96U+ce+65AMya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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "reload(ooo)\n",
    "ooo.plot_history(history, plot={'MSE' :['mse', 'val_mse'],\n",
    "                                'MAE' :['mae', 'val_mae'],\n",
    "                                'LOSS':['loss','val_loss']})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 7/ Restore a model :"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 7.1/ Reload model"
   ]
  },
  {
   "cell_type": "code",
Jean-Luc Parouty's avatar
Jean-Luc Parouty committed
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "dense (Dense)                (None, 64)                896       \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 64)                4160      \n",
      "_________________________________________________________________\n",
      "dense_2 (Dense)              (None, 1)                 65        \n",
      "=================================================================\n",
      "Total params: 5,121\n",
      "Trainable params: 5,121\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n",
      "Loaded.\n"
     ]
    }
   ],
   "source": [
    "loaded_model = tf.keras.models.load_model('./run/models/best_model.h5')\n",
    "loaded_model.summary()\n",
    "print(\"Loaded.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 7.2/ Evaluate it :"
   ]
  },
  {
   "cell_type": "code",
Jean-Luc Parouty's avatar
Jean-Luc Parouty committed
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "x_test / loss      : 12.2278\n",
      "x_test / mae       : 2.2441\n",
      "x_test / mse       : 12.2278\n"
     ]
    }
   ],
   "source": [
    "score = loaded_model.evaluate(x_test, y_test, verbose=0)\n",
    "\n",
    "print('x_test / loss      : {:5.4f}'.format(score[0]))\n",
    "print('x_test / mae       : {:5.4f}'.format(score[1]))\n",
    "print('x_test / mse       : {:5.4f}'.format(score[2]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 7.3/ Make a prediction"
   ]
  },
  {
   "cell_type": "code",
Jean-Luc Parouty's avatar
Jean-Luc Parouty committed
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
Jean-Luc Parouty's avatar
Jean-Luc Parouty committed
    "mon_test=[ 1.26425925, -0.48522739,  1.0436489 , -0.23112788,  1.37120745,\n",
    "       -2.14308942,  1.13489104, -1.06802005,  1.71189006,  1.57042287,\n",
    "        0.77859951,  0.14769795,  2.7585581 ]\n",
    "\n",
    "mon_test=np.array(mon_test).reshape(1,13)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Prédiction : 8.66 K$   Reality : 10.20 K$\n"
     ]
    }
   ],
   "source": [
    "\n",
    "predictions = loaded_model.predict( mon_test )\n",
    "print(\"Prédiction : {:.2f} K$   Reality : {:.2f} K$\".format(predictions[0][0], y_train[13]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "-----\n",
    "That's all folks !"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}