{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img width=\"800px\" src=\"../fidle/img/00-Fidle-header-01.svg\"></img>\n",
    "\n",
    "# <!-- TITLE --> [BHP2] - Regression with a Dense Network (DNN) - Advanced code\n",
    "  <!-- DESC -->  More advanced example of DNN network code - BHPD dataset\n",
    "  <!-- AUTHOR : Jean-Luc Parouty (CNRS/SIMaP) -->\n",
    "\n",
    "## Objectives :\n",
    " - Predicts **housing prices** from a set of house features. \n",
    " - Understanding the principle and the architecture of a regression with a dense neural network with backup and restore of the trained model. \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 these information :\n",
    "\n",
    " - CRIM: This is the per capita crime rate by town\n",
    " - ZN: This is the proportion of residential land zoned for lots larger than 25,000 sq.ft\n",
    " - INDUS: This is the proportion of non-retail business acres per town\n",
    " - CHAS: This is the Charles River dummy variable (this is equal to 1 if tract bounds river; 0 otherwise)\n",
    " - NOX: This is the nitric oxides concentration (parts per 10 million)\n",
    " - RM: This is the average number of rooms per dwelling\n",
    " - AGE: This is the proportion of owner-occupied units built prior to 1940\n",
    " - DIS: This is the weighted distances to five Boston employment centers\n",
    " - RAD: This is the index of accessibility to radial highways\n",
    " - TAX: This is the full-value property-tax rate per 10,000 dollars\n",
    " - PTRATIO: This is the pupil-teacher ratio by town\n",
    " - B: This is calculated as 1000(Bk — 0.63)^2, where Bk is the proportion of people of African American descent by town\n",
    " - LSTAT: This is the percentage lower status of the population\n",
    " - MEDV: This is the median value of owner-occupied homes in 1000 dollars\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": [
    "## Step 1 - Import and init"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>\n",
       "\n",
       "div.warn {    \n",
       "    background-color: #fcf2f2;\n",
       "    border-color: #dFb5b4;\n",
       "    border-left: 5px solid #dfb5b4;\n",
       "    padding: 0.5em;\n",
       "    font-weight: bold;\n",
       "    font-size: 1.1em;;\n",
       "    }\n",
       "\n",
       "\n",
       "\n",
       "div.nota {    \n",
       "    background-color: #DAFFDE;\n",
       "    border-left: 5px solid #92CC99;\n",
       "    padding: 0.5em;\n",
       "    }\n",
       "\n",
       "div.todo:before { content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1My44OTEyIiBoZWlnaHQ9IjE0My4zOTAyIiB2aWV3Qm94PSIwIDAgNTMuODkxMiAxNDMuMzkwMiI+PHRpdGxlPjAwLUJvYi10b2RvPC90aXRsZT48cGF0aCBkPSJNMjMuNDU2OCwxMTQuMzAxNmExLjgwNjMsMS44MDYzLDAsMSwxLDEuODE1NywxLjgyNEExLjgyMDksMS44MjA5LDAsMCwxLDIzLjQ1NjgsMTE0LjMwMTZabS0xMC42NjEyLDEuODIyQTEuODI3MiwxLjgyNzIsMCwxLDAsMTAuOTgsMTE0LjMsMS44MiwxLjgyLDAsMCwwLDEyLjc5NTYsMTE2LjEyMzZabS03LjcwNyw0LjU4NzR2LTVzLjQ4NjMtOS4xMjIzLDguMDIxNS0xMS45Njc1YTE5LjIwODIsMTkuMjA4MiwwLDAsMSw2LjA0ODYtMS4yNDU0LDE5LjE3NzgsMTkuMTc3OCwwLDAsMSw2LjA0ODcsMS4yNDc1YzcuNTM1MSwyLjgzNDcsOC4wMTc0LDExLjk2NzQsOC4wMTc0LDExLjk2NzR2NS4wMjM0bC4wMDQyLDcuNjgydjIuNGMuMDE2Ny4xOTkyLjAzMzYuMzkyMS4wMzM2LjU4NzEsMCwuMjEzOC0uMDE2OC40MTA5LS4wMzM2LjYzMzJ2LjA1ODdoLS4wMDg0YTguMzcxOSw4LjM3MTksMCwwLDEtNy4zNzM4LDcuNjU0N3MtLjk5NTMsMy42MzgtNi42OTMzLDMuNjM4LTYuNjkzNC0zLjYzOC02LjY5MzQtMy42MzhhOC4zNyw4LjM3LDAsMCwxLTcuMzcxNi03LjY1NDdINS4wODQzdi0uMDU4N2MtLjAxODktLjIyLS4wMjk0LS40MTk0LS4wMjk0LS42MzMyLDAtLjE5MjkuMDE2Ny0uMzgzNy4wMjk0LS41ODcxdi0yLjRtMTguMDkzNy00LjA0YTEuMTU2NSwxLjE1NjUsMCwxLDAtMi4zMTI2LDAsMS4xNTY0LDEuMTU2NCwwLDEsMCwyLjMxMjYsMFptNC4wODM0LDBhMS4xNTk1LDEuMTU5NSwwLDEsMC0xLjE2MzYsMS4xN0ExLjE3NSwxLjE3NSwwLDAsMCwyNy4yNjE0LDEyNC4zNzc5Wk05LjM3MzksMTE0LjYzNWMwLDMuMTA5MywyLjQxMzIsMy4zMSwyLjQxMzIsMy4zMWExMzMuOTI0MywxMzMuOTI0MywwLDAsMCwxNC43MzQ4LDBzMi40MTExLS4xOTI5LDIuNDExMS0zLjMxYTguMDc3Myw4LjA3NzMsMCwwLDAtMi40MTExLTUuNTUxOWMtNC41LTMuNTAzMy05LjkxMjYtMy41MDMzLTE0Ljc0MTEsMEE4LjA4NTEsOC4wODUxLDAsMCwwLDkuMzczOSwxMTQuNjM1WiIgc3R5bGU9ImZpbGw6IzAxMDEwMSIvPjxjaXJjbGUgY3g9IjMzLjE0MzYiIGN5PSIxMjQuNTM0IiByPSIzLjgzNjMiIHN0eWxlPSJmaWxsOiMwMTAxMDEiLz48cmVjdCB4PSIzNS42NjU5IiB5PSIxMTIuOTYyNSIgd2lkdGg9IjIuMDc3IiBoZWlnaHQ9IjEwLjU0NTgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIxLjYgMjQxLjExMjEpIHJvdGF0ZSgtMTU1Ljc0NikiIHN0eWxlPSJmaWxsOiMwMTAxMDEiLz48Y2lyY2xlIGN4PSIzOC44NzA0IiBjeT0iMTEzLjQyNzkiIHI9IjIuNDA4NSIgc3R5bGU9ImZpbGw6IzAxMDEwMSIvPjxjaXJjbGUgY3g9IjUuMjI0OCIgY3k9IjEyNC41MzQiIHI9IjMuODM2MyIgc3R5bGU9ImZpbGw6IzAxMDEwMSIvPjxyZWN0IHg9IjEuNDE2NCIgeT0iMTI0LjYzMDEiIHdpZHRoPSIyLjA3NyIgaGVpZ2h0PSIxMC41NDU4IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0LjkwOTcgMjU5LjgwNikgcm90YXRlKC0xODApIiBzdHlsZT0iZmlsbDojMDEwMTAxIi8+PGNpcmNsZSBjeD0iMi40MDkxIiBjeT0iMTM3LjA5OTYiIHI9IjIuNDA4NSIgc3R5bGU9ImZpbGw6IzAxMDEwMSIvPjxwYXRoIGQ9Ik0xOC4wNTExLDEwMC4xMDY2aC0uMDE0NlYxMDIuNjFoMi4zdi0yLjQyNzlhMi40MjI5LDIuNDIyOSwwLDEsMC0yLjI4NTQtLjA3NTVaIiBzdHlsZT0iZmlsbDojMDEwMTAxIi8+PHBhdGggZD0iTTM5LjQyMTQsMjcuMjU4djEuMDVBMTEuOTQ1MiwxMS45NDUyLDAsMCwwLDQ0LjU5NTQsNS43OWEuMjQ0OS4yNDQ5LDAsMCwxLS4wMjM1LS40MjI3TDQ2Ljc1LDMuOTUxNWEuMzg5Mi4zODkyLDAsMCwxLC40MjYyLDAsMTQuODQ0MiwxNC44NDQyLDAsMCwxLTcuNzU0MywyNy4yNTkxdjEuMDY3YS40NS40NSwwLDAsMS0uNzA0Ny4zNzU4bC0zLjg0MTktMi41MWEuNDUuNDUsMCwwLDEsMC0uNzUxNmwzLjg0MTktMi41MWEuNDUuNDUsMCwwLDEsLjY5NDYuMzc1OFpNNDMuMjMsMi41ODkyLDM5LjM4NzguMDc5NGEuNDUuNDUsMCwwLDAtLjcwNDYuMzc1OHYxLjA2N2ExNC44NDQyLDE0Ljg0NDIsMCwwLDAtNy43NTQzLDI3LjI1OTEuMzg5LjM4OSwwLDAsMCwuNDI2MSwwbDIuMTc3Ny0xLjQxOTNhLjI0NS4yNDUsMCwwLDAtLjAyMzUtLjQyMjgsMTEuOTQ1MSwxMS45NDUxLDAsMCwxLDUuMTc0LTIyLjUxNDZ2MS4wNWEuNDUuNDUsMCwwLDAsLjcwNDYuMzc1OGwzLjg1NTMtMi41MWEuNDUuNDUsMCwwLDAsMC0uNzUxNlpNMzkuMDUyMywxNC4yNDU4YTIuMTIwNiwyLjEyMDYsMCwxLDAsMi4xMjA2LDIuMTIwNmgwQTIuMTI0LDIuMTI0LDAsMCwwLDM5LjA1MjMsMTQuMjQ1OFptNi4wNzMyLTQuNzc4MS44MjU0LjgyNTVhMS4wNTY4LDEuMDU2OCwwLDAsMSwuMTE3NSwxLjM0MjFsLS44MDIsMS4xNDQyYTcuMTAxOCw3LjEwMTgsMCwwLDEsLjcxMTQsMS43MTEybDEuMzc1Ny4yNDE2YTEuMDU2OSwxLjA1NjksMCwwLDEsLjg3NTcsMS4wNHYxLjE2NDNhMS4wNTY5LDEuMDU2OSwwLDAsMS0uODc1NywxLjA0bC0xLjM3MjQuMjQxNkE3LjExLDcuMTEsMCwwLDEsNDUuMjcsMTkuOTNsLjgwMTksMS4xNDQyYTEuMDU3LDEuMDU3LDAsMCwxLS4xMTc0LDEuMzQyMmwtLjgyODguODQ4OWExLjA1NywxLjA1NywwLDAsMS0xLjM0MjEuMTE3NGwtMS4xNDQyLS44MDE5YTcuMTMzOCw3LjEzMzgsMCwwLDEtMS43MTEzLjcxMTNsLS4yNDE2LDEuMzcyNGExLjA1NjgsMS4wNTY4LDAsMCwxLTEuMDQuODc1N0gzOC40Njg0YTEuMDU2OCwxLjA1NjgsMCwwLDEtMS4wNC0uODc1N2wtLjI0MTYtMS4zNzI0YTcuMTM1NSw3LjEzNTUsMCwwLDEtMS43MTEzLS43MTEzbC0xLjE0NDEuODAxOWExLjA1NzEsMS4wNTcxLDAsMCwxLTEuMzQyMi0uMTE3NGwtLjgzNTUtLjgyNTVhMS4wNTcsMS4wNTcsMCwwLDEtLjExNzQtMS4zNDIxbC44MDE5LTEuMTQ0MmE3LjEyMSw3LjEyMSwwLDAsMS0uNzExMy0xLjcxMTJsLTEuMzcyNC0uMjQxNmExLjA1NjksMS4wNTY5LDAsMCwxLS44NzU3LTEuMDRWMTUuNzgyNmExLjA1NjksMS4wNTY5LDAsMCwxLC44NzU3LTEuMDRsMS4zNzU3LS4yNDE2YTcuMTEsNy4xMSwwLDAsMSwuNzExNC0xLjcxMTJsLS44MDItMS4xNDQyYTEuMDU3LDEuMDU3LDAsMCwxLC4xMTc1LTEuMzQyMmwuODI1NC0uODI1NEExLjA1NjgsMS4wNTY4LDAsMCwxLDM0LjMyNDUsOS4zNmwxLjE0NDIuODAxOUE3LjEzNTUsNy4xMzU1LDAsMCwxLDM3LjE4LDkuNDUxbC4yNDE2LTEuMzcyNGExLjA1NjgsMS4wNTY4LDAsMCwxLDEuMDQtLjg3NTdoMS4xNjc3YTEuMDU2OSwxLjA1NjksMCwwLDEsMS4wNC44NzU3bC4yNDE2LDEuMzcyNGE3LjEyNSw3LjEyNSwwLDAsMSwxLjcxMTIuNzExM0w0My43NjY2LDkuMzZBMS4wNTY5LDEuMDU2OSwwLDAsMSw0NS4xMjU1LDkuNDY3N1ptLTIuMDMsNi44OTg3QTQuMDQzMyw0LjA0MzMsMCwxLDAsMzkuMDUyMywyMC40MWgwQTQuMDQ2NSw0LjA0NjUsMCwwLDAsNDMuMDk1NSwxNi4zNjY0WiIgc3R5bGU9ImZpbGw6I2UxMjIyOSIvPjxwb2x5Z29uIHBvaW50cz0iMzkuNDEzIDM0Ljc1NyAzOS41MzcgMzQuNzU3IDM5LjY3NSAzNC43NTcgMzkuNjc1IDEwOS41MSAzOS41MzcgMTA5LjUxIDM5LjQxMyAxMDkuNTEgMzkuNDEzIDM0Ljc1NyAzOS40MTMgMzQuNzU3IiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojOTk5O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjMwODg1NDQ1MDU2MDE2MThweDtmaWxsLXJ1bGU6ZXZlbm9kZCIvPjwvc3ZnPg==);\n",
       "    float:left;\n",
       "    margin-right:20px;\n",
       "    margin-top:-20px;\n",
       "    margin-bottom:20px;\n",
       "}\n",
       "div.todo{\n",
       "    font-weight: bold;\n",
       "    font-size: 1.1em;\n",
       "    margin-top:40px;\n",
       "}\n",
       "div.todo ul{\n",
       "    margin: 0.2em;\n",
       "}\n",
       "div.todo li{\n",
       "    margin-left:60px;\n",
       "    margin-top:0;\n",
       "    margin-bottom:0;\n",
       "}\n",
       "\n",
       "\n",
       "</style>\n",
       "\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "FIDLE 2020 - Practical Work Module\n",
      "Version              : 0.56 DEV\n",
      "Run time             : Wednesday 9 September 2020, 10:45:46\n",
      "TensorFlow version   : 2.2.0\n",
      "Keras version        : 2.3.0-tf\n",
      "Current place        : Fidle at IDRIS\n",
      "Dataset dir          : /gpfswork/rech/mlh/commun/datasets\n",
      "Update keras cache   : Done\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,sys\n",
    "\n",
    "from IPython.display import Markdown\n",
    "from importlib import reload\n",
    "\n",
    "sys.path.append('..')\n",
    "import fidle.pwk as ooo\n",
    "\n",
    "place, dataset_dir = ooo.init(places={'MyLaptop':'/path/to/datasets'})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Step 2 - Retrieve data\n",
    "\n",
    "### 2.1 - Option 1  : 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": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "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": [
    "### 2.2 - Option 2 : From a csv file\n",
    "More fun !"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style  type=\"text/css\" >\n",
       "</style><table id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7\" ><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_da570864_f278_11ea_a3cd_0cc47af5c7c7level0_row0\" class=\"row_heading level0 row0\" >0</th>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row0_col0\" class=\"data row0 col0\" >0.01</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row0_col1\" class=\"data row0 col1\" >18.00</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row0_col2\" class=\"data row0 col2\" >2.31</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row0_col3\" class=\"data row0 col3\" >0.00</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row0_col4\" class=\"data row0 col4\" >0.54</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row0_col5\" class=\"data row0 col5\" >6.58</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row0_col6\" class=\"data row0 col6\" >65.20</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row0_col7\" class=\"data row0 col7\" >4.09</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row0_col8\" class=\"data row0 col8\" >1.00</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row0_col9\" class=\"data row0 col9\" >296.00</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row0_col10\" class=\"data row0 col10\" >15.30</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row0_col11\" class=\"data row0 col11\" >396.90</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row0_col12\" class=\"data row0 col12\" >4.98</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row0_col13\" class=\"data row0 col13\" >24.00</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7level0_row1\" class=\"row_heading level0 row1\" >1</th>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row1_col0\" class=\"data row1 col0\" >0.03</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row1_col1\" class=\"data row1 col1\" >0.00</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row1_col2\" class=\"data row1 col2\" >7.07</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row1_col3\" class=\"data row1 col3\" >0.00</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row1_col4\" class=\"data row1 col4\" >0.47</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row1_col5\" class=\"data row1 col5\" >6.42</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row1_col6\" class=\"data row1 col6\" >78.90</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row1_col7\" class=\"data row1 col7\" >4.97</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row1_col8\" class=\"data row1 col8\" >2.00</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row1_col9\" class=\"data row1 col9\" >242.00</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row1_col10\" class=\"data row1 col10\" >17.80</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row1_col11\" class=\"data row1 col11\" >396.90</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row1_col12\" class=\"data row1 col12\" >9.14</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row1_col13\" class=\"data row1 col13\" >21.60</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7level0_row2\" class=\"row_heading level0 row2\" >2</th>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row2_col0\" class=\"data row2 col0\" >0.03</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row2_col1\" class=\"data row2 col1\" >0.00</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row2_col2\" class=\"data row2 col2\" >7.07</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row2_col3\" class=\"data row2 col3\" >0.00</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row2_col4\" class=\"data row2 col4\" >0.47</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row2_col5\" class=\"data row2 col5\" >7.18</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row2_col6\" class=\"data row2 col6\" >61.10</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row2_col7\" class=\"data row2 col7\" >4.97</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row2_col8\" class=\"data row2 col8\" >2.00</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row2_col9\" class=\"data row2 col9\" >242.00</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row2_col10\" class=\"data row2 col10\" >17.80</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row2_col11\" class=\"data row2 col11\" >392.83</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row2_col12\" class=\"data row2 col12\" >4.03</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row2_col13\" class=\"data row2 col13\" >34.70</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7level0_row3\" class=\"row_heading level0 row3\" >3</th>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row3_col0\" class=\"data row3 col0\" >0.03</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row3_col1\" class=\"data row3 col1\" >0.00</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row3_col2\" class=\"data row3 col2\" >2.18</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row3_col3\" class=\"data row3 col3\" >0.00</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row3_col4\" class=\"data row3 col4\" >0.46</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row3_col5\" class=\"data row3 col5\" >7.00</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row3_col6\" class=\"data row3 col6\" >45.80</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row3_col7\" class=\"data row3 col7\" >6.06</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row3_col8\" class=\"data row3 col8\" >3.00</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row3_col9\" class=\"data row3 col9\" >222.00</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row3_col10\" class=\"data row3 col10\" >18.70</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row3_col11\" class=\"data row3 col11\" >394.63</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row3_col12\" class=\"data row3 col12\" >2.94</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row3_col13\" class=\"data row3 col13\" >33.40</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7level0_row4\" class=\"row_heading level0 row4\" >4</th>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row4_col0\" class=\"data row4 col0\" >0.07</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row4_col1\" class=\"data row4 col1\" >0.00</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row4_col2\" class=\"data row4 col2\" >2.18</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row4_col3\" class=\"data row4 col3\" >0.00</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row4_col4\" class=\"data row4 col4\" >0.46</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row4_col5\" class=\"data row4 col5\" >7.15</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row4_col6\" class=\"data row4 col6\" >54.20</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row4_col7\" class=\"data row4 col7\" >6.06</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row4_col8\" class=\"data row4 col8\" >3.00</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row4_col9\" class=\"data row4 col9\" >222.00</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row4_col10\" class=\"data row4 col10\" >18.70</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row4_col11\" class=\"data row4 col11\" >396.90</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row4_col12\" class=\"data row4 col12\" >5.33</td>\n",
       "                        <td id=\"T_da570864_f278_11ea_a3cd_0cc47af5c7c7row4_col13\" class=\"data row4 col13\" >36.20</td>\n",
       "            </tr>\n",
       "    </tbody></table>"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x153c0f2ab5d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Missing Data :  0   Shape is :  (506, 14)\n"
     ]
    }
   ],
   "source": [
    "data = pd.read_csv(f'{dataset_dir}/BHPD/BostonHousing.csv', header=0)\n",
    "\n",
    "display(data.head(5).style.format(\"{0:.2f}\"))\n",
    "print('Missing Data : ',data.isna().sum().sum(), '  Shape is : ', data.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Step 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",
   "execution_count": 4,
   "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",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style  type=\"text/css\" >\n",
       "</style><table id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7\" ><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_da5fe308_f278_11ea_a3cd_0cc47af5c7c7level0_row0\" class=\"row_heading level0 row0\" >count</th>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row0_col0\" class=\"data row0 col0\" >354.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row0_col1\" class=\"data row0 col1\" >354.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row0_col2\" class=\"data row0 col2\" >354.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row0_col3\" class=\"data row0 col3\" >354.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row0_col4\" class=\"data row0 col4\" >354.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row0_col5\" class=\"data row0 col5\" >354.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row0_col6\" class=\"data row0 col6\" >354.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row0_col7\" class=\"data row0 col7\" >354.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row0_col8\" class=\"data row0 col8\" >354.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row0_col9\" class=\"data row0 col9\" >354.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row0_col10\" class=\"data row0 col10\" >354.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row0_col11\" class=\"data row0 col11\" >354.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row0_col12\" class=\"data row0 col12\" >354.00</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7level0_row1\" class=\"row_heading level0 row1\" >mean</th>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row1_col0\" class=\"data row1 col0\" >3.24</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row1_col1\" class=\"data row1 col1\" >10.63</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row1_col2\" class=\"data row1 col2\" >11.34</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row1_col3\" class=\"data row1 col3\" >0.06</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row1_col4\" class=\"data row1 col4\" >0.56</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row1_col5\" class=\"data row1 col5\" >6.28</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row1_col6\" class=\"data row1 col6\" >69.69</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row1_col7\" class=\"data row1 col7\" >3.74</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row1_col8\" class=\"data row1 col8\" >9.27</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row1_col9\" class=\"data row1 col9\" >404.71</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row1_col10\" class=\"data row1 col10\" >18.54</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row1_col11\" class=\"data row1 col11\" >359.32</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row1_col12\" class=\"data row1 col12\" >12.54</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7level0_row2\" class=\"row_heading level0 row2\" >std</th>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row2_col0\" class=\"data row2 col0\" >7.34</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row2_col1\" class=\"data row2 col1\" >21.95</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row2_col2\" class=\"data row2 col2\" >7.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row2_col3\" class=\"data row2 col3\" >0.25</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row2_col4\" class=\"data row2 col4\" >0.11</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row2_col5\" class=\"data row2 col5\" >0.72</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row2_col6\" class=\"data row2 col6\" >27.79</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row2_col7\" class=\"data row2 col7\" >2.07</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row2_col8\" class=\"data row2 col8\" >8.60</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row2_col9\" class=\"data row2 col9\" >168.73</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row2_col10\" class=\"data row2 col10\" >2.16</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row2_col11\" class=\"data row2 col11\" >85.20</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row2_col12\" class=\"data row2 col12\" >7.02</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7level0_row3\" class=\"row_heading level0 row3\" >min</th>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row3_col0\" class=\"data row3 col0\" >0.01</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row3_col1\" class=\"data row3 col1\" >0.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row3_col2\" class=\"data row3 col2\" >0.46</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row3_col3\" class=\"data row3 col3\" >0.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row3_col4\" class=\"data row3 col4\" >0.39</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row3_col5\" class=\"data row3 col5\" >3.56</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row3_col6\" class=\"data row3 col6\" >2.90</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row3_col7\" class=\"data row3 col7\" >1.13</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row3_col8\" class=\"data row3 col8\" >1.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row3_col9\" class=\"data row3 col9\" >187.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row3_col10\" class=\"data row3 col10\" >12.60</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row3_col11\" class=\"data row3 col11\" >0.32</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row3_col12\" class=\"data row3 col12\" >1.73</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7level0_row4\" class=\"row_heading level0 row4\" >25%</th>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row4_col0\" class=\"data row4 col0\" >0.08</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row4_col1\" class=\"data row4 col1\" >0.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row4_col2\" class=\"data row4 col2\" >5.19</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row4_col3\" class=\"data row4 col3\" >0.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row4_col4\" class=\"data row4 col4\" >0.46</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row4_col5\" class=\"data row4 col5\" >5.91</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row4_col6\" class=\"data row4 col6\" >46.83</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row4_col7\" class=\"data row4 col7\" >2.11</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row4_col8\" class=\"data row4 col8\" >4.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row4_col9\" class=\"data row4 col9\" >277.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row4_col10\" class=\"data row4 col10\" >17.40</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row4_col11\" class=\"data row4 col11\" >374.59</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row4_col12\" class=\"data row4 col12\" >6.92</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7level0_row5\" class=\"row_heading level0 row5\" >50%</th>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row5_col0\" class=\"data row5 col0\" >0.24</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row5_col1\" class=\"data row5 col1\" >0.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row5_col2\" class=\"data row5 col2\" >9.69</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row5_col3\" class=\"data row5 col3\" >0.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row5_col4\" class=\"data row5 col4\" >0.54</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row5_col5\" class=\"data row5 col5\" >6.19</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row5_col6\" class=\"data row5 col6\" >79.45</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row5_col7\" class=\"data row5 col7\" >3.10</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row5_col8\" class=\"data row5 col8\" >5.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row5_col9\" class=\"data row5 col9\" >330.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row5_col10\" class=\"data row5 col10\" >19.10</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row5_col11\" class=\"data row5 col11\" >391.34</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row5_col12\" class=\"data row5 col12\" >11.17</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7level0_row6\" class=\"row_heading level0 row6\" >75%</th>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row6_col0\" class=\"data row6 col0\" >2.90</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row6_col1\" class=\"data row6 col1\" >12.50</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row6_col2\" class=\"data row6 col2\" >18.10</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row6_col3\" class=\"data row6 col3\" >0.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row6_col4\" class=\"data row6 col4\" >0.62</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row6_col5\" class=\"data row6 col5\" >6.63</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row6_col6\" class=\"data row6 col6\" >94.25</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row6_col7\" class=\"data row6 col7\" >5.08</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row6_col8\" class=\"data row6 col8\" >8.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row6_col9\" class=\"data row6 col9\" >666.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row6_col10\" class=\"data row6 col10\" >20.20</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row6_col11\" class=\"data row6 col11\" >395.76</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row6_col12\" class=\"data row6 col12\" >17.06</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7level0_row7\" class=\"row_heading level0 row7\" >max</th>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row7_col0\" class=\"data row7 col0\" >73.53</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row7_col1\" class=\"data row7 col1\" >100.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row7_col2\" class=\"data row7 col2\" >27.74</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row7_col3\" class=\"data row7 col3\" >1.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row7_col4\" class=\"data row7 col4\" >0.87</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row7_col5\" class=\"data row7 col5\" >8.72</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row7_col6\" class=\"data row7 col6\" >100.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row7_col7\" class=\"data row7 col7\" >12.13</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row7_col8\" class=\"data row7 col8\" >24.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row7_col9\" class=\"data row7 col9\" >711.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row7_col10\" class=\"data row7 col10\" >22.00</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row7_col11\" class=\"data row7 col11\" >396.90</td>\n",
       "                        <td id=\"T_da5fe308_f278_11ea_a3cd_0cc47af5c7c7row7_col12\" class=\"data row7 col12\" >37.97</td>\n",
       "            </tr>\n",
       "    </tbody></table>"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x153b8aded2d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<style  type=\"text/css\" >\n",
       "</style><table id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7\" ><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_da6798c8_f278_11ea_a3cd_0cc47af5c7c7level0_row0\" class=\"row_heading level0 row0\" >count</th>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row0_col0\" class=\"data row0 col0\" >354.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row0_col1\" class=\"data row0 col1\" >354.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row0_col2\" class=\"data row0 col2\" >354.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row0_col3\" class=\"data row0 col3\" >354.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row0_col4\" class=\"data row0 col4\" >354.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row0_col5\" class=\"data row0 col5\" >354.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row0_col6\" class=\"data row0 col6\" >354.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row0_col7\" class=\"data row0 col7\" >354.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row0_col8\" class=\"data row0 col8\" >354.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row0_col9\" class=\"data row0 col9\" >354.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row0_col10\" class=\"data row0 col10\" >354.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row0_col11\" class=\"data row0 col11\" >354.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row0_col12\" class=\"data row0 col12\" >354.00</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7level0_row1\" class=\"row_heading level0 row1\" >mean</th>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row1_col0\" class=\"data row1 col0\" >0.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row1_col1\" class=\"data row1 col1\" >0.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row1_col2\" class=\"data row1 col2\" >0.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row1_col3\" class=\"data row1 col3\" >0.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row1_col4\" class=\"data row1 col4\" >-0.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row1_col5\" class=\"data row1 col5\" >-0.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row1_col6\" class=\"data row1 col6\" >0.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row1_col7\" class=\"data row1 col7\" >-0.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row1_col8\" class=\"data row1 col8\" >0.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row1_col9\" class=\"data row1 col9\" >-0.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row1_col10\" class=\"data row1 col10\" >0.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row1_col11\" class=\"data row1 col11\" >0.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row1_col12\" class=\"data row1 col12\" >0.00</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7level0_row2\" class=\"row_heading level0 row2\" >std</th>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row2_col0\" class=\"data row2 col0\" >1.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row2_col1\" class=\"data row2 col1\" >1.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row2_col2\" class=\"data row2 col2\" >1.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row2_col3\" class=\"data row2 col3\" >1.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row2_col4\" class=\"data row2 col4\" >1.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row2_col5\" class=\"data row2 col5\" >1.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row2_col6\" class=\"data row2 col6\" >1.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row2_col7\" class=\"data row2 col7\" >1.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row2_col8\" class=\"data row2 col8\" >1.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row2_col9\" class=\"data row2 col9\" >1.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row2_col10\" class=\"data row2 col10\" >1.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row2_col11\" class=\"data row2 col11\" >1.00</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row2_col12\" class=\"data row2 col12\" >1.00</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7level0_row3\" class=\"row_heading level0 row3\" >min</th>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row3_col0\" class=\"data row3 col0\" >-0.44</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row3_col1\" class=\"data row3 col1\" >-0.48</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row3_col2\" class=\"data row3 col2\" >-1.56</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row3_col3\" class=\"data row3 col3\" >-0.26</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row3_col4\" class=\"data row3 col4\" >-1.46</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row3_col5\" class=\"data row3 col5\" >-3.81</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row3_col6\" class=\"data row3 col6\" >-2.40</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row3_col7\" class=\"data row3 col7\" >-1.26</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row3_col8\" class=\"data row3 col8\" >-0.96</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row3_col9\" class=\"data row3 col9\" >-1.29</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row3_col10\" class=\"data row3 col10\" >-2.75</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row3_col11\" class=\"data row3 col11\" >-4.21</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row3_col12\" class=\"data row3 col12\" >-1.54</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7level0_row4\" class=\"row_heading level0 row4\" >25%</th>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row4_col0\" class=\"data row4 col0\" >-0.43</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row4_col1\" class=\"data row4 col1\" >-0.48</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row4_col2\" class=\"data row4 col2\" >-0.88</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row4_col3\" class=\"data row4 col3\" >-0.26</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row4_col4\" class=\"data row4 col4\" >-0.87</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row4_col5\" class=\"data row4 col5\" >-0.53</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row4_col6\" class=\"data row4 col6\" >-0.82</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row4_col7\" class=\"data row4 col7\" >-0.79</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row4_col8\" class=\"data row4 col8\" >-0.61</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row4_col9\" class=\"data row4 col9\" >-0.76</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row4_col10\" class=\"data row4 col10\" >-0.53</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row4_col11\" class=\"data row4 col11\" >0.18</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row4_col12\" class=\"data row4 col12\" >-0.80</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7level0_row5\" class=\"row_heading level0 row5\" >50%</th>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row5_col0\" class=\"data row5 col0\" >-0.41</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row5_col1\" class=\"data row5 col1\" >-0.48</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row5_col2\" class=\"data row5 col2\" >-0.24</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row5_col3\" class=\"data row5 col3\" >-0.26</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row5_col4\" class=\"data row5 col4\" >-0.16</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row5_col5\" class=\"data row5 col5\" >-0.12</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row5_col6\" class=\"data row5 col6\" >0.35</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row5_col7\" class=\"data row5 col7\" >-0.31</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row5_col8\" class=\"data row5 col8\" >-0.50</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row5_col9\" class=\"data row5 col9\" >-0.44</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row5_col10\" class=\"data row5 col10\" >0.26</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row5_col11\" class=\"data row5 col11\" >0.38</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row5_col12\" class=\"data row5 col12\" >-0.19</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7level0_row6\" class=\"row_heading level0 row6\" >75%</th>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row6_col0\" class=\"data row6 col0\" >-0.05</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row6_col1\" class=\"data row6 col1\" >0.09</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row6_col2\" class=\"data row6 col2\" >0.97</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row6_col3\" class=\"data row6 col3\" >-0.26</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row6_col4\" class=\"data row6 col4\" >0.61</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row6_col5\" class=\"data row6 col5\" >0.49</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row6_col6\" class=\"data row6 col6\" >0.88</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row6_col7\" class=\"data row6 col7\" >0.65</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row6_col8\" class=\"data row6 col8\" >-0.15</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row6_col9\" class=\"data row6 col9\" >1.55</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row6_col10\" class=\"data row6 col10\" >0.77</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row6_col11\" class=\"data row6 col11\" >0.43</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row6_col12\" class=\"data row6 col12\" >0.64</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7level0_row7\" class=\"row_heading level0 row7\" >max</th>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row7_col0\" class=\"data row7 col0\" >9.58</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row7_col1\" class=\"data row7 col1\" >4.07</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row7_col2\" class=\"data row7 col2\" >2.34</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row7_col3\" class=\"data row7 col3\" >3.79</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row7_col4\" class=\"data row7 col4\" >2.82</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row7_col5\" class=\"data row7 col5\" >3.42</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row7_col6\" class=\"data row7 col6\" >1.09</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row7_col7\" class=\"data row7 col7\" >4.05</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row7_col8\" class=\"data row7 col8\" >1.71</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row7_col9\" class=\"data row7 col9\" >1.82</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row7_col10\" class=\"data row7 col10\" >1.60</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row7_col11\" class=\"data row7 col11\" >0.44</td>\n",
       "                        <td id=\"T_da6798c8_f278_11ea_a3cd_0cc47af5c7c7row7_col12\" class=\"data row7 col12\" >3.62</td>\n",
       "            </tr>\n",
       "    </tbody></table>"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x153b8adbe050>"
      ]
     },
     "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": [
    "## Step 4 - Build a model\n",
    "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",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "  def get_model_v1(shape):\n",
    "    \n",
    "    model = keras.models.Sequential()\n",
    "    model.add(keras.layers.Input(shape, name=\"InputLayer\"))\n",
    "    model.add(keras.layers.Dense(64, activation='relu', name='Dense_n1'))\n",
    "    model.add(keras.layers.Dense(64, activation='relu', name='Dense_n2'))\n",
    "    model.add(keras.layers.Dense(1, name='Output'))\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",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "Dense_n1 (Dense)             (None, 64)                896       \n",
      "_________________________________________________________________\n",
      "Dense_n2 (Dense)             (None, 64)                4160      \n",
      "_________________________________________________________________\n",
      "Output (Dense)               (None, 1)                 65        \n",
      "=================================================================\n",
      "Total params: 5,121\n",
      "Trainable params: 5,121\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n",
      "Failed to import pydot. You must install pydot and graphviz for `pydotprint` to work.\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "None"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model=get_model_v1( (13,) )\n",
    "\n",
    "model.summary()\n",
    "img=keras.utils.plot_model( model, to_file='./run/model.png', show_shapes=True, show_layer_names=True, dpi=96)\n",
    "display(img)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 5.2 - Add callback"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "os.makedirs('./run/models',   mode=0o750, exist_ok=True)\n",
    "save_dir = \"./run/models/best_model.h5\"\n",
    "\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",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/100\n",
      "36/36 [==============================] - 0s 10ms/step - loss: 493.8600 - mae: 20.1628 - mse: 493.8600 - val_loss: 344.0921 - val_mae: 16.4232 - val_mse: 344.0921\n",
      "Epoch 2/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 271.4029 - mae: 13.9558 - mse: 271.4029 - val_loss: 135.1553 - val_mae: 9.4587 - val_mse: 135.1553\n",
      "Epoch 3/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 98.2466 - mae: 7.5100 - mse: 98.2466 - val_loss: 66.5462 - val_mae: 6.2643 - val_mse: 66.5462\n",
      "Epoch 4/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 49.8627 - mae: 5.1989 - mse: 49.8627 - val_loss: 44.7207 - val_mae: 5.0417 - val_mse: 44.7207\n",
      "Epoch 5/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 32.4176 - mae: 4.1260 - mse: 32.4176 - val_loss: 32.3549 - val_mae: 4.2057 - val_mse: 32.3549\n",
      "Epoch 6/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 24.6088 - mae: 3.4733 - mse: 24.6088 - val_loss: 27.5344 - val_mae: 3.8070 - val_mse: 27.5344\n",
      "Epoch 7/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 20.7117 - mae: 3.2537 - mse: 20.7117 - val_loss: 24.9330 - val_mae: 3.5383 - val_mse: 24.9330\n",
      "Epoch 8/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 18.2772 - mae: 3.0100 - mse: 18.2772 - val_loss: 23.2481 - val_mae: 3.3901 - val_mse: 23.2481\n",
      "Epoch 9/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 16.4003 - mae: 2.8432 - mse: 16.4003 - val_loss: 21.9234 - val_mae: 3.2054 - val_mse: 21.9234\n",
      "Epoch 10/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 15.1889 - mae: 2.7275 - mse: 15.1889 - val_loss: 22.4510 - val_mae: 3.2592 - val_mse: 22.4510\n",
      "Epoch 11/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 13.8576 - mae: 2.6184 - mse: 13.8576 - val_loss: 20.2455 - val_mae: 3.0453 - val_mse: 20.2455\n",
      "Epoch 12/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 12.8444 - mae: 2.5178 - mse: 12.8444 - val_loss: 24.1662 - val_mae: 3.3867 - val_mse: 24.1662\n",
      "Epoch 13/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 12.5199 - mae: 2.4892 - mse: 12.5199 - val_loss: 20.2512 - val_mae: 3.0096 - val_mse: 20.2512\n",
      "Epoch 14/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 11.7703 - mae: 2.3801 - mse: 11.7703 - val_loss: 19.5756 - val_mae: 2.9569 - val_mse: 19.5756\n",
      "Epoch 15/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 11.4068 - mae: 2.3343 - mse: 11.4068 - val_loss: 19.8973 - val_mae: 2.9276 - val_mse: 19.8973\n",
      "Epoch 16/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 10.8153 - mae: 2.3001 - mse: 10.8153 - val_loss: 19.1401 - val_mae: 2.8576 - val_mse: 19.1401\n",
      "Epoch 17/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 10.5820 - mae: 2.2517 - mse: 10.5820 - val_loss: 19.8560 - val_mae: 2.9379 - val_mse: 19.8560\n",
      "Epoch 18/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 10.1091 - mae: 2.2229 - mse: 10.1091 - val_loss: 19.5092 - val_mae: 2.8537 - val_mse: 19.5092\n",
      "Epoch 19/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 10.1551 - mae: 2.1879 - mse: 10.1551 - val_loss: 19.4200 - val_mae: 2.8337 - val_mse: 19.4200\n",
      "Epoch 20/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 9.7575 - mae: 2.1486 - mse: 9.7575 - val_loss: 19.8508 - val_mae: 2.8520 - val_mse: 19.8508\n",
      "Epoch 21/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 9.5391 - mae: 2.1334 - mse: 9.5391 - val_loss: 19.6073 - val_mae: 2.8094 - val_mse: 19.6073\n",
      "Epoch 22/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 9.5457 - mae: 2.1677 - mse: 9.5457 - val_loss: 19.4711 - val_mae: 2.8027 - val_mse: 19.4711\n",
      "Epoch 23/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 9.4080 - mae: 2.1558 - mse: 9.4080 - val_loss: 19.0961 - val_mae: 2.7937 - val_mse: 19.0961\n",
      "Epoch 24/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 9.0595 - mae: 2.0982 - mse: 9.0595 - val_loss: 18.5873 - val_mae: 2.7763 - val_mse: 18.5873\n",
      "Epoch 25/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 8.8593 - mae: 2.1166 - mse: 8.8593 - val_loss: 20.5131 - val_mae: 2.8059 - val_mse: 20.5131\n",
      "Epoch 26/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 8.9069 - mae: 2.0790 - mse: 8.9069 - val_loss: 18.8169 - val_mae: 2.7318 - val_mse: 18.8169\n",
      "Epoch 27/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 8.6986 - mae: 2.0321 - mse: 8.6986 - val_loss: 18.8858 - val_mae: 2.7567 - val_mse: 18.8858\n",
      "Epoch 28/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 8.6039 - mae: 2.0581 - mse: 8.6039 - val_loss: 18.5083 - val_mae: 2.7327 - val_mse: 18.5083\n",
      "Epoch 29/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 8.4062 - mae: 2.0187 - mse: 8.4062 - val_loss: 18.5227 - val_mae: 2.7294 - val_mse: 18.5227\n",
      "Epoch 30/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 8.5707 - mae: 2.0294 - mse: 8.5707 - val_loss: 19.1018 - val_mae: 2.7214 - val_mse: 19.1018\n",
      "Epoch 31/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 8.2422 - mae: 1.9886 - mse: 8.2422 - val_loss: 18.4019 - val_mae: 2.7168 - val_mse: 18.4019\n",
      "Epoch 32/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.9650 - mae: 1.9721 - mse: 7.9650 - val_loss: 17.9165 - val_mae: 2.6871 - val_mse: 17.9165\n",
      "Epoch 33/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 8.0356 - mae: 1.9331 - mse: 8.0356 - val_loss: 20.1362 - val_mae: 2.8835 - val_mse: 20.1362\n",
      "Epoch 34/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 8.1133 - mae: 1.9798 - mse: 8.1133 - val_loss: 18.7192 - val_mae: 2.7234 - val_mse: 18.7192\n",
      "Epoch 35/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.8014 - mae: 1.9488 - mse: 7.8014 - val_loss: 19.4508 - val_mae: 2.7816 - val_mse: 19.4508\n",
      "Epoch 36/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.8598 - mae: 1.9583 - mse: 7.8598 - val_loss: 19.5103 - val_mae: 2.9375 - val_mse: 19.5103\n",
      "Epoch 37/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.7984 - mae: 1.9296 - mse: 7.7984 - val_loss: 19.4718 - val_mae: 2.7538 - val_mse: 19.4718\n",
      "Epoch 38/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.5976 - mae: 1.9239 - mse: 7.5976 - val_loss: 19.2051 - val_mae: 2.7307 - val_mse: 19.2051\n",
      "Epoch 39/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.6630 - mae: 1.9172 - mse: 7.6630 - val_loss: 18.6308 - val_mae: 2.7413 - val_mse: 18.6308\n",
      "Epoch 40/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.4104 - mae: 1.8826 - mse: 7.4104 - val_loss: 17.8465 - val_mae: 2.7210 - val_mse: 17.8465\n",
      "Epoch 41/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.4981 - mae: 1.8841 - mse: 7.4981 - val_loss: 19.4714 - val_mae: 2.7838 - val_mse: 19.4714\n",
      "Epoch 42/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.3673 - mae: 1.8906 - mse: 7.3673 - val_loss: 17.8742 - val_mae: 2.6332 - val_mse: 17.8742\n",
      "Epoch 43/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.3283 - mae: 1.8515 - mse: 7.3283 - val_loss: 18.3729 - val_mae: 2.6627 - val_mse: 18.3729\n",
      "Epoch 44/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.1782 - mae: 1.8650 - mse: 7.1782 - val_loss: 20.5136 - val_mae: 3.0215 - val_mse: 20.5136\n",
      "Epoch 45/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.2115 - mae: 1.8789 - mse: 7.2115 - val_loss: 17.6324 - val_mae: 2.6560 - val_mse: 17.6324\n",
      "Epoch 46/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.9389 - mae: 1.8178 - mse: 6.9389 - val_loss: 17.7074 - val_mae: 2.7116 - val_mse: 17.7074\n",
      "Epoch 47/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.1571 - mae: 1.8432 - mse: 7.1571 - val_loss: 17.9549 - val_mae: 2.6420 - val_mse: 17.9549\n",
      "Epoch 48/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.0388 - mae: 1.8194 - mse: 7.0388 - val_loss: 18.3145 - val_mae: 2.8232 - val_mse: 18.3145\n",
      "Epoch 49/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.9670 - mae: 1.8063 - mse: 6.9670 - val_loss: 17.6338 - val_mae: 2.6524 - val_mse: 17.6338\n",
      "Epoch 50/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.8445 - mae: 1.7940 - mse: 6.8445 - val_loss: 16.7234 - val_mae: 2.6413 - val_mse: 16.7234\n",
      "Epoch 51/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.9393 - mae: 1.8154 - mse: 6.9393 - val_loss: 18.0841 - val_mae: 2.8057 - val_mse: 18.0841\n",
      "Epoch 52/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.7668 - mae: 1.7698 - mse: 6.7668 - val_loss: 18.0858 - val_mae: 2.7448 - val_mse: 18.0858\n",
      "Epoch 53/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.6034 - mae: 1.7724 - mse: 6.6034 - val_loss: 16.6955 - val_mae: 2.6054 - val_mse: 16.6955\n",
      "Epoch 54/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.7387 - mae: 1.7751 - mse: 6.7387 - val_loss: 20.1177 - val_mae: 2.8366 - val_mse: 20.1177\n",
      "Epoch 55/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.4552 - mae: 1.7589 - mse: 6.4552 - val_loss: 17.7537 - val_mae: 2.6217 - val_mse: 17.7537\n",
      "Epoch 56/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.4993 - mae: 1.7678 - mse: 6.4993 - val_loss: 17.1823 - val_mae: 2.6101 - val_mse: 17.1823\n",
      "Epoch 57/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.4921 - mae: 1.7340 - mse: 6.4921 - val_loss: 19.8667 - val_mae: 3.0042 - val_mse: 19.8667\n",
      "Epoch 58/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.5311 - mae: 1.7701 - mse: 6.5311 - val_loss: 16.7387 - val_mae: 2.6019 - val_mse: 16.7387\n",
      "Epoch 59/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.2846 - mae: 1.6964 - mse: 6.2846 - val_loss: 16.7143 - val_mae: 2.6060 - val_mse: 16.7143\n",
      "Epoch 60/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.3824 - mae: 1.7143 - mse: 6.3824 - val_loss: 16.2439 - val_mae: 2.6744 - val_mse: 16.2439\n",
      "Epoch 61/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.2568 - mae: 1.7032 - mse: 6.2568 - val_loss: 16.7933 - val_mae: 2.6208 - val_mse: 16.7933\n",
      "Epoch 62/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.3085 - mae: 1.7262 - mse: 6.3085 - val_loss: 16.5479 - val_mae: 2.5937 - val_mse: 16.5479\n",
      "Epoch 63/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.2031 - mae: 1.6910 - mse: 6.2031 - val_loss: 16.2833 - val_mae: 2.6115 - val_mse: 16.2833\n",
      "Epoch 64/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.0996 - mae: 1.7162 - mse: 6.0996 - val_loss: 18.4672 - val_mae: 2.9381 - val_mse: 18.4672\n",
      "Epoch 65/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.1800 - mae: 1.7108 - mse: 6.1800 - val_loss: 17.0333 - val_mae: 2.7235 - val_mse: 17.0333\n",
      "Epoch 66/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.0228 - mae: 1.6654 - mse: 6.0228 - val_loss: 18.1264 - val_mae: 2.8055 - val_mse: 18.1264\n",
      "Epoch 67/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.1494 - mae: 1.6927 - mse: 6.1494 - val_loss: 17.0323 - val_mae: 2.6064 - val_mse: 17.0323\n",
      "Epoch 68/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.9137 - mae: 1.6858 - mse: 5.9137 - val_loss: 17.1055 - val_mae: 2.6391 - val_mse: 17.1055\n",
      "Epoch 69/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.0769 - mae: 1.6926 - mse: 6.0769 - val_loss: 16.8573 - val_mae: 2.6361 - val_mse: 16.8573\n",
      "Epoch 70/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.8309 - mae: 1.6378 - mse: 5.8309 - val_loss: 17.2946 - val_mae: 2.6609 - val_mse: 17.2946\n",
      "Epoch 71/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.9778 - mae: 1.7016 - mse: 5.9778 - val_loss: 15.9038 - val_mae: 2.5838 - val_mse: 15.9038\n",
      "Epoch 72/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.8563 - mae: 1.6335 - mse: 5.8563 - val_loss: 17.4159 - val_mae: 2.6298 - val_mse: 17.4159\n",
      "Epoch 73/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.7478 - mae: 1.6517 - mse: 5.7478 - val_loss: 16.3856 - val_mae: 2.5893 - val_mse: 16.3856\n",
      "Epoch 74/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.6123 - mae: 1.6471 - mse: 5.6123 - val_loss: 16.3227 - val_mae: 2.6746 - val_mse: 16.3227\n",
      "Epoch 75/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.6092 - mae: 1.6309 - mse: 5.6092 - val_loss: 16.3552 - val_mae: 2.5841 - val_mse: 16.3552\n",
      "Epoch 76/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.7278 - mae: 1.6690 - mse: 5.7278 - val_loss: 16.2516 - val_mae: 2.5807 - val_mse: 16.2516\n",
      "Epoch 77/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.5015 - mae: 1.6626 - mse: 5.5015 - val_loss: 16.2511 - val_mae: 2.6601 - val_mse: 16.2511\n",
      "Epoch 78/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.6931 - mae: 1.6550 - mse: 5.6931 - val_loss: 16.6842 - val_mae: 2.6523 - val_mse: 16.6842\n",
      "Epoch 79/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.4391 - mae: 1.6007 - mse: 5.4391 - val_loss: 18.1906 - val_mae: 2.7731 - val_mse: 18.1906\n",
      "Epoch 80/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.4225 - mae: 1.6033 - mse: 5.4225 - val_loss: 15.6912 - val_mae: 2.5630 - val_mse: 15.6912\n",
      "Epoch 81/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.5329 - mae: 1.6150 - mse: 5.5329 - val_loss: 16.4829 - val_mae: 2.6005 - val_mse: 16.4829\n",
      "Epoch 82/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.3777 - mae: 1.5899 - mse: 5.3777 - val_loss: 16.6022 - val_mae: 2.6415 - val_mse: 16.6022\n",
      "Epoch 83/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.3488 - mae: 1.6064 - mse: 5.3488 - val_loss: 15.7812 - val_mae: 2.6189 - val_mse: 15.7812\n",
      "Epoch 84/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.4109 - mae: 1.6151 - mse: 5.4109 - val_loss: 16.1101 - val_mae: 2.6002 - val_mse: 16.1101\n",
      "Epoch 85/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.2320 - mae: 1.5687 - mse: 5.2320 - val_loss: 17.5305 - val_mae: 2.7975 - val_mse: 17.5305\n",
      "Epoch 86/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.2325 - mae: 1.5457 - mse: 5.2325 - val_loss: 18.4276 - val_mae: 2.7352 - val_mse: 18.4276\n",
      "Epoch 87/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.2545 - mae: 1.5747 - mse: 5.2545 - val_loss: 17.2209 - val_mae: 2.7965 - val_mse: 17.2209\n",
      "Epoch 88/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.3344 - mae: 1.6059 - mse: 5.3344 - val_loss: 15.7674 - val_mae: 2.5888 - val_mse: 15.7674\n",
      "Epoch 89/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.2197 - mae: 1.5489 - mse: 5.2197 - val_loss: 16.0532 - val_mae: 2.5752 - val_mse: 16.0532\n",
      "Epoch 90/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.0072 - mae: 1.5649 - mse: 5.0072 - val_loss: 18.6302 - val_mae: 3.0371 - val_mse: 18.6302\n",
      "Epoch 91/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 4.9996 - mae: 1.5426 - mse: 4.9996 - val_loss: 17.1384 - val_mae: 2.8235 - val_mse: 17.1384\n",
      "Epoch 92/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.0666 - mae: 1.5521 - mse: 5.0666 - val_loss: 16.0273 - val_mae: 2.6984 - val_mse: 16.0273\n",
      "Epoch 93/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.0523 - mae: 1.5273 - mse: 5.0523 - val_loss: 15.9783 - val_mae: 2.5942 - val_mse: 15.9783\n",
      "Epoch 94/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 4.9561 - mae: 1.5317 - mse: 4.9561 - val_loss: 17.4211 - val_mae: 2.7392 - val_mse: 17.4211\n",
      "Epoch 95/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 4.7807 - mae: 1.5195 - mse: 4.7807 - val_loss: 17.4444 - val_mae: 2.6350 - val_mse: 17.4444\n",
      "Epoch 96/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 4.7558 - mae: 1.5327 - mse: 4.7558 - val_loss: 16.5095 - val_mae: 2.7889 - val_mse: 16.5095\n",
      "Epoch 97/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 4.9151 - mae: 1.5311 - mse: 4.9151 - val_loss: 17.1855 - val_mae: 2.7893 - val_mse: 17.1855\n",
      "Epoch 98/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 4.7915 - mae: 1.5052 - mse: 4.7915 - val_loss: 16.9043 - val_mae: 2.8458 - val_mse: 16.9043\n",
      "Epoch 99/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 4.6241 - mae: 1.4739 - mse: 4.6241 - val_loss: 15.9920 - val_mae: 2.5725 - val_mse: 15.9920\n",
      "Epoch 100/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 4.8180 - mae: 1.4844 - mse: 4.8180 - val_loss: 16.6288 - val_mae: 2.6493 - val_mse: 16.6288\n"
     ]
    }
   ],
   "source": [
    "history = model.fit(x_train,\n",
    "                    y_train,\n",
    "                    epochs          = 100,\n",
    "                    batch_size      = 10,\n",
    "                    verbose         = 1,\n",
    "                    validation_data = (x_test, y_test),\n",
    "                    callbacks       = [savemodel_callback])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Step 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",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "x_test / loss      : 16.6288\n",
      "x_test / mae       : 2.6493\n",
      "x_test / mse       : 16.6288\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",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "min( val_mae ) : 2.5630\n"
     ]
    }
   ],
   "source": [
    "print(\"min( val_mae ) : {:.4f}\".format( min(history.history[\"val_mae\"]) ) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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IDt37qSnp4evfOUrnH32gefJWrFiBZdddhkHHXQQq1ev5pxzzmHhwoV861vfYv/+/dx5553MmzePW2+9lS996UvE43EmTpzIgw8+SC6X43Of+xwrVqygq6uLj3/847p4lojIKKcWhwhatmwZN998c/HnW265hQ9/+MPccccdPPHEE9x///18+tOfrnosxZNPPsm3vvUt1qxZww9+8AOeeeYZVq5cyfnnn8+11/pLhVxxxRXce++9PPnkk9x1110A/Ou//isTJ07kscce47HHHuOGG25g/fr1w/+ERUSkYajFIYKOO+44XnnlFbZs2cK2bduYPHkyM2fO5OKLL+bBBx8kFouxefNmXn75ZQ4++OAD7m/JkiXMnDkTgHnz5vGOd7wDgIULF3L//fcDsHTpUj70oQ/xvve9j3POOQeA5cuX85vf/IbbbrsNgN27d7Nu3Trmzp07Ek9bREQagILDUPXRnVAu7xzPvrQb8AMlj5g5cUi/9r3vfS+33XYbW7duZdmyZdx4441s27aNxx9/nGQyyZw5c+js7DzwjoCmpqbi/VgsVvw5FouRzWYB+O53v8ujjz7Kz372MxYvXszq1atxznHttddyxhlnDOm5iIhIdKirokbClxpzzg35lMxly5bx4x//mNtuu433vve97N69mxkzZpBMJrn//vt54YUXhlbhMs899xxvetObuOKKK5g2bRobN27kjDPO4Dvf+Q49PT0APPPMM7S3tw/r7xURkcaiFocaMTPMrBgYnOt9psVALViwgL179zJr1ixmzpzJueeeyx/90R9x4oknsnjxYo4++uhhqrn3mc98hnXr1uGc47TTTuPYY49l0aJFbNiwgeOPPx7nHNOnT+fOO+8c1t8rIiKNxTQZUd/S6bQDyGQyvdavXbuW+fPnD3h/z27dTT6YxGHewROIx8ZOg89gj5mIiNRcv19rx84nVwOImaadFhGRaFNXRQ2Vj3OopTVr1vCBD3yg17qmpiYeffTRmtZDRESiTcGhhuo57fTChQtZvXp1bX+piIiMOuqqGKTBtBiM1Utrj6XnKiIy2ik4DEJzczM7duwY8AdiuMVhrHyUOufYsWMHzc3N9a6KiIgMA3VVDMLs2bPZtGkT27ZtG9Djdu7rojubB2D/jhSpRHwkqtdwmpubmT17dr2rISIiw0DBYRCSyeSgplX+/I2P8vjz2wH4yvuXcOzhM4a7aiIiIiNKXRU1lAy1MPQELQ8iIiJRouBQQ6lE6XB3KziIiEgEKTjUUK/gkMvVsSYiIiKDo+BQQ8l46XCrq0JERKJIwaGGwmdRqKtCRESiSMGhhjTGQUREok7BoYaSiXBXhcY4iIhI9Cg41JC6KkREJOoUHGqo1+DInIKDiIhEj4JDDfUe46CuChERiR4FhxrS4EgREYk6BYca0hgHERGJOgWHGtIYBxERiToFhxrS6ZgiIhJ1Cg41pK4KERGJOgWHGtLgSBERiToFhxrS6ZgiIhJ1Cg41pMGRIiISdQoONaQxDiIiEnUKDjXU+6wKBQcREYkeBYca0hgHERGJOgWHGgp3VWiMg4iIRJGCQw0ldTqmiIhEnIJDDSVihgX3c3lHLq/wICIi0aLgUENm1mucgwZIiohI1DRccDCzVjNbb2bOzP65wvajzOxOM9tpZu1m9kszO7WPfcXM7GIze8rMOs1so5ldZWbjRv6ZVJbUKZkiIhJhDRccgCuAaZU2mNk84CHgZODrwGeANuBeMzu9wkOuBr4J/B74BHAr8EngbjOry3Pv1eKgAZIiIhIxiXpXIMzMjgcuAj4LXFWhyJXAJOAE59zq4DHfB34HXGdmRzvnXLB+AT4s3O6ce0/od6wHvg0sA24awadTkQZIiohIlDVMi4OZxYEbgJ8Dt1fYPg54N7CiEBoAnHP7gO8BRwJLQg95P2DANWW7ugHoAM4bzvpXKxXXXA4iIhJdDRMcgIuBo4EL+9i+CGgCHq6w7ZFgGQ4OS4A8sDJc0DnXCawuK1szmnZaRESirCGCg5nNBb4EXOGc29BHsUOC5eYK2wrrZpWV3+6c6+qj/DQzS/VRnwvMbNUBKz4Imj1SRESirCGCA/AdYD1+IGNfWoNlpSDQWVamcL9S2b7KFznnrnfOndhPXQYtqcGRIiISYXUfHGlm5wHvAE5xzvX0U7QjWDZV2NZcVqZwf0Yf+6pUvibCp2NqHgcREYmaugYHM2vCtzLcA2w1s8ODTYUuh4nBuu3AlrJtYYV14W6MLcAbzKypQnfFLHw3RvdQn8NA9R4cqeAgIiLRUu+uihZgOnAWsC50WxFsPy/4+XxgDb7r4eQK+zkpWIbHJTyGf35vDBc0s2ZgcVnZmtEYBxERibJ6d1W0A39aYf10IIM/NfNfgd845/aZ2d3AOWZ2rHPuSQAza8MHi3X0PoPiZuDz+Hkhfhla/xH82IYbh/m5VEVXyBQRkSira3AIxjTcVr7ezOYEd59zzoW3XwKcBiw3s6uBPfggMAs4qzD5U7DvNWZ2HXChmd2O7w6Zj5858gHqMPkTaAIoERGJtnq3OAyIc+5ZM1sKfA34HJACngDe6Zy7r8JDLgI2ABfgu0O2A9cClzrn6vKpnVJwEBGRCGvI4BDM5WB9bFsLnF3lfnL4qasrTV9dF8l4+OqYGuMgIiLRUu/BkWOOZo4UEZEoU3CosV4TQCk4iIhIxCg41FivMQ46q0JERCJGwaHGNI+DiIhEmYJDjWmMg4iIRJmCQ431PqtCwUFERKJFwaHGeg+OVFeFiIhEi4JDjWlwpIiIRJmCQ41pjIOIiESZgkON6awKERGJMgWHGtPgSBERiTIFhxpTV4WIiESZgkON9TqrQoMjRUQkYhQcakxjHEREJMoUHGpMXRUiIhJlCg41psGRIiISZQoONda7q0LBQUREokXBocbiMSNm/n7eOXJ5hQcREYkOBYcaMzOSGucgIiIRpeBQB6mExjmIiEg0KTjUQXiApFocREQkShQc6kBzOYiISFQpONSB5nIQEZGoStS7AmPGtq2w42Xo6eaQ7G5exIcHTTstIiJRouBQKyv+C+69DYATDz2VR2wBoK4KERGJFnVV1EqqqXi3iVJY0FkVIiISJQoOtZJMFu+Gg4PGOIiISJQoONRKIlW82zs4qKtCRESiQ8GhVpKh4ODU4iAiItGk4FArqVJwSLls8b7OqhARkShRcKiVUItDUi0OIiISUQoOtdIrOIRaHDTGQUREIkTBoVZCwSGVLwUHtTiIiEiUKDjUSig4JPIa4yAiItGk4FArfQQHtTiIiEiUKDjUSjg45HqK9zWPg4iIRImCQ62EgkM8pxYHERGJJgWHWgkHh3ypxUHXqhARkShRcKiVXi0OoeCgwZEiIhIhCg61Epo5Mp7VGAcREYkmBYdaCV3kKtYrOKjFQUREokPBoVbicTB/uM3liTkfGNTiICIiUaLgUCtmFS90pTEOIiISJQoOtVTh0to6q0JERKJEwaGWkq9tcdAYBxERiRIFh1pKJIt3C5fW1hgHERGJEgWHWko1Fe82qcVBREQiqO7BwcyOMrMbzWytme02sw4ze8rMvmlmM/sof6eZ7TSzdjP7pZmd2se+Y2Z2cbC/TjPbaGZXmdm4kX9mFSRLLQ4aHCkiIlGUqHcFgNnATOAOYBOQBRYCFwDLzGyxc+4VADObBzwUlPk6sBv4CHCvmZ3pnLuvbN9XA58M9n0VMD/4+TgzO905V9tP7dAYh1JXhYKDiIhER92Dg3Puf4D/KV9vZg8CtwAfwocEgCuBScAJzrnVQbnvA78DrjOzo51zLli/APgEcLtz7j2h/a4Hvg0sA24aoadVWbLUVZEqnlWRwzmHmdW0KiIiIoNR966KfrwQLCcDBN0L7wZWFEIDgHNuH/A94EhgSejx7wcMuKZsvzcAHcB5I1PtfoS6KprxXRV5B7m8q3lVREREBqNhgoOZNZvZNDObbWbvAP4l2HRPsFwENAEPV3j4I8EyHByWAHlgZbigc64TWF1WtjZCXRWtVuqiUHeFiIhERcMEB+B8YBuwEbgX3yVxnnPul8H2Q4Ll5gqPLaybFVp3CLDdOdfVR/lpZpaqsA0zu8DMVg2w/gcWCg7NsVJY0ABJERGJikYKDncCfwD8CXAFsAuYHtreGiwrBYHOsjKF+5XK9lW+yDl3vXPuxCrqPDC9WhxK8zdoLgcREYmKug+OLHDObcKfVQFwp5n9BHjMzFqcc1fixyWA764o1xwsO0LrOoAZffy6SuVHXig4tKCuChERiZ5GanHoxTn3G+D/gHSwakuwnFWheGFduBtjC747olLQmIXvxugejrpWLXytitAYB12vQkREoqJhg0OgBZgS3F+D73o4uUK5k4JleFzCY/jn98ZwQTNrBhaXla2N8BgHSt0TGuMgIiJRUffgYGYH97H+7cAxBGdMBKdd3g28zcyODZVrww+sXEfvMyhuBhxwUdmuP4If23DjMD2F6vUKDtnifY1xEBGRqGiEMQ7fCaaW/l/83A3NwAn4CZr2Ap8Olb0EOA1YbmZXA3vwQWAWcFZh8icA59waM7sOuNDMbsef1lmYOfIBaj35E/TuqtAYBxERiaBGCA4/Aj4IfAB/FoXDB4h/Ab7hnHuxUNA596yZLQW+BnwOSAFPAO+sMN00+NaGDfjpq88CtgPXApfWfLppgFQoODidVSEiItFT9+DgnLsFP7V0teXXAmdXWTaHv0bFVYOr3TBLlIJD4SJXoBYHERGJjrqPcRhTkuHgEBocqeAgIiIRoeBQS72ujllqcdBZFSIiEhUKDrWU6qurQmMcREQkGhQcainc4pDXGAcREYkeBYdaCg2OTCg4iIhIBFUVHNLp9F+k0+lFZetS6XR6Qh/l35pOpy8djgqOKqnKwUGDI0VEJCqqbXH4D+CPy9ZdAuzso/zbgMsGV6VRLNRVkcj1FO9rjIOIiESFuipqKdlHi4POqhARkYhQcKilZLJ4Nx5qcejqUYuDiIhEg4JDLSVLV/iO5TQ4UkREokfBoZZCXRXxbDcE1+TqVIuDiIhEhIJDLcXjEPOH3JwjHlwhU10VIiISFQO5yNWkdDp9aPhngHQ6/TrAyssOtWKjVrIJuvYD/noV+y2u4CAiIpExkODwqeBWbsPwVGWMSKZCwSHLflIKDiIiEhnVBocXATeSFRkzQmdWFK6QqTEOIiISFVUFh0wmM2eE6zF2pEpnVhQudNWlCaBERCQiNDiy1hKvbXFQV4WIiESFgkOtJV97aW0FBxERiYqquirS6XQLMBPYnslk9pRtOwy4GjgVf3bFA8DfZjKZZ4a5rqNDr+BQanFwzmFWfnKKiIhIY6m2xeFCYB3whvDKdDo9Hh8UzgYmAOOBdwEr0un01GGs5+gRukJmCz445J2uVyEiItFQbXB4C7Axk8k8Urb+Y8ChwMPA4cBBwLXAwVQ+dVNCLQ7j4qWw0NWj4CAiIo2v2tMx3wCsqrD+HPxpmn+ZyWSeD9Z9Kp1OnwWcCVw69CqOMolScGiNlc5w7erJMb4lWekRIiIiDaPaFofpwPrwinQ6nQSOA56uMJ7hf/EtEFIu1FXRauEWBw2QFBGRxldtcGgC4mXrFgBJYGWF8q8ArUOo1+gV6qpoiZWCgyaBEhGRKKg2OGwFjilb92Z8N0WlLozxwKtDqNfolQy3OJTCgiaBEhGRKKg2OPwaODWdTr8NiqdnfiTY9osK5Y8BNg+5dqNRaIxDs7oqREQkYqoNDlcHy+XpdPoJ/HiHRcCKTCbzdLhgOp2eACwFys/AEOg1xqGZUIuDgoOIiERAVcEhk8msAj4E7AcWAzPwXRQfrFD8g0AKWD48VRxlQl0VTaHgoDEOIiISBVVfVjuTyfwwnU7/BN8NsSN0+mW5u4EHgbXDUL/RJ6kWBxERia6qgwNAJpPZDzx2gDIbhlKhUa/ClNOg4CAiItGgi1zVmoKDiIhEWLUXufqLwew8k8l8fzCPG9XKr44ZXNdKwUFERKKg2q6K/8DP2VAtC8orOJQLBYdkKDhocKSIiETBQMY4ZIH/An4/QnUZG8LBIZ8tdhZpAigREYmCaoPDA8ApwB/jT8W8Abglk8l0jlTFRq1QcEjke4r31VUhIiJRUO08Dm8HjgL+CX/xqn8HXkqn09em0+lFI1i/0SdZugJmIpct3tdltUVEJAoGMo/Ds8DfpdPpLwBn46ec/hiQTqfTjwP/Avw4k8m0j0hNR4tUU/FuODhojIOIiETBgE/HzGQy2Uwm85NMJvNOYB7wVWAmcD2wJZ1OnzzMdRxdQteqiOXUVSEiItEypHkcMpnMC5lM5ovABfiLWrUB04ejYqNWqKsiruAgIiIRM6CZI8PS6fQhwF8Gt8OATuCHwBPDU7VRKtRVEcsqOIiISLQMKDik0+kY8C7gfOCdwePXAJ8CfpDJZHYPew1Hm9BZFabgICIiEVPtzJFzgb8CPowfz9AO/CdwQyaTWTly1RuFEqWuCst2g3NgRqfmcRARkQiotsXh2WC5CrgM+JHOnhikeNzfcjnMORLkyRJXi4OIiERCtcHBgB58a8OlwKXpdPpAj3GZTOawIdRt9Eo2Qa4D8Be6ypqCg4iIRMNAxjgkgdkjVZExJZn0Q0kJrldBiu5snrxzxMzqWjUREZH+VBUcMpmMLr89nEIDJMfH8hRGlHb35GhODfpEFxERkRFX90BgZkea2RVm9oiZbTOzvWa22sy+YGbjKpQ/yszuNLOdZtZuZr80s1P72HfMzC42s6fMrNPMNprZVZX2W1Oh4NAWL110VLNHiohIo6t7cMDPA3Ex8BxwBfAZ4GngK8BDZtZSKGhm84CHgJOBrwdl24B7zez0Cvu+Gvgm/oqenwBuBT4J3G1m9XvuoeAwLhQcNM5BREQaXSO0i98GXOmcC88B8V0zWwd8AX8a6D8H668EJgEnOOdWA5jZ94HfAdeZ2dHOOResX4APC7c7595T2LGZrQe+DSwDbhrRZ9aXXsEh74edouAgIiKNr+4tDs65VWWhoeDmYHkMQNC98G5gRSE0BI/fB3wPOBJYEnr8+/Fng1xTtt8bgA7gvGF5AoMRDg6xUItDVlfIFBGRxlb34NCPwhkcLwfLRUAT8HCFso8Ey3BwWALkgV4TVDnnOoHVZWVrKxQcWmOlsKAxDiIi0ugaMjiYWRw/X0SWUnfCIcFyc4WHFNbNCq07BNjunOvqo/w0M0tV2DbyQsGhxUrBQV0VIiLS6BoyOOC7F04CLnXOPR2saw2WlYJAZ1mZwv1KZfsqX2RmF5jZquqrO0Dh4EApLCg4iIhIo2u44GBmXwYuBK53zl0Z2tQRLJte+yiay8oU7lcq21f5Iufc9c65E6ur8SCEgkOzWhxERCRCGio4mNnlwN8D/w78ddnmLcFyFq9VWBfuxtiC746oFB5m4bsxugdf2yHoo6tCYxxERKTRNUxwMLPL8BfQ+j5wfuG0ypA1+K6Hkys8/KRgGe5eeAz//N5Y9nuagcVlZWsr3OKgrgoREYmQhggOZnYpcDnwA4u6r2YAACAASURBVODDzrnXnJcYnHZ5N/A2Mzs29Ng24HxgHb3PoLgZcMBFZbv6CH5sw43D+BQGJlUKDk0KDiIiEiF1nwDKzD4OfAl4EbgP+HPrfaGnl51zvwjuXwKcBiw3s6uBPfggMAs4K9xK4ZxbY2bXARea2e3APcB8/MyRD1CvyZ+gV4tDSsFBREQipO7BgdJ8CocC/1lh+wPALwCcc8+a2VLga8DngBTwBPBO59x9FR57EbABuAA4C9gOXIs/W6N+sy0lQsHBZYv3O7MKDiIi0tjqHhyccx8CPjSA8muBs6ssmwOuCm6NI5ks3m0KBQe1OIiISKNriDEOY06qdKJHMq+uChERiQ4Fh3oItTgk82pxEBGR6FBwqIfQ4MiEuipERCRCFBzqIVnqqkjkeor3NQGUiIg0OgWHegh1VSRy4RYHXVZbREQam4JDPYS6KuL5UouDuipERKTRKTjUQyg4xLKh4KB5HEREpMEpONRDX8FBLQ4iItLgFBzqIRwcNDhSREQiRMGhHkLBwdTiICIiEaLgUA+h0zHp7iIWXNQrl3dkczqzQkREGpeCQz2ETse0bA/NyXjxZ7U6iIhII1NwqIdQVwU93TQlSn8GjXMQEZFGpuBQD7EYJIJWB+cYl3DFTWpxEBGRRqbgUC+h7oq2uIKDiIhEg4JDvSRK3RXjwsFBk0CJiEgDU3Col2Tl4KAxDiIi0sgUHOolFQoOsdIpmOqqEBGRRqbgUC+hFodWCwcHzeMgIiKNS8GhXkLBoSWmwZEiIhINCg710qvFoRQWNMZBREQamYJDvYRbHExjHEREJBoUHOolFByaQy0OCg4iItLIFBzqJTQBVDNqcRARkWhQcKiX0BUymwi1OGgCKBERaWAKDvUS6qoIBwcNjhQRkUam4FAvoa6KVD5bvK+uChERaWQKDvUS6qpIOQUHERGJBgWHegm3OCg4iIhIRCg41EtojEPSaYyDiIhEg4JDvaRKXRXJXE/xvlocRESkkSk41EtrW/FusnNf8b6Cg4iINDIFh3qZOKV4N7l3V/F+V1ZXxxQRkcal4FAvoeAQ37uzeF8tDiIi0sgUHOplUik4xELBQYMjRUSkkSk41EvLuOIASevqpCXfDfgWB+dcPWsmIiLSJwWHejHr1V1xkNtfvN+tcQ4iItKgFBzqaeLk4t2DrBQcNM5BREQalYJDPYVaHGZQCg4a5yAiIo1KwaGeQsFher6jeF8tDiIi0qgUHOpp0tTi3am59uJ9BQcREWlUCg71FGpxmJwNBYesgoOIiDQmBYd6Cs3lMCkUHDTGQUREGpWCQz2FWhwm9Oh6FSIi0vgUHOopNMZhfNee4n0FBxERaVQKDvU0bjwkkgA0Z7toyvvLays4iIhIo1JwqCczmFCaBGpKzp+SqeAgIiKNqu7BwcwuMbNbzex5M3NmtuEA5Y8yszvNbKeZtZvZL83s1D7KxszsYjN7ysw6zWyjmV1lZuNG5MkMRmiA5JTglMzOHk05LSIijanuwQH4KnAq8Byws7+CZjYPeAg4Gfg68BmgDbjXzE6v8JCrgW8Cvwc+AdwKfBK428wa4bn3GiBZmMtBLQ4iItKoEvWuADDPOfc8gJn9Fh8E+nIlMAk4wTm3OnjM94HfAdeZ2dEuuLSkmS3Ah4XbnXPvKezAzNYD3waWATeNwPMZmAotDprHQUREGlXdv3UXQsOBBN0L7wZWFEJD8Ph9wPeAI4EloYe8HzDgmrJd3QB0AOcNodrDZ2KF4KAWBxERaVB1Dw4DsAhoAh6usO2RYBkODkuAPLAyXNA51wmsLitbP72CgwZHiohIY4tScDgkWG6usK2wblZZ+e3Oua4+yk8zs1SlX2RmF5jZqkHXdCA0xkFERCIkSsGhNVhWCgKdZWUK9yuV7at8kXPueufciQOu4WCEJoEqdFXs6uiuya8WEREZqCgFh8J1p5sqbGsuK1O4X6lsX+Xro0JXxUs7618tERGRSqIUHLYEy1kVthXWhbsxtuC7IyqFh1n4boz6f7UfPxFi/s8wId9J0uXYtns/3TqzQkREGlCUgsMafNfDyRW2nRQsw+MSHsM/vzeGC5pZM7C4rGz9xGJls0e244Ctu/bXr04iIiJ9iExwCE67vBt4m5kdW1hvZm3A+cA6ep9BcTPggIvKdvUR/NiGG0e0wgNR4ZTMLa+291VaRESkbuo+AZSZfQA4LPhxOpAys78Pfn7BOfeDUPFLgNOA5WZ2NbAHHwRmAWcVJn8CcM6tMbPrgAvN7HbgHmA+fubIB2iEyZ8KJk2BF/zdYnDQOAcREWlAdQ8OwF8Bby1b9+Vg+QBQDA7OuWfNbCnwNeBzQAp4Aninc+6+Cvu+CNgAXACcBWwHrgUudc41zgUhKgyQVIuDiIg0oroHB+fc2wZYfi1wdpVlc8BVwa1xhedyyPrAoDMrRESkEUVmjMOoVuF6FVt2qsVBREQaj4JDI5j42kmgXt61n2yucXpTREREQMGhMYRaHGbgT8PM5R2v7NYpmSIi0lgUHBpBhetVgM6sEBGRxqPg0AgmTAYzANp6Oog7P2ukzqwQEZFGo+DQCOJxaJtY/HFyzndR6MwKERFpNAoOjaLCVTLV4iAiIo1GwaFRVBjnoDEOIiLSaBQcGsWk3he6At9Vkcu7vh4hIiJScwoOjSLU4jAz1glATy7Pjr2d9aqRiIjIayg4NIrQGIdZ8a7ifc0gKSIijUTBoVFMnla8O6dre/H+llc1zkFERBqHgkOjOHwBxPyfY+auTUzWmRUiItKAFBwaRdsEOOIYAAzHSR3rAZ1ZISIijUXBoZEsPrl49+T9zwNqcRARkcai4NBIQsHhuP2baM5389LODpzTKZkiItIYFBwayfSDYfZcAFLkOHH/i3T25NjZ3nWAB4qIiNSGgkOjqdhdoXEOIiLSGBQcGk0oOLxp/wbiLqe5HEREpGEoODSaww4vzukwPt/FMV0vqcVBREQahoJDozHr3V3R8bwury0iIg1DwaERlQWHtRtfJa8zK0REpAEoODSioxbiWsYBcHBuL+O2b+TJDTvqXCkREREFh8aUSGILlxR/PLljPT//v411rJCIiIin4NCoQt0VZ+z7PSt/v4k9+7vrWCEREREFh8a16I3QNhGAg3J7OXP3au5fs7nOlRIRkbFOwaFRNbfAH/158cf3717Fg6vWafppERGpKwWHRvbWPyQ/bSbg53Q46dn7eXbrnjpXSkRExjIFh0aWSBJ774eLP56950l+9avVdayQiIiMdQoOje6Et9BxyDwAUuSZ+9AddPbk6lwpEREZqxQcGp0ZLed+tPjj2/Y+xZMPPFrHComIyFim4BABdtQiNr9uYfHnuXdcS9dzT9exRiIiMlYpOETEuHMvIIcBMKNrJ4mv/Q35e26BfL7ONRMRkbFEwSEiJh1+BKtP/0v2WxKAuMsRu/3f4Jufh5e31Ll2IiIyVig4RMgJy/6Un575tzydmlFa+dRq+MJfwjc+Cw//D3R11q+CIiIy6iXqXQEZmPf9ySlc2dPC3EfvYtmeVaXk9/Rv/O2m62DhEjhqERy5CA6e7S/VPVgb1kFnBxy5EGLKmSIiY52CQ8TEzPjbc07gs+09PPbcYfzZnsdZsv8F4gQzSu7vgJUP+BvAhMkwbz4cOg8OOxwOPRwSKdi3G/bt8bfJU/36cMB4eQvcej2sfsT//PqjYdnH4PVH1fYJi4hIQzFNYdy3dDrtADKZTL2r8hq72ru46N8f4qWdHUzJ7uMP2p/ijH2/Z1Z29+B2OGUGHL8UFp8Ev10Fv7gDctnXlnvz6XDOh2HS1KE9gXrK9vjANHHK0Fpjxpqebv+aaG6td01EZGT1+8ao4NCPRg4O4MPDf9z/ND//v42+vcE55vVsZ3HXZk6Jb+fwPS+Q6OoY+i+KJ3qHiHjcB4dJU/2Hb2sbdHdB137o3O/LTpwCk6fDlGkwfiLs3Q07d8CuHbB3FySS/noczS3+gyie8F0h8ThYDLo7oaMdOvb5mwNSTZBKQbIJkkn/mHjCPybV5PfT0uqXreOgbQKMmwBt4/2+fvsYrFkFa1f7uo6f6LtgjloERxwDqWZw+eBMFQdNzX5fza3+d5TL9vjntXeXXyaSpePS1Fz5WL6yBR7/Nfzfr/1jZs+FuUfCnCNhxiGwZxfs3O5v+3b7uuSdr5dzwb+z+WMUM0imfL1TTf42bjxMmATjJ/llpXpks/DCOnj+KR+cDn8DvG5e5efYsQ+efBT+7yEfKLu7/LE67d2w+M2QaKBGy+fWws9+DFs3wjEnwpve7lvK+gqHu3fCQ7/wXXxHHgNvPcsfPxFRcBisRg8OBc++tJvvLv89a158tdf6mMsz33Zz+qROFrKTmXu2kHjpBf9G2jbBf3C2tML6Z/wHRLnXHw3v/5h/M731e/7DY6xKNUEs7j+8wX+Qd3f1Xb5lHEyc7I/duAkwrg02b4AXn6tJdUv1aPWtSVOmw+Rp8MpL8Pza19a9qRlePx+mHwzte/1t3x546UXI9TFT6eRpsPQd/nWUz/tjkstDTxd0d/vw193lw2Tnfuhs94N3W9tKoXPSFJh6kP+902f649bVCZue9+NrXnzuta/N1jbf7TbnSHjd62HTevjpD30wLDftYDjxLT6UjZ8EEyb6EPmre2H1w72fW1MLnHIm/MGf+OM13Ha84v+Hnvi1D9Cz5vjQOPdomDETtm2FLS/4Y77rVX9cZr4ODjnUj1WKJ4PjnPNhMpn0wTGR9P/T+bwfj9Sxzz/HCZMqtwxms7BlA/T0wEGz/HvBSNm3x7/enlsLW16EaQfBSae+tmt0qHq6YeN62LzeH8ftL/nlvj3+dTV7bnCbA4cc5o9ZX5yDdb/zr5HfPOoD9evn+9u8+f6119cXg7B83v8td24vfRlx+LA99SB/LMrr0bnff6FIJv0XgqbmyoF+5Ck4DFZUggOAc45frd3KLQ8/xzNb+u6uOPzgCSw8bCpzZ4xn7ozxHDZ9PE3m4Okn4fFfwZOP+Dejs//Cf2MLD4j8/RNw27/Bi8/W4BmNsGTKv9nIwJiVwtNIaG3zH37Vzk8Sj/cdbAYrHvetZYUPNjPfMjZuvL+1tvkP3b27g7FCQctQMlVq+Uk2le6nmnwg2PDM8NazwGL+g6anx4e3sIlTSi1aXZ3+A3zDM72DY9sEOGi2D0uxmH++sRj+s8P5v3fhbx6L++MTi5fKFri8Dyz726F9H+zZCdteqlznWXPg5NP8h/qOV+DVbfDqK/6DM5/zrZa5nP/wnDIdps7wH7atQbDs3O9bDXe8DOuf9qGhUtdqJYmk//Cfe7Q/NomkD7ldXT7QrVzhWwb7M+0gmHmov02a6o9F4Xjs3A7PP+2Pc2c/Lb4Wg6nTYeJU/xra9ap/TpXqO3maD8EzZvrj0NPtj+/uncHyVfj4pT6QDQ8Fh8GKUnAI27h9H//7283c/9stvLSz/66KmMGsKeM4YuZEDp85kcMPnsjrD5rA+JZ+EnlXp3+R7w66HvZ3+GTc1ALNzf4fYverwZvBNp/62yb4F//kqTBhCuR6Qt9EO/ybRD7v3zTyef+G0TrOv0m3jvP/kN2Fb7Jdvpsgly29wXR3+f3s7/DL9n3Qvqc0ABR8E/sxJ8LCE2HGLP9mXjgbZdN6/+YYi/n6g38zKeyv0v+Jxfy37fET/bfZnuCNZ9erfb+JJZKw4Hg44S0w6zD/jXrDM/7Nb/erQRfPNJg0zX9jLHybtFjpX7nwRp7PQ7bb/z0K3+zb95a6T/bs8sepkmkH++ORz8G63/q/U1/mHAnHvxmOW+pbMB64x9/27Oz7MfVgBm98G5zw/+A3K30Q3t/e/2OOWADHLIFH7/evB5Go+uSXYNGbhmtvCg6DFdXgUOCcY91Lu1n13DYef347v9+4k3yVf++JrSlmTx3HrCnjOGhiCy1NCVpSCVpScdqak0wd38z0CS20NSewKAwwdG7wTaP5oFui8G2usJ9Uc+VTVPP5ILDsDpr89/oQ0zIO3nCcX9aCc74er74Cr26Hndt8gDt8wWub4ne8As/+ztc3PDZk8nQfYMr1dPsm9+fWlgJXLOa/ifb65p3y39ZbWqF5nF/XsdeHq11B8Ny+1XehbN/qg46Z/wY85wg47Ahf18Ixd87X9YV1PnC9vNlvW3IKvOtc36wfruNvH/d13LurFKZ6umH+cXDKO32zdWG/ax6Dn98Kz6wZmb9HPA5HHwvH/z//jXfj8z4wrn/Gf0udfrDvmph5qA+P27fCSxt9c/e2rYALxrYE32yzPT5Ih0NqU4vvFmtu8cepr3ldps7wofzlzf13uQ35OSf8GV3z5vuugqee9K+bkfidMw7xr5eDZpW6vsaNh62b/BeDTeth43Ow/eUD76ulFd74dlj6B/5L0XNrfZfL80/5/VXbIjZhsv+CEE/gxybh/ybbt/q/efn7cSLp/99yWd8C0tX52lakvnzwInjLO6sre2AKDoMV9eBQrr2rhzUvvMpzW/ew/pU9rH95L5tfbWcor4DmZJwp45sY15SktSlBayrBuOYEE1tTTBrXxORxTUxoTdKcTNCUjNOUiNGUjDOuOUlbc4K45oaQgnzet2IUBsxWo6PdfyBX0+dcrd07fZOxH3Hs37gLrTnte31rVjIJbUFrU9tESMT9h3hPl3/D7+kKWsiCW1OLD40jMfgyl/O/L5HqPVg1n/PBY8MzvmUrkSj10xfGPuTzPrxt3ehbqvLBINziYFzDf+BZqXw+F7QQVugiam71waU1uB00y4fHsM4OWPUrP8Ykn/chZsoM32zf2hYa9BzzLX47XvYf9jte8X+X5tZSC+f4Cb55fs6R1Y/V2L0zCGxP+XFHFvOBtikYUzDnSFh8ct+vqWyPD1wvvejHbbTvLbUCOudfv3OOhLlH9Q695Xq6fSDcs9O/jiZO9ceuV/eP86+fHS/7stte8vdTTb51csJkv5w42YfN8mM9eAoOgzXagkMlnd1Znn9lL8++tJtnt+7m2Zf2sHHHPrqztbkGxrimBG0tSWJmOOdw+P+VVCLGuKYk45oTjGtK0JxKkErEaErESSZixGO9X9eGkYgb8ViMRNxIJWK0pBLFMFN4fDIeI5WIkYjH/P85Lvh/dyQTMVKJeLFcJFpSRESGX79vfg10LpXUQ3MqwRtmT+YNsycX1+WdY9vu/Wx6tZ1NO9rZua+L/d1ZOrtz7O/Osnt/N9v3dLJtTyddPUMbmNbelaW9q8pBTTUWMyMeM2Ixv0zGY0G48MHCOejJ5enJ5cnm8iRiMZpTcVpTCVqaEjQn4zQl48VlIh4jn3fkXXAr3M9T7EJqScVpTiVoScZJJePFUJN3rvgFMGa+TjEzknEjmYgX6wZB+bzzA+/jvoUnlYzRnPSjs/OO4u82IB73QSwRPE8wYgZmfpmIx4KbD2YuqIvDYZhvSUrGe4U555w/Ntl88fjFY7HifkUkukZ1cDCzGPAp4KPAHGAbcAtwqXPuAKOmxq6YGQdNauWgSa2c8Pq+T0tzzrGvM8vOfZ10dOfo6MqyvzvLvs4edrV3s6uji137uti9v4eunhzdPTm6sjm6enLs68zS3tkzpG6SkZZ3jnzOwTAP2h+tCuElm8v322JVDGRBiCgEknjMgpYgRy4INrm8IxaUSQYBJhncCmEmZkY278jl8mTzDuecD2wpH95SxUBFsVWrXK9tzpEMWp6agsebGbm8I5fPk887zAphyEjE/MDV8v3HzYiHnlv4ZkAuFOCcg0Tcis8vHiv9vmzOl0nEYzSFWsXyDrLh4Bq0pvkuQR8SC9uyeV+rQn0T8VIgTvSqn99WWNfre6eDXN6Rzef93yfvW+kKrYDJRIxczgfG7myObM75Fr5kqU6FcGnBfCSFv3EunyeX88c1GRyHeMz6DZmF1nIF0dob1cEBuBr4JHAHcBUwP/j5ODM73blqR51IJWbG+JZk/2dg9COXd7R39bB3f48f9xV8m8YIwkUPHV1Z2juzdGVzdGdzdPX4N6V82bu/c674Bln44NrfnWV/V5aOoLWkJ1hfeDMF//vMfHd24XE9QRkZmELry4EUA1nxgSNYKYm0wv+nUQoIhda6wiuoFCR94CgfIhC+7+jd0pdzLhTwSi2LhXCWSsSJlXWLhlsA8y6Ym6Gg0CJovYNiMfAmYsWg6Z+Tf1g2F7x/Be9hMevd9ZoIh+UgVBZa9Arva8uWzuPwmROH+09Q0agNDma2APgEcLtz7j2h9euBbwPLgJvqVD3Bf/uZ0JJiQsuwDegZNoU3B/9tyN/CwaI7myMWC/9DG9mc82El6NLp7PatK509Wbp6csU3hFjwbTvc5RAzw+GC7qAcnd0+LBW2WfDt3NeL4rfy3m8eOSD4RhvsvyeXp7snR2fQ0oOj9DtjVtxP4fnlgkRWeFPMh35PYXvMSt8anfMhr6sn95pv8oXjUugayebyDd3CJI2n9wdz5VdPtYF1tDt90SwFh2Hwfnyou6Zs/Q3A14DzUHCQPpiZ/yaikz6q4pyjO+uDVTJRam4vlwu6EgrfGnOFb35Bk3w2n+/1ja0QbgoBqdA03xP6hpYPmvkLTe0A3dlcMbgVAhiUWrR6V55iMCt8AyyEQ//4vB8LEisFPQfkgiBV6AaIBc3vsaAFKx8OnUEXR845ckHXQzwU4AyKrWU9Od9sH4/5b8KJWIxYzOjJ+rp09+TozuZL32QT/ltoNu98d2ChzkYwbsUHODDfJVBep7LgWPjWmy9v1gP/zdwK3+x9nbqzebqyOXqy+WJ9Cq0APbm876YMWgsL39QJBiWHu0tiMR9Es8Hft9pTx8XrqdGAdhjdwWEJkAdWhlc65zrNbHWwXUSGgVlpkGR/CoMvRQ4k3CURPvvPt8CVAlo21OqWzb02bIS7LsKDiwvBrTzg9WRLXZpdPblev9tRGjRcqEd4ipFwvQutddmgXj785opBMzweJhErtVwWBiBnQ2Gu0OJXWMZiRqowKDoY23LUrArzrYyQ0RwcDgG2O+cqzTSyGXizmaWcc5p3WESkwcTMiMX7D5kGwXiEulzPYcwazQ2xrUBf05N1hsq8hpldYGarRqRWIiIiETaag0MH0NTHtuZQmddwzl3vnDtxRGolIiISYaM5OGwBpplZpfAwC9+NoW4KERGRARjNweEx/PN7Y3ilmTUDiwF1RYiIiAzQaA4ON+MHwV5Utv4j+LENN9a8RiIiIhE3as+qcM6tMbPrgAvN7HbgHkozRz6A5nAQEREZsFEbHAIXARuAC4CzgO3AtfhrVWiqMRERkQEa1cHBOZfDX6PiqnrXRUREZDQYzWMcREREZJgpOIiIiEjVFBxERESkaqN6jMNwSafT9a6CiIhIrbhMJtPnhULU4iAiIiJVM6drnteUma3SdTCGTsdxeOg4Dg8dx+Gh4zg8Rvo4qsVBREREqqbgICIiIlVTcKi96+tdgVFCx3F46DgODx3H4aHjODxG9DhqjIOIiIhUTS0OIiIiUjUFBxEREamagsMIM7OYmV1sZk+ZWaeZbTSzq8xsXL3r1ojM7Egzu8LMHjGzbWa218xWm9kXKh0zMzvKzO40s51m1m5mvzSzU+tR90ZmZq1mtt7MnJn9c4XtOo79MLMpZvZPZvZs8H+8zczuN7O3lJXTceyDmbWZ2efNbE3wf73dzB4ysw+ZmZWVHfPH0cwuMbNbzez54P92wwHKV33Mhvq5pJkjR97VwCeBO/BX6Zwf/HycmZ2uy3u/xl8CHwfuAm4EeoC3A18B3mdmJznn9gOY2TzgISALfB3YDXwEuNfMznTO3VeH+jeqK4BplTboOPbPzA4DVgBtwL8CzwATgUXArFA5Hcc+mFkM+G/gzcB/AtcCrcD7gX/Hvy/+XVBWx9H7KvAq8AQwqb+CgzhmQ/tccs7pNkI3YAGQB35Stv4TgAP+vN51bLQbcCIwscL6rwTH7MLQuluAHLA4tK4NeAF4mmDw71i/AccHbyh/ExzDfy7bruPY//H7JbARmHmAcjqOfR+bk4PX3tVl61PA88AuHcfXHLPXh+7/FtjQT9mqj9lwfC6pq2JkvR8w4Jqy9TcAHcB5Na9Rg3POrXLO7a6w6eZgeQxA0KT2bmCFc2516PH7gO8BRwJLRri6Dc/M4vjX28+B2yts13Hsh5mdAvw/4OvOuZfMLGlmrRXK6Tj2b0Kw3BJe6ZzrBrYD7aDjGOace76acoM4ZkP+XFJwGFlL8MluZXilc64TWM0Y+QcYJrOD5cvBchHQBDxcoewjwVLHFy4GjgYu7GO7jmP//jBYvmhmdwP7gXYze8bMwm+wOo79WwnsAj5rZn9qZocGffJXAicAlwfldBwHbqDHbMifSwoOI+sQYLtzrqvCts3ANDNL1bhOkRN8a74U39x+U7D6kGC5ucJDCutmVdg2ZpjZXOBLwBXOuQ19FNNx7N9RwfIGYArwQeCvgG7gB2b24WC7jmM/nHM78d+KX8U3q78APIUfz/Qe59wNQVEdx4Eb6DEb8ueSBkeOrFag0h8HoDNUprs21Ymsa4CTgM87554O1hWaiysd386yMmPVd4D1wDf7KaPj2L/xwXIv8PagaR0zuwPfN/9VM/tPdByrsQ/fV38XfiDfFHxwuMnMznbO/QIdx8EY6DEb8ueSgsPI6gBm9LGtOVRG+mBmX8Y3s1/vnLsytKlw3JoqPGzMH9ugGf0dwCnOuZ5+iuo49m9/sPxRITSA/wZtZncBf4FvldBx7IeZLcSHhYudc98Nrf8RPkzcEJwZoOM4cAM9ZkP+XFJXxcjagm/2qfQHnYVvLlJrQx/M7HLg7/Gna/112ebCIKtKzZaFdZWa7ka94PX2TeAeYKuZHW5mhwOHBUUmBusmoeN4IJuC5dYK214KlpPRcTyQi/EfSreGVzrnOoCf4V+bc9BxHIyBHrMhfy4pOIysx/DH+I3hlWbWDCwGVtWjUlFgZpcBlwHfsFMXCgAABcRJREFUB853wflCIWvwzW0nV3j4ScFyrB7fFmA6cBawLnRbEWw/L/j5fHQcD6QwgGx2hW2Fda+g43gghQ+weIVtidBSx3HgBnrMhv65VO9zVUfzDVhI/+fLnlfvOjbiDT8Q0uFDQ6yfcrfiz10+NrSucO7yM4yR870rHJck8N4Kt48Fx/W/g5+P1HE84LGcDOzBtzy0hdbPxPfZPxNap+PY93G8OnjtfbZsfaHV61UgoePY5/E70DwOVR+z4fhc0tUxR5iZXYvvo78D33RcmKHr18CpTjNH9mJmHwf+GXgR+CL+BR72svODqAia31fiZ5e8Gv8G/xH8P8ZZzrl7a1XvKDCzOfjBktc55y4Mrddx7IeZXQD8C/A74N/wkxZ9DB8e3uWcWx6U03HsQzD75hP4IHYj/v1vCv74zAE+7pzLBGV1HAEz+wCl7sVP4F93VwU/v+Cc+0Go7ICO2ZA/l+qdpEb7Dd8092n87F1d+L6mbxL69qJbr+P1H/jU29dtRVn5+cBP8eeIdwC/Ak6v9/NoxBv+Dfo1M0fqOFZ17M7BnxPfjj/DYjmwVMdxQMdwHn666U3BB9we4EHgHB3HisdrRbXvgwM9ZkP9XFKLg4iIiFRNgyNFRESkagoOIiIiUjUFBxEREamagoOIiIhUTcFBREREqqbgICIiIlVTcBAREZGq6eqYIjLqpdPpy/HXPnl7JpNZUd/aiESbgoOIHFA6na5mpjh9KIuMAQoOIjIQX+pn24ZaVUJE6kfBQUSqlslkLq93HUSkvhQcRGTYhccU4K/wdxFwNP4CUf8FfD6TyWyt8Lgj8FdFPQ2YDmwH7gO+nMlk1lUoH8dfBfADwDH4Kwhuxl8g6B/7eMx7gc8G5TvxF6z6dCaT2TyU5ywyVuisChEZSRcD3wWeBK7BX43vw8BD6XR6erhgOp1eAqwCzgMeA/4Jf0XKc4FV6XT6xLLyKeDnwHeA1wE3Ad8GHgf+BFhaoT5p4If4bpXrgN8Cfwbcl06nm4b8bEXGALU4iEjVgpaESjr/f3v3D2LFFQVg/FsEQxpXq5iItWghGkgEWaJFEC1EG1kUo4XNcnohiOCWdoLFQbCRGP82iRhIISwoigiiCykSrYTAirHJQkCUxLW498kwvNF5i9vE7wePyztz5r6Z6p135977MvPkkPguYEtmPmz0cYoyAnESOFJjY8APwArgYGZeaORPApeBHyNiQ2a+roemgW+B68C+zHzZOOeT2lfbTuCrzPytkXsR2A/sAa523rwkwBEHSaM50fH6viP/fLNoqKaBeeBA41f+VsqjjLvNogEgM68At4F1wAS8fUQRwAtgqlk01HNeZubzIddzulk0VGdr+3XHPUhqcMRBUm+ZOTbiKTeH9DEfEbPANmA9MAt8WQ/PdPQzQykaNgO3KEXGOHAvM+dGuJ77Q2J/1nbVCP1IHy1HHCQtpWcd8cHEyPFW+7QjfxBf2WpHndD495DYv7VdNmJf0kfJwkHSUvqsI766tvOtdvWQXIDPW3mDAmDN4i9N0mJYOEhaStvagYgYBzZRlkL+XsODeRDbO/oZxB/U9g9K8bAxIr74EBcqqR8LB0lL6buI2NyKTVMeTVxqTGq8Q1mqOVH3WXirvv8GeEyZJElm/gck8Clwpr2UMiKWt5d7SvownBwpqbd3LMcE+DkzZ1uxX4E7EXGVMk9hor6e0FiJkZkLEXEYuAFciYhrlFGFdcBeysZRhxpLMaFsf70F2A08johfat5aYAdwFDi3qBuV1MnCQdIoTrzj2BPKCommU8BPlH0bJoF/KF/mxzLzr2ZiZt6rm0Adp+zPsJuyc+Qlys6Rj1r5ryJiJzAFHAIOA2PAXP3M26PfnqT3GVtY6POnd5LUn39jLf1/OcdBkiT1ZuEgSZJ6s3CQJEm9OcdBkiT15oiDJEnqzcJBkiT1ZuEgSZJ6s3CQJEm9WThIkqTeLBwkSVJvbwC+i9+J1JYwJQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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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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EGgFTnOh02/n3DIzuwY438xuB+6iOHPkAwxx8qehCs9psNeBE4PwoQ99iEcffZSjjjoKM+Pyyy/ngAMO4Gc/+xlXXHEFyWSSlpYWbrzxRtatW8enPvUp8nk/YeZll102jDUREZGxwPpr6q5aBcxOB9LAEcBUIIdvPbgVuCqYdyFcfh7wPfreq+LSMtNNY2ZxfIvDefh7VbThWyIuCS7xHFBhcGQmk+mzfvny5cybN28wL5Nt7V28vn03AJPGNTB94vC0ONS7oRwrERGpqQFn76t5i4Nz7jfAbwZRfjlweoVlc/h7VFw5tNoNn/AkivkahzUREZGhqtvBkaONhQKccoOIiESVgkOVhFscat09JCIiMlQKDlUyUoMjRUREqknBoUrU4iAiIqOBgkOVaIyDiIiMBgoOVRJTi4OIiIwCCg5VEh7jkK9ybmhpael326pVqzjiiCOqWBsREYkyBYcq6TPGQcMjRUQkomo+AVTknfPeioqlgEMH+9zX31129Ze//GUOPPBA0uk0AJdeeilmxoMPPsjWrVvp6enhO9/5DqefXtE8Wb06Ozv5/Oc/z5IlS0gkElx11VWcfPLJPPfcc3zqU5+iu7ubfD7PL3/5S2bOnMlHPvIR1q5dSy6X4x//8R/56Ec/OthXKCIiEaPgEEGLFy/moosu6g0Ot956K3fffTcXX3wxEyZMoK2tjeOPP54PfvCDfbpI9uaaa64BYNmyZTz//PO8+93v5sUXX+THP/4xX/jCFzjrrLPo7u4ml8tx1113MXPmTO68804Atm/fPvwvVERE6o66KiLo6KOP5vXXX2f9+vU888wzTJ48mRkzZvDVr36VI488klNPPZV169bx2muv7f3JQh5++GE+/vGPAzB37lwOPPBAXnzxRU444QS++93v8k//9E+sXr2apqYm5s+fz7333suXv/xlHnroISZOnDgSL1VEROqMWhz2VT/dCaXyzvHyBn9Wbma8aca+fdB++MMf5rbbbmPjxo0sXryYm266iU2bNvHUU0+RTCaZPXs2nZ2de3+ikP6u9vjYxz7GW9/6Vu68807e8573cP3113PKKafw1FNPcdddd/GVr3yFd7/73VxyySX79JpERKT+KThUSbjDwDmHc25Q3QilFi9ezLnnnktbWxsPPPAAt956K9OnTyeZTHLfffexevXqQT/nokWLuOmmmzjl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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ooo.plot_history(history, plot={'MSE' :['mse', 'val_mse'],\n",
    "                                'MAE' :['mae', 'val_mae'],\n",
    "                                'LOSS':['loss','val_loss']})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Step 7 - Restore a model :"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 7.1 - Reload model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "Dense_n1 (Dense)             (None, 64)                896       \n",
      "_________________________________________________________________\n",
      "Dense_n2 (Dense)             (None, 64)                4160      \n",
      "_________________________________________________________________\n",
      "Output (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",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "x_test / loss      : 15.6912\n",
      "x_test / mae       : 2.5630\n",
      "x_test / mse       : 15.6912\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",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "my_data = [ 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",
    "real_price = 10.4\n",
    "\n",
    "my_data=np.array(my_data).reshape(1,13)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Prediction : 11.54 K$   Reality : 10.40 K$\n"
     ]
    }
   ],
   "source": [
    "predictions = loaded_model.predict( my_data )\n",
    "print(\"Prediction : {:.2f} K$   Reality : {:.2f} K$\".format(predictions[0][0], real_price))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "---\n",
    "<img width=\"80px\" src=\"../fidle/img/00-Fidle-logo-01.svg\"></img>"
   ]
  }
 ],
 "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.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}