{
 "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.57 DEV\n",
      "Run time             : Wednesday 9 September 2020, 11:00:51\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()"
   ]
  },
  {
   "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_f5e06af6_f27a_11ea_a6e3_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_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7level0_row0\" class=\"row_heading level0 row0\" >0</th>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row0_col0\" class=\"data row0 col0\" >0.01</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row0_col1\" class=\"data row0 col1\" >18.00</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row0_col2\" class=\"data row0 col2\" >2.31</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row0_col3\" class=\"data row0 col3\" >0.00</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row0_col4\" class=\"data row0 col4\" >0.54</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row0_col5\" class=\"data row0 col5\" >6.58</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row0_col6\" class=\"data row0 col6\" >65.20</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row0_col7\" class=\"data row0 col7\" >4.09</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row0_col8\" class=\"data row0 col8\" >1.00</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row0_col9\" class=\"data row0 col9\" >296.00</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row0_col10\" class=\"data row0 col10\" >15.30</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row0_col11\" class=\"data row0 col11\" >396.90</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row0_col12\" class=\"data row0 col12\" >4.98</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row0_col13\" class=\"data row0 col13\" >24.00</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7level0_row1\" class=\"row_heading level0 row1\" >1</th>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row1_col0\" class=\"data row1 col0\" >0.03</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row1_col1\" class=\"data row1 col1\" >0.00</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row1_col2\" class=\"data row1 col2\" >7.07</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row1_col3\" class=\"data row1 col3\" >0.00</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row1_col4\" class=\"data row1 col4\" >0.47</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row1_col5\" class=\"data row1 col5\" >6.42</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row1_col6\" class=\"data row1 col6\" >78.90</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row1_col7\" class=\"data row1 col7\" >4.97</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row1_col8\" class=\"data row1 col8\" >2.00</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row1_col9\" class=\"data row1 col9\" >242.00</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row1_col10\" class=\"data row1 col10\" >17.80</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row1_col11\" class=\"data row1 col11\" >396.90</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row1_col12\" class=\"data row1 col12\" >9.14</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row1_col13\" class=\"data row1 col13\" >21.60</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7level0_row2\" class=\"row_heading level0 row2\" >2</th>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row2_col0\" class=\"data row2 col0\" >0.03</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row2_col1\" class=\"data row2 col1\" >0.00</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row2_col2\" class=\"data row2 col2\" >7.07</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row2_col3\" class=\"data row2 col3\" >0.00</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row2_col4\" class=\"data row2 col4\" >0.47</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row2_col5\" class=\"data row2 col5\" >7.18</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row2_col6\" class=\"data row2 col6\" >61.10</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row2_col7\" class=\"data row2 col7\" >4.97</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row2_col8\" class=\"data row2 col8\" >2.00</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row2_col9\" class=\"data row2 col9\" >242.00</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row2_col10\" class=\"data row2 col10\" >17.80</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row2_col11\" class=\"data row2 col11\" >392.83</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row2_col12\" class=\"data row2 col12\" >4.03</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row2_col13\" class=\"data row2 col13\" >34.70</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7level0_row3\" class=\"row_heading level0 row3\" >3</th>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row3_col0\" class=\"data row3 col0\" >0.03</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row3_col1\" class=\"data row3 col1\" >0.00</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row3_col2\" class=\"data row3 col2\" >2.18</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row3_col3\" class=\"data row3 col3\" >0.00</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row3_col4\" class=\"data row3 col4\" >0.46</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row3_col5\" class=\"data row3 col5\" >7.00</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row3_col6\" class=\"data row3 col6\" >45.80</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row3_col7\" class=\"data row3 col7\" >6.06</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row3_col8\" class=\"data row3 col8\" >3.00</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row3_col9\" class=\"data row3 col9\" >222.00</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row3_col10\" class=\"data row3 col10\" >18.70</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row3_col11\" class=\"data row3 col11\" >394.63</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row3_col12\" class=\"data row3 col12\" >2.94</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row3_col13\" class=\"data row3 col13\" >33.40</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7level0_row4\" class=\"row_heading level0 row4\" >4</th>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row4_col0\" class=\"data row4 col0\" >0.07</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row4_col1\" class=\"data row4 col1\" >0.00</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row4_col2\" class=\"data row4 col2\" >2.18</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row4_col3\" class=\"data row4 col3\" >0.00</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row4_col4\" class=\"data row4 col4\" >0.46</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row4_col5\" class=\"data row4 col5\" >7.15</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row4_col6\" class=\"data row4 col6\" >54.20</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row4_col7\" class=\"data row4 col7\" >6.06</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row4_col8\" class=\"data row4 col8\" >3.00</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row4_col9\" class=\"data row4 col9\" >222.00</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row4_col10\" class=\"data row4 col10\" >18.70</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row4_col11\" class=\"data row4 col11\" >396.90</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row4_col12\" class=\"data row4 col12\" >5.33</td>\n",
       "                        <td id=\"T_f5e06af6_f27a_11ea_a6e3_0cc47af5c7c7row4_col13\" class=\"data row4 col13\" >36.20</td>\n",
       "            </tr>\n",
       "    </tbody></table>"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x14ca92742b90>"
      ]
     },
     "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_f5e98e2e_f27a_11ea_a6e3_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_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7level0_row0\" class=\"row_heading level0 row0\" >count</th>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row0_col0\" class=\"data row0 col0\" >354.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row0_col1\" class=\"data row0 col1\" >354.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row0_col2\" class=\"data row0 col2\" >354.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row0_col3\" class=\"data row0 col3\" >354.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row0_col4\" class=\"data row0 col4\" >354.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row0_col5\" class=\"data row0 col5\" >354.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row0_col6\" class=\"data row0 col6\" >354.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row0_col7\" class=\"data row0 col7\" >354.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row0_col8\" class=\"data row0 col8\" >354.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row0_col9\" class=\"data row0 col9\" >354.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row0_col10\" class=\"data row0 col10\" >354.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row0_col11\" class=\"data row0 col11\" >354.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row0_col12\" class=\"data row0 col12\" >354.00</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7level0_row1\" class=\"row_heading level0 row1\" >mean</th>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row1_col0\" class=\"data row1 col0\" >3.07</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row1_col1\" class=\"data row1 col1\" >12.53</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row1_col2\" class=\"data row1 col2\" >10.98</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row1_col3\" class=\"data row1 col3\" >0.08</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row1_col4\" class=\"data row1 col4\" >0.55</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row1_col5\" class=\"data row1 col5\" >6.29</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row1_col6\" class=\"data row1 col6\" >67.76</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row1_col7\" class=\"data row1 col7\" >3.89</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row1_col8\" class=\"data row1 col8\" >9.38</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row1_col9\" class=\"data row1 col9\" >404.50</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row1_col10\" class=\"data row1 col10\" >18.44</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row1_col11\" class=\"data row1 col11\" >360.71</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row1_col12\" class=\"data row1 col12\" >12.17</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7level0_row2\" class=\"row_heading level0 row2\" >std</th>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row2_col0\" class=\"data row2 col0\" >6.81</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row2_col1\" class=\"data row2 col1\" >24.87</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row2_col2\" class=\"data row2 col2\" >6.84</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row2_col3\" class=\"data row2 col3\" >0.27</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row2_col4\" class=\"data row2 col4\" >0.12</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row2_col5\" class=\"data row2 col5\" >0.71</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row2_col6\" class=\"data row2 col6\" >28.11</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row2_col7\" class=\"data row2 col7\" >2.17</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row2_col8\" class=\"data row2 col8\" >8.60</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row2_col9\" class=\"data row2 col9\" >167.81</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row2_col10\" class=\"data row2 col10\" >2.15</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row2_col11\" class=\"data row2 col11\" >84.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row2_col12\" class=\"data row2 col12\" >6.72</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7level0_row3\" class=\"row_heading level0 row3\" >min</th>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row3_col0\" class=\"data row3 col0\" >0.01</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row3_col1\" class=\"data row3 col1\" >0.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row3_col2\" class=\"data row3 col2\" >0.46</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row3_col3\" class=\"data row3 col3\" >0.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row3_col4\" class=\"data row3 col4\" >0.39</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row3_col5\" class=\"data row3 col5\" >3.56</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row3_col6\" class=\"data row3 col6\" >2.90</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row3_col7\" class=\"data row3 col7\" >1.13</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row3_col8\" class=\"data row3 col8\" >1.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row3_col9\" class=\"data row3 col9\" >187.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row3_col10\" class=\"data row3 col10\" >12.60</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row3_col11\" class=\"data row3 col11\" >0.32</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row3_col12\" class=\"data row3 col12\" >1.92</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7level0_row4\" class=\"row_heading level0 row4\" >25%</th>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row4_col0\" class=\"data row4 col0\" >0.08</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row4_col1\" class=\"data row4 col1\" >0.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row4_col2\" class=\"data row4 col2\" >5.13</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row4_col3\" class=\"data row4 col3\" >0.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row4_col4\" class=\"data row4 col4\" >0.45</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row4_col5\" class=\"data row4 col5\" >5.89</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row4_col6\" class=\"data row4 col6\" >43.88</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row4_col7\" class=\"data row4 col7\" >2.11</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row4_col8\" class=\"data row4 col8\" >4.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row4_col9\" class=\"data row4 col9\" >277.50</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row4_col10\" class=\"data row4 col10\" >17.40</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row4_col11\" class=\"data row4 col11\" >375.38</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row4_col12\" class=\"data row4 col12\" >6.86</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7level0_row5\" class=\"row_heading level0 row5\" >50%</th>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row5_col0\" class=\"data row5 col0\" >0.23</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row5_col1\" class=\"data row5 col1\" >0.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row5_col2\" class=\"data row5 col2\" >9.12</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row5_col3\" class=\"data row5 col3\" >0.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row5_col4\" class=\"data row5 col4\" >0.53</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row5_col5\" class=\"data row5 col5\" >6.23</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row5_col6\" class=\"data row5 col6\" >74.95</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row5_col7\" class=\"data row5 col7\" >3.27</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row5_col8\" class=\"data row5 col8\" >5.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row5_col9\" class=\"data row5 col9\" >330.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row5_col10\" class=\"data row5 col10\" >19.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row5_col11\" class=\"data row5 col11\" >391.30</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row5_col12\" class=\"data row5 col12\" >10.92</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7level0_row6\" class=\"row_heading level0 row6\" >75%</th>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row6_col0\" class=\"data row6 col0\" >3.08</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row6_col1\" class=\"data row6 col1\" >20.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row6_col2\" class=\"data row6 col2\" >18.10</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row6_col3\" class=\"data row6 col3\" >0.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row6_col4\" class=\"data row6 col4\" >0.62</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row6_col5\" class=\"data row6 col5\" >6.59</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row6_col6\" class=\"data row6 col6\" >93.75</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row6_col7\" class=\"data row6 col7\" >5.40</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row6_col8\" class=\"data row6 col8\" >20.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row6_col9\" class=\"data row6 col9\" >666.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row6_col10\" class=\"data row6 col10\" >20.20</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row6_col11\" class=\"data row6 col11\" >396.23</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row6_col12\" class=\"data row6 col12\" >16.11</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7level0_row7\" class=\"row_heading level0 row7\" >max</th>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row7_col0\" class=\"data row7 col0\" >67.92</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row7_col1\" class=\"data row7 col1\" >100.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row7_col2\" class=\"data row7 col2\" >27.74</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row7_col3\" class=\"data row7 col3\" >1.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row7_col4\" class=\"data row7 col4\" >0.87</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row7_col5\" class=\"data row7 col5\" >8.78</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row7_col6\" class=\"data row7 col6\" >100.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row7_col7\" class=\"data row7 col7\" >12.13</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row7_col8\" class=\"data row7 col8\" >24.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row7_col9\" class=\"data row7 col9\" >711.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row7_col10\" class=\"data row7 col10\" >22.00</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row7_col11\" class=\"data row7 col11\" >396.90</td>\n",
       "                        <td id=\"T_f5e98e2e_f27a_11ea_a6e3_0cc47af5c7c7row7_col12\" class=\"data row7 col12\" >37.97</td>\n",
       "            </tr>\n",
       "    </tbody></table>"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x14ca97c6d6d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<style  type=\"text/css\" >\n",
       "</style><table id=\"T_f5f2e96a_f27a_11ea_a6e3_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_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7level0_row0\" class=\"row_heading level0 row0\" >count</th>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row0_col0\" class=\"data row0 col0\" >354.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row0_col1\" class=\"data row0 col1\" >354.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row0_col2\" class=\"data row0 col2\" >354.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row0_col3\" class=\"data row0 col3\" >354.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row0_col4\" class=\"data row0 col4\" >354.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row0_col5\" class=\"data row0 col5\" >354.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row0_col6\" class=\"data row0 col6\" >354.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row0_col7\" class=\"data row0 col7\" >354.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row0_col8\" class=\"data row0 col8\" >354.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row0_col9\" class=\"data row0 col9\" >354.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row0_col10\" class=\"data row0 col10\" >354.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row0_col11\" class=\"data row0 col11\" >354.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row0_col12\" class=\"data row0 col12\" >354.00</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7level0_row1\" class=\"row_heading level0 row1\" >mean</th>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row1_col0\" class=\"data row1 col0\" >-0.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row1_col1\" class=\"data row1 col1\" >-0.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row1_col2\" class=\"data row1 col2\" >0.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row1_col3\" class=\"data row1 col3\" >0.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row1_col4\" class=\"data row1 col4\" >-0.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row1_col5\" class=\"data row1 col5\" >-0.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row1_col6\" class=\"data row1 col6\" >0.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row1_col7\" class=\"data row1 col7\" >0.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row1_col8\" class=\"data row1 col8\" >0.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row1_col9\" class=\"data row1 col9\" >-0.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row1_col10\" class=\"data row1 col10\" >0.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row1_col11\" class=\"data row1 col11\" >0.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row1_col12\" class=\"data row1 col12\" >0.00</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7level0_row2\" class=\"row_heading level0 row2\" >std</th>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row2_col0\" class=\"data row2 col0\" >1.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row2_col1\" class=\"data row2 col1\" >1.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row2_col2\" class=\"data row2 col2\" >1.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row2_col3\" class=\"data row2 col3\" >1.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row2_col4\" class=\"data row2 col4\" >1.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row2_col5\" class=\"data row2 col5\" >1.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row2_col6\" class=\"data row2 col6\" >1.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row2_col7\" class=\"data row2 col7\" >1.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row2_col8\" class=\"data row2 col8\" >1.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row2_col9\" class=\"data row2 col9\" >1.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row2_col10\" class=\"data row2 col10\" >1.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row2_col11\" class=\"data row2 col11\" >1.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row2_col12\" class=\"data row2 col12\" >1.00</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7level0_row3\" class=\"row_heading level0 row3\" >min</th>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row3_col0\" class=\"data row3 col0\" >-0.45</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row3_col1\" class=\"data row3 col1\" >-0.50</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row3_col2\" class=\"data row3 col2\" >-1.54</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row3_col3\" class=\"data row3 col3\" >-0.29</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row3_col4\" class=\"data row3 col4\" >-1.41</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row3_col5\" class=\"data row3 col5\" >-3.82</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row3_col6\" class=\"data row3 col6\" >-2.31</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row3_col7\" class=\"data row3 col7\" >-1.27</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row3_col8\" class=\"data row3 col8\" >-0.97</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row3_col9\" class=\"data row3 col9\" >-1.30</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row3_col10\" class=\"data row3 col10\" >-2.72</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row3_col11\" class=\"data row3 col11\" >-4.29</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row3_col12\" class=\"data row3 col12\" >-1.52</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7level0_row4\" class=\"row_heading level0 row4\" >25%</th>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row4_col0\" class=\"data row4 col0\" >-0.44</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row4_col1\" class=\"data row4 col1\" >-0.50</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row4_col2\" class=\"data row4 col2\" >-0.86</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row4_col3\" class=\"data row4 col3\" >-0.29</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row4_col4\" class=\"data row4 col4\" >-0.88</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row4_col5\" class=\"data row4 col5\" >-0.56</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row4_col6\" class=\"data row4 col6\" >-0.85</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row4_col7\" class=\"data row4 col7\" >-0.82</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row4_col8\" class=\"data row4 col8\" >-0.63</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row4_col9\" class=\"data row4 col9\" >-0.76</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row4_col10\" class=\"data row4 col10\" >-0.48</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row4_col11\" class=\"data row4 col11\" >0.17</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row4_col12\" class=\"data row4 col12\" >-0.79</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7level0_row5\" class=\"row_heading level0 row5\" >50%</th>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row5_col0\" class=\"data row5 col0\" >-0.42</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row5_col1\" class=\"data row5 col1\" >-0.50</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row5_col2\" class=\"data row5 col2\" >-0.27</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row5_col3\" class=\"data row5 col3\" >-0.29</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row5_col4\" class=\"data row5 col4\" >-0.20</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row5_col5\" class=\"data row5 col5\" >-0.08</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row5_col6\" class=\"data row5 col6\" >0.26</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row5_col7\" class=\"data row5 col7\" >-0.29</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row5_col8\" class=\"data row5 col8\" >-0.51</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row5_col9\" class=\"data row5 col9\" >-0.44</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row5_col10\" class=\"data row5 col10\" >0.26</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row5_col11\" class=\"data row5 col11\" >0.36</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row5_col12\" class=\"data row5 col12\" >-0.19</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7level0_row6\" class=\"row_heading level0 row6\" >75%</th>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row6_col0\" class=\"data row6 col0\" >0.00</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row6_col1\" class=\"data row6 col1\" >0.30</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row6_col2\" class=\"data row6 col2\" >1.04</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row6_col3\" class=\"data row6 col3\" >-0.29</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row6_col4\" class=\"data row6 col4\" >0.61</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row6_col5\" class=\"data row6 col5\" >0.43</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row6_col6\" class=\"data row6 col6\" >0.92</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row6_col7\" class=\"data row6 col7\" >0.70</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row6_col8\" class=\"data row6 col8\" >1.24</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row6_col9\" class=\"data row6 col9\" >1.56</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row6_col10\" class=\"data row6 col10\" >0.82</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row6_col11\" class=\"data row6 col11\" >0.42</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row6_col12\" class=\"data row6 col12\" >0.59</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7level0_row7\" class=\"row_heading level0 row7\" >max</th>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row7_col0\" class=\"data row7 col0\" >9.53</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row7_col1\" class=\"data row7 col1\" >3.52</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row7_col2\" class=\"data row7 col2\" >2.45</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row7_col3\" class=\"data row7 col3\" >3.48</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row7_col4\" class=\"data row7 col4\" >2.69</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row7_col5\" class=\"data row7 col5\" >3.49</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row7_col6\" class=\"data row7 col6\" >1.15</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row7_col7\" class=\"data row7 col7\" >3.79</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row7_col8\" class=\"data row7 col8\" >1.70</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row7_col9\" class=\"data row7 col9\" >1.83</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row7_col10\" class=\"data row7 col10\" >1.66</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row7_col11\" class=\"data row7 col11\" >0.43</td>\n",
       "                        <td id=\"T_f5f2e96a_f27a_11ea_a6e3_0cc47af5c7c7row7_col12\" class=\"data row7 col12\" >3.84</td>\n",
       "            </tr>\n",
       "    </tbody></table>"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x14ca0e2831d0>"
      ]
     },
     "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 9ms/step - loss: 464.3179 - mae: 19.4903 - mse: 464.3179 - val_loss: 300.5945 - val_mae: 15.0059 - val_mse: 300.5945\n",
      "Epoch 2/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 210.3516 - mae: 12.0248 - mse: 210.3516 - val_loss: 95.9466 - val_mae: 7.9299 - val_mse: 95.9466\n",
      "Epoch 3/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 75.3829 - mae: 6.4977 - mse: 75.3829 - val_loss: 45.8770 - val_mae: 5.2594 - val_mse: 45.8770\n",
      "Epoch 4/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 44.4687 - mae: 4.8343 - mse: 44.4687 - val_loss: 32.0006 - val_mae: 4.3209 - val_mse: 32.0006\n",
      "Epoch 5/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 31.9091 - mae: 4.0118 - mse: 31.9091 - val_loss: 25.6122 - val_mae: 3.8391 - val_mse: 25.6122\n",
      "Epoch 6/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 26.1435 - mae: 3.5315 - mse: 26.1435 - val_loss: 22.8504 - val_mae: 3.6086 - val_mse: 22.8504\n",
      "Epoch 7/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 23.3323 - mae: 3.3236 - mse: 23.3323 - val_loss: 21.7002 - val_mae: 3.4371 - val_mse: 21.7002\n",
      "Epoch 8/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 21.7261 - mae: 3.1901 - mse: 21.7261 - val_loss: 19.6735 - val_mae: 3.2934 - val_mse: 19.6735\n",
      "Epoch 9/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 19.9363 - mae: 3.0510 - mse: 19.9363 - val_loss: 18.1420 - val_mae: 3.1370 - val_mse: 18.1420\n",
      "Epoch 10/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 18.8774 - mae: 2.9149 - mse: 18.8774 - val_loss: 17.7544 - val_mae: 3.1180 - val_mse: 17.7544\n",
      "Epoch 11/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 17.9721 - mae: 2.8677 - mse: 17.9721 - val_loss: 17.0985 - val_mae: 3.0291 - val_mse: 17.0985\n",
      "Epoch 12/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 17.1248 - mae: 2.7953 - mse: 17.1248 - val_loss: 15.5980 - val_mae: 2.8878 - val_mse: 15.5980\n",
      "Epoch 13/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 16.2993 - mae: 2.7175 - mse: 16.2993 - val_loss: 14.1831 - val_mae: 2.7218 - val_mse: 14.1831\n",
      "Epoch 14/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 15.7511 - mae: 2.6758 - mse: 15.7511 - val_loss: 13.5955 - val_mae: 2.6849 - val_mse: 13.5955\n",
      "Epoch 15/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 15.2687 - mae: 2.5994 - mse: 15.2687 - val_loss: 13.0800 - val_mae: 2.6282 - val_mse: 13.0800\n",
      "Epoch 16/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 15.0158 - mae: 2.6073 - mse: 15.0158 - val_loss: 13.5067 - val_mae: 2.6882 - val_mse: 13.5067\n",
      "Epoch 17/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 14.2024 - mae: 2.5947 - mse: 14.2024 - val_loss: 12.5138 - val_mae: 2.5807 - val_mse: 12.5138\n",
      "Epoch 18/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 13.8580 - mae: 2.5159 - mse: 13.8580 - val_loss: 12.1462 - val_mae: 2.5519 - val_mse: 12.1462\n",
      "Epoch 19/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 13.5534 - mae: 2.4544 - mse: 13.5534 - val_loss: 13.2271 - val_mae: 2.6670 - val_mse: 13.2271\n",
      "Epoch 20/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 13.1601 - mae: 2.4835 - mse: 13.1601 - val_loss: 12.2382 - val_mae: 2.5735 - val_mse: 12.2382\n",
      "Epoch 21/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 12.8416 - mae: 2.4615 - mse: 12.8416 - val_loss: 11.6524 - val_mae: 2.5474 - val_mse: 11.6524\n",
      "Epoch 22/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 12.6749 - mae: 2.4223 - mse: 12.6749 - val_loss: 11.5032 - val_mae: 2.4850 - val_mse: 11.5032\n",
      "Epoch 23/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 12.6816 - mae: 2.4281 - mse: 12.6816 - val_loss: 10.9349 - val_mae: 2.4318 - val_mse: 10.9349\n",
      "Epoch 24/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 12.3611 - mae: 2.3538 - mse: 12.3611 - val_loss: 11.7561 - val_mae: 2.5131 - val_mse: 11.7561\n",
      "Epoch 25/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 11.9544 - mae: 2.3524 - mse: 11.9544 - val_loss: 10.4493 - val_mae: 2.4044 - val_mse: 10.4493\n",
      "Epoch 26/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 11.9029 - mae: 2.3492 - mse: 11.9029 - val_loss: 10.5980 - val_mae: 2.4162 - val_mse: 10.5980\n",
      "Epoch 27/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 11.6171 - mae: 2.3164 - mse: 11.6171 - val_loss: 11.8736 - val_mae: 2.5398 - val_mse: 11.8736\n",
      "Epoch 28/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 11.4925 - mae: 2.2617 - mse: 11.4925 - val_loss: 10.5695 - val_mae: 2.4465 - val_mse: 10.5695\n",
      "Epoch 29/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 11.1286 - mae: 2.2877 - mse: 11.1286 - val_loss: 10.5518 - val_mae: 2.4177 - val_mse: 10.5518\n",
      "Epoch 30/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 11.0731 - mae: 2.2646 - mse: 11.0731 - val_loss: 10.7282 - val_mae: 2.5008 - val_mse: 10.7282\n",
      "Epoch 31/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 10.8612 - mae: 2.2716 - mse: 10.8612 - val_loss: 10.4843 - val_mae: 2.4441 - val_mse: 10.4843\n",
      "Epoch 32/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 10.7246 - mae: 2.2451 - mse: 10.7246 - val_loss: 10.2704 - val_mae: 2.4012 - val_mse: 10.2704\n",
      "Epoch 33/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 10.2492 - mae: 2.2077 - mse: 10.2492 - val_loss: 11.2221 - val_mae: 2.4831 - val_mse: 11.2221\n",
      "Epoch 34/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 10.5584 - mae: 2.2630 - mse: 10.5584 - val_loss: 10.1440 - val_mae: 2.3830 - val_mse: 10.1440\n",
      "Epoch 35/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 10.1813 - mae: 2.2209 - mse: 10.1813 - val_loss: 10.0476 - val_mae: 2.4062 - val_mse: 10.0476\n",
      "Epoch 36/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 10.1717 - mae: 2.1967 - mse: 10.1717 - val_loss: 10.4632 - val_mae: 2.4100 - val_mse: 10.4632\n",
      "Epoch 37/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 9.9246 - mae: 2.1798 - mse: 9.9246 - val_loss: 9.9208 - val_mae: 2.3727 - val_mse: 9.9208\n",
      "Epoch 38/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 9.8159 - mae: 2.1963 - mse: 9.8159 - val_loss: 9.8359 - val_mae: 2.3581 - val_mse: 9.8359\n",
      "Epoch 39/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 9.6780 - mae: 2.1873 - mse: 9.6780 - val_loss: 9.8701 - val_mae: 2.4062 - val_mse: 9.8701\n",
      "Epoch 40/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 9.5251 - mae: 2.1342 - mse: 9.5251 - val_loss: 9.6047 - val_mae: 2.3436 - val_mse: 9.6047\n",
      "Epoch 41/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 9.4746 - mae: 2.1520 - mse: 9.4746 - val_loss: 9.7373 - val_mae: 2.3457 - val_mse: 9.7373\n",
      "Epoch 42/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 9.3605 - mae: 2.1175 - mse: 9.3605 - val_loss: 9.6054 - val_mae: 2.3524 - val_mse: 9.6054\n",
      "Epoch 43/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 9.1918 - mae: 2.0797 - mse: 9.1918 - val_loss: 10.9157 - val_mae: 2.5016 - val_mse: 10.9157\n",
      "Epoch 44/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 9.2843 - mae: 2.1522 - mse: 9.2843 - val_loss: 9.9002 - val_mae: 2.3441 - val_mse: 9.9002\n",
      "Epoch 45/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 9.0087 - mae: 2.0700 - mse: 9.0087 - val_loss: 10.5514 - val_mae: 2.4250 - val_mse: 10.5514\n",
      "Epoch 46/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 9.3039 - mae: 2.0954 - mse: 9.3039 - val_loss: 9.4293 - val_mae: 2.3046 - val_mse: 9.4293\n",
      "Epoch 47/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 8.8293 - mae: 2.0884 - mse: 8.8293 - val_loss: 9.8420 - val_mae: 2.3579 - val_mse: 9.8420\n",
      "Epoch 48/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 8.4904 - mae: 2.0120 - mse: 8.4904 - val_loss: 10.4072 - val_mae: 2.4245 - val_mse: 10.4072\n",
      "Epoch 49/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 8.8349 - mae: 2.0911 - mse: 8.8349 - val_loss: 10.0544 - val_mae: 2.3717 - val_mse: 10.0544\n",
      "Epoch 50/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 8.6408 - mae: 2.0619 - mse: 8.6408 - val_loss: 9.8039 - val_mae: 2.3605 - val_mse: 9.8039\n",
      "Epoch 51/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 8.4134 - mae: 2.0194 - mse: 8.4134 - val_loss: 10.1903 - val_mae: 2.4832 - val_mse: 10.1903\n",
      "Epoch 52/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 8.5242 - mae: 2.0351 - mse: 8.5242 - val_loss: 9.9179 - val_mae: 2.3458 - val_mse: 9.9179\n",
      "Epoch 53/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 8.3565 - mae: 2.0397 - mse: 8.3565 - val_loss: 9.6521 - val_mae: 2.3412 - val_mse: 9.6521\n",
      "Epoch 54/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 8.2495 - mae: 1.9986 - mse: 8.2495 - val_loss: 9.9712 - val_mae: 2.3574 - val_mse: 9.9712\n",
      "Epoch 55/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 8.0835 - mae: 2.0002 - mse: 8.0835 - val_loss: 9.4039 - val_mae: 2.2964 - val_mse: 9.4039\n",
      "Epoch 56/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 8.2084 - mae: 2.0002 - mse: 8.2084 - val_loss: 9.4648 - val_mae: 2.2763 - val_mse: 9.4648\n",
      "Epoch 57/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.9313 - mae: 1.9832 - mse: 7.9313 - val_loss: 9.3518 - val_mae: 2.3142 - val_mse: 9.3518\n",
      "Epoch 58/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.9016 - mae: 1.9883 - mse: 7.9016 - val_loss: 9.5171 - val_mae: 2.2856 - val_mse: 9.5171\n",
      "Epoch 59/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.5397 - mae: 1.9664 - mse: 7.5397 - val_loss: 9.8379 - val_mae: 2.3513 - val_mse: 9.8379\n",
      "Epoch 60/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.7821 - mae: 1.9785 - mse: 7.7821 - val_loss: 10.2346 - val_mae: 2.3923 - val_mse: 10.2346\n",
      "Epoch 61/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.4210 - mae: 1.9411 - mse: 7.4210 - val_loss: 10.6922 - val_mae: 2.4746 - val_mse: 10.6922\n",
      "Epoch 62/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.6971 - mae: 1.9652 - mse: 7.6971 - val_loss: 9.8674 - val_mae: 2.3253 - val_mse: 9.8674\n",
      "Epoch 63/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.3951 - mae: 1.8894 - mse: 7.3951 - val_loss: 10.4463 - val_mae: 2.3428 - val_mse: 10.4463\n",
      "Epoch 64/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.5593 - mae: 1.9750 - mse: 7.5593 - val_loss: 9.6882 - val_mae: 2.3001 - val_mse: 9.6882\n",
      "Epoch 65/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.3326 - mae: 1.9378 - mse: 7.3326 - val_loss: 9.4496 - val_mae: 2.2812 - val_mse: 9.4496\n",
      "Epoch 66/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.3662 - mae: 1.9473 - mse: 7.3662 - val_loss: 9.9898 - val_mae: 2.3405 - val_mse: 9.9898\n",
      "Epoch 67/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.0702 - mae: 1.8791 - mse: 7.0702 - val_loss: 9.5983 - val_mae: 2.3591 - val_mse: 9.5983\n",
      "Epoch 68/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.3172 - mae: 1.8818 - mse: 7.3172 - val_loss: 9.3529 - val_mae: 2.3073 - val_mse: 9.3529\n",
      "Epoch 69/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.0806 - mae: 1.8967 - mse: 7.0806 - val_loss: 9.4295 - val_mae: 2.2528 - val_mse: 9.4295\n",
      "Epoch 70/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.0670 - mae: 1.8803 - mse: 7.0670 - val_loss: 9.4532 - val_mae: 2.2795 - val_mse: 9.4532\n",
      "Epoch 71/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.8649 - mae: 1.8625 - mse: 6.8649 - val_loss: 9.8749 - val_mae: 2.3351 - val_mse: 9.8749\n",
      "Epoch 72/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 7.1806 - mae: 1.8766 - mse: 7.1806 - val_loss: 9.2817 - val_mae: 2.2604 - val_mse: 9.2817\n",
      "Epoch 73/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.5872 - mae: 1.8418 - mse: 6.5872 - val_loss: 10.0303 - val_mae: 2.3655 - val_mse: 10.0303\n",
      "Epoch 74/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.9548 - mae: 1.8869 - mse: 6.9548 - val_loss: 9.6569 - val_mae: 2.3599 - val_mse: 9.6569\n",
      "Epoch 75/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.6876 - mae: 1.8333 - mse: 6.6876 - val_loss: 9.7876 - val_mae: 2.3004 - val_mse: 9.7876\n",
      "Epoch 76/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.5796 - mae: 1.8046 - mse: 6.5796 - val_loss: 10.9338 - val_mae: 2.5001 - val_mse: 10.9338\n",
      "Epoch 77/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.6413 - mae: 1.8520 - mse: 6.6413 - val_loss: 9.4304 - val_mae: 2.2907 - val_mse: 9.4304\n",
      "Epoch 78/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.5130 - mae: 1.8083 - mse: 6.5130 - val_loss: 9.6580 - val_mae: 2.2899 - val_mse: 9.6580\n",
      "Epoch 79/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.6066 - mae: 1.8006 - mse: 6.6066 - val_loss: 9.7482 - val_mae: 2.3357 - val_mse: 9.7482\n",
      "Epoch 80/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.5883 - mae: 1.8347 - mse: 6.5883 - val_loss: 9.3894 - val_mae: 2.2851 - val_mse: 9.3894\n",
      "Epoch 81/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.2812 - mae: 1.8058 - mse: 6.2812 - val_loss: 9.6674 - val_mae: 2.2690 - val_mse: 9.6674\n",
      "Epoch 82/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.1064 - mae: 1.7769 - mse: 6.1064 - val_loss: 10.1801 - val_mae: 2.4166 - val_mse: 10.1801\n",
      "Epoch 83/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.4294 - mae: 1.8218 - mse: 6.4294 - val_loss: 9.4559 - val_mae: 2.2654 - val_mse: 9.4559\n",
      "Epoch 84/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.0423 - mae: 1.7521 - mse: 6.0423 - val_loss: 11.2327 - val_mae: 2.5183 - val_mse: 11.2327\n",
      "Epoch 85/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.1562 - mae: 1.8249 - mse: 6.1562 - val_loss: 9.4051 - val_mae: 2.2513 - val_mse: 9.4051\n",
      "Epoch 86/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.0152 - mae: 1.7271 - mse: 6.0152 - val_loss: 9.4244 - val_mae: 2.3221 - val_mse: 9.4244\n",
      "Epoch 87/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.0965 - mae: 1.7570 - mse: 6.0965 - val_loss: 9.6101 - val_mae: 2.2832 - val_mse: 9.6101\n",
      "Epoch 88/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 6.0068 - mae: 1.7716 - mse: 6.0068 - val_loss: 9.8208 - val_mae: 2.3006 - val_mse: 9.8208\n",
      "Epoch 89/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.7903 - mae: 1.7209 - mse: 5.7903 - val_loss: 9.7818 - val_mae: 2.3172 - val_mse: 9.7818\n",
      "Epoch 90/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.5913 - mae: 1.7205 - mse: 5.5913 - val_loss: 9.6276 - val_mae: 2.3013 - val_mse: 9.6276\n",
      "Epoch 91/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.7449 - mae: 1.7211 - mse: 5.7449 - val_loss: 9.8309 - val_mae: 2.3741 - val_mse: 9.8309\n",
      "Epoch 92/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.8709 - mae: 1.7436 - mse: 5.8709 - val_loss: 9.9179 - val_mae: 2.3221 - val_mse: 9.9179\n",
      "Epoch 93/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.6160 - mae: 1.7221 - mse: 5.6160 - val_loss: 9.6447 - val_mae: 2.3046 - val_mse: 9.6447\n",
      "Epoch 94/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.2876 - mae: 1.6580 - mse: 5.2876 - val_loss: 10.0195 - val_mae: 2.3577 - val_mse: 10.0195\n",
      "Epoch 95/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.4876 - mae: 1.6877 - mse: 5.4876 - val_loss: 9.8938 - val_mae: 2.3708 - val_mse: 9.8938\n",
      "Epoch 96/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.4094 - mae: 1.7069 - mse: 5.4094 - val_loss: 9.5077 - val_mae: 2.2969 - val_mse: 9.5077\n",
      "Epoch 97/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.3092 - mae: 1.6633 - mse: 5.3092 - val_loss: 10.3448 - val_mae: 2.4461 - val_mse: 10.3448\n",
      "Epoch 98/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.1171 - mae: 1.6480 - mse: 5.1171 - val_loss: 9.6940 - val_mae: 2.3112 - val_mse: 9.6940\n",
      "Epoch 99/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.2439 - mae: 1.6578 - mse: 5.2439 - val_loss: 9.7853 - val_mae: 2.3216 - val_mse: 9.7853\n",
      "Epoch 100/100\n",
      "36/36 [==============================] - 0s 3ms/step - loss: 5.2911 - mae: 1.6699 - mse: 5.2911 - val_loss: 10.9270 - val_mae: 2.4735 - val_mse: 10.9270\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      : 10.9270\n",
      "x_test / mae       : 2.4735\n",
      "x_test / mse       : 10.9270\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.2513\n"
     ]
    }
   ],
   "source": [
    "print(\"min( val_mae ) : {:.4f}\".format( min(history.history[\"val_mae\"]) ) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAg4AAAGdCAYAAAB6oftJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdeZxddX3/8dfn7rMkmewrJBhZQyAgEWj6cwF/gj9aadFaLFixRWyvuFB/tWArIPXn1iIocrWgXURQFoFCtRKpLFZQQBqMGkgICZCNLEyWWe/2/f3xPTNzMtyZ3MnM3HvP5P18PC7n3nO+98z3HiYz7/lux5xziIiIiFQjVu8KiIiISHQoOIiIiEjVFBxERESkagoOIiIiUjUFBxEREamagoOIiIhUTcFBREREqqbgICIHzcz+1cxc8CiY2awDlP+DUHlnZhdVKDPNzP7WzB4zs1eD875iZs+Y2XfN7ENm9roK77t60LmHe1w/hpdB5JCSqHcFRGTCSAB/Agz3S/lPhzuBmZ0K3AeEA8heoAU4IXicD/w78AdDnKYM7DhAXfce4LiIDEHBQUTGwkvA4fhgUDE4mNk04BygA8gD0wYdb2MgNKwDrgbuc851BMfnAG8G3oMPB0N52Tm36OA/iogMR8FBRMbC40ABOMnMljjnflOhzPlACvgu8LYhjs8CeoEznHObwgedc9uA24HbzaxpLCsvItXTGAcRGSu3BNuhuiP69n97iONLg+2qwaFhMOdc9wjrJiJjRMFBRMZKX3C4wMz2+9liZkcBpwIvAw8f4DxzzczGvnoiMhYUHERkTDjnXgB+BswHzhh0uK+14Vbn3FDjE54KtocD/8/M0mNfSxEZLQUHERlLfd0Q/d0VQevBhYOOV/Jd4Lng+RXANjP7vpl90szeambNVdbhMDPbdoDHkpF8KBEZoOAgImPpDqAHOM/MWoJ9bwYWAk8559YM9UbnXA++peIHwa424Dzgi8BPgN1mdp+ZnX6AOsSA2Qd4JEf+0UQEFBxEZAw553YD9+PXXXhXsPtAgyLD79/inPs94Fh8q8MPgK3B4STw+8DPzOxjw5zmReecHeCx6iA+noig4CAiY68vILwvmDb5LvxUze9WewLn3LPOuS84537POTcPHyQ+A3QBBnzZzE4e43qLSBUUHERkrP0I2I7vdrgUmAz8p3Nu58GeMAgSVwPvABz+Z9f7R19VERkpBQcRGVPOuSLwPfzPl/8X7L5l6HeM6NyP4leVBDhqLM4pIiOj4CAi46GvuyIJtOPHPYyVzmCbH8NzikiVtOS0iIw559wvzexqYBLwK+dc74HeY2bLgbXOuT3DlFkCnBi81ABHkTpQcBCRceGc+8wI3/LHwMVm9l3g+8AvnHP7AMxsOv7mVlfiW0o7gW+OYXVFpEoKDiLSKArAFOAvggdmthf/cyq8+NNu4Hzn3MtDnOcwM9t2gK/1mHPuvFHWV+SQpOAgIo3iU8B/AGcDpwPHADPx0y93AGuAB4CbnXM7hjlP3wJQw5l2gOMiMgRzztW7DiIiIhIRmlUhIiIiVVNwEBERkaopOIiIiEjVFBxERESkagoOw8hmsy6bzWr0qIiISEDTMauj8CAiIocKG+6gWhxERESkagoOIiIiUjUFBxEREamagoOIiIhUTYMjD0KhUGDTpk309PTUuyqRkMlkWLBgAclkst5VERGRUVJwOAibNm1i0qRJLFq0CLNhB58e8pxz7Nq1i02bNnHEEUfUuzoiIjJK6qo4CD09PUyfPl2hoQpmxvTp09U6IyIyQSg4HCSFhurpWomITBwKDiIiIlI1BQcRERGpmoJDRG3cuJFjjjmGiy++mOOPP54LLriABx98kBUrVnDkkUfyxBNP8Mgjj7Bs2TKWLVvGSSedxL59+wD4h3/4B5YvX84JJ5zAVVddVedPIiIiUaJZFaN01t//YNzO/cCnzxn2+PPPP8+dd97JTTfdxPLly7ntttv47//+b+677z4+97nPUSqVuPHGG1mxYgUdHR1kMhlWrlzJunXreOKJJ3DO8c53vpNHH32UN73pTeP2OUREZOJQi0OEHXHEESxdupRYLMaSJUs488wzMTOWLl3Kxo0bWbFiBX/1V3/FV7/6VXbv3k0ikWDlypWsXLmSk046iZNPPplnn32WdevW1fujiIhIRKjFIcLS6XT/81gs1v86FotRLBa5/PLLOeecc/jhD3/IaaedxoMPPohzjiuuuIIPfehD9aq2iIhEmILDKB2oO6HPrn097Nrn1zKY1pphxuTMeFYLgPXr17N06VKWLl3K448/zrPPPstZZ53Fpz/9aS644AJaW1vZvHkzyWSSWbNmjXt9REQk+hQcaiS8lIHD1eRrXn/99Tz00EPE43GOO+443vGOd5BOp1mzZg2nn346AK2trXznO99RcBARkaqYc7X5JRZF2WzWAeRyuf32r1mzhmOPPXZE52rv6GXH3m4A2lrSzJrSNEa1jIaDuWYiIlIXw67ap8GRNVKPFgcREZGxpuBQI/sFB+UGERGJKAWHGrFQy4+Cg4iIRJWCQ43s3+Kg5CAiItGk4FAj+7U41LEeIiIio6HgUCP73VlayUFERCJKwaFGNKtCREQmAgWHmqnf4MjW1tbafkEREZmwFBxqRIMjRURkItCS06N18dlVFWsCjhrpub/5o4q7/+Zv/oaFCxeSzWYBuPrqqzEzHn30Udrb2ykUCnz2s5/l3HPPPeCXePjhh7nqqquYPXs2q1at4rzzzmPp0qV85Stfobu7m3vvvZfFixdz55138pnPfIZ4PM6UKVN49NFHKZVKXH755Tz88MP09vby4Q9/WDfPEhGZ4NTiEEHnn38+t99+e//rO+64gw984APcc889PP300zz00EN84hOfqLpl45lnnuErX/kKq1ev5pZbbmHt2rU88cQTXHzxxdxwww0AXHPNNTzwwAM888wz3HfffQB861vfYsqUKTz55JM8+eST3HzzzWzYsGHsP7CIiDQMtThE0EknncT27dvZsmULO3bsYOrUqcydO5fLLruMRx99lFgsxubNm3nllVeYM2fOAc+3fPly5s6dC8DixYt5+9vfDsDSpUt56KGHAFixYgUXXXQR73nPezjvvPMAWLlyJb/61a+46667ANizZw/r1q3jiCOOGI+PLSIiDUDBYbSG6E4YrFAss2H7XgAS8Rivmz15VF/23e9+N3fddRfbtm3j/PPP59Zbb2XHjh388pe/JJlMsmjRInp6eqo6Vzqd7n8ei8X6X8diMYrFIgDf+MY3+MUvfsEPfvADli1bxqpVq3DOccMNN3DWWWeN6rOIiEh0qKuiRsb6XhXnn38+3/ve97jrrrt497vfzZ49e5g1axbJZJKHHnqIF198cfRfJGT9+vWceuqpXHPNNcyYMYOXX36Zs846i69//esUCgUA1q5dS2dn55h+XRERaSxqcaiRsV7HYcmSJezbt4/58+czd+5cLrjgAn7/93+fU045hWXLlnHMMceM+muE/fVf/zXr1q3DOceZZ57JiSeeyAknnMDGjRs5+eSTcc4xc+ZM7r333jH9uiIi0lhM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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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VqzgmmuuYcaMGTzzzDNceOGFLF26lO985zt0dHRw5513smjRIu6++26uvfZaurq6mDJlCrfccgszZsygra2Nq666ilWrVpFOp1m2bFlRrysiIuGkCsU4ctFFF/Hzn/+85+tf/OIXXHrppfzqV7/iqaee4v777+cf//Efi+5a+etf/8p3vvMdVq1axc0338yaNWtYuXIll112GcuXLwfgVa96FY8++ihPP/00F110Ed/4xjcA+PrXv855553H448/zv3338/nPvc52traRv9Ni4hIIKhCMY6cdNJJ7Ny5k61bt7Jr1y4mTZrErFmz+MxnPsODDz5IJBJhy5Yt7Nixg5kzZw55vlNPPZVZs2YBsGjRIs4//3wAli5dyv333w9AY2Mj73vf+9i2bRtdXV0sXLgQgHvvvZe77rqLb37zmwAkk0lefvllXbdDRGScUqAYC4N0S/TX0Zlm855WAKpi5cydenADJd/97ndz++23s337di666CJuueUWdu3axZNPPkk0GmXBggUkk8mizlVRUdHzOBKJ9HwdiUR6rkR61VVX8Q//8A+8/e1vZ8WKFSxbtgzwA0zvuOMOjjrqqIN6PyIiEg7q8iix/HUosqMwy+Oiiy7iZz/7Gbfffjvvfve7aW5uZvr06USjUe6//342bdp00K+Rr7m5mYaGBgB+8pOf9Gy/4IILWL58eU/3ytNPPz2qrysiIsGiQFFio30tj2OPPZaWlhYaGhqYNWsWF198MU888QSnnHIKt9xyC0uWLDn4F8mzbNky3vOe9/DqV7+aqVOn9my/+uqrSaVSHH/88Rx33HFcffXVo/q6IiISLKbVGYcnHo87gEQi0Wf76tWrRzQ+oCudYePOFgCiZREWzhjWnI/QG+n3TUREDjkb7ElVKEos/1oeinYiIhJWGpRZYqM9hmK4Vq1axYc+9KE+2yoqKnjssccOeVtERCS8FChKrNTX8li6dCnPPPPMoX9hEREZV9TlMYpGMh6l/9VGD6cxLYfTexURGe8UKEZJZWUle/bsGfaHpJmN+kyPMHDOsWfPHiorK0vdFBERGQXq8hglc+bMobGxkV27dg372F3NHT0XBkvtq+wzUHM8q6ysZM6cOaVuhoiIjAIFilESjUZ7lp0ern/5z/vY29oJwK2ffh1T6vRXu4iIhIu6PAIgWt77Y+hKZ0vYEhERkZEpeaAw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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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\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      : 9.2817\n",
      "x_test / mae       : 2.2604\n",
      "x_test / mse       : 9.2817\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 : 10.34 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
}