{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "# <!-- TITLE --> 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 information such as Crime, areas of non-retail business in the town, \n", "age of people who own the house and many other attributes...\n", "\n", "## What we're going to do :\n", "\n", " - (Retrieve data)\n", " - (Preparing the data)\n", " - (Build a model)\n", " - Train and save the model\n", " - Restore saved model\n", " - Evaluate the model\n", " - Make some predictions\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 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", "\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.2.9\n", "Run time : Wednesday 19 February 2020, 10:13:01\n", "TensorFlow version : 2.0.0\n", "Keras version : 2.2.4-tf\n" ] } ], "source": [ "import tensorflow as tf\n", "from tensorflow import keras\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "import os,sys\n", "\n", "from IPython.display import display, Markdown\n", "from importlib import reload\n", "\n", "sys.path.append('..')\n", "import fidle.pwk as ooo\n", "\n", "ooo.init()\n", "os.makedirs('./run/models', mode=0o750, exist_ok=True)" ] }, { "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": "raw", "metadata": {}, "source": [ "(x_train, y_train), (x_test, y_test) = keras.datasets.boston_housing.load_data(test_split=0.2, seed=113)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.2 - Option 2 : From a csv file\n", "More fun !" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<style type=\"text/css\" >\n", "</style><table id=\"T_07301338_52f8_11ea_a38b_eb599e736fda\" ><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_07301338_52f8_11ea_a38b_eb599e736fdalevel0_row0\" class=\"row_heading level0 row0\" >0</th>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow0_col0\" class=\"data row0 col0\" >0.01</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow0_col1\" class=\"data row0 col1\" >18.00</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow0_col2\" class=\"data row0 col2\" >2.31</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow0_col3\" class=\"data row0 col3\" >0.00</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow0_col4\" class=\"data row0 col4\" >0.54</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow0_col5\" class=\"data row0 col5\" >6.58</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow0_col6\" class=\"data row0 col6\" >65.20</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow0_col7\" class=\"data row0 col7\" >4.09</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow0_col8\" class=\"data row0 col8\" >1.00</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow0_col9\" class=\"data row0 col9\" >296.00</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow0_col10\" class=\"data row0 col10\" >15.30</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow0_col11\" class=\"data row0 col11\" >396.90</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow0_col12\" class=\"data row0 col12\" >4.98</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow0_col13\" class=\"data row0 col13\" >24.00</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_07301338_52f8_11ea_a38b_eb599e736fdalevel0_row1\" class=\"row_heading level0 row1\" >1</th>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow1_col0\" class=\"data row1 col0\" >0.03</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow1_col1\" class=\"data row1 col1\" >0.00</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow1_col2\" class=\"data row1 col2\" >7.07</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow1_col3\" class=\"data row1 col3\" >0.00</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow1_col4\" class=\"data row1 col4\" >0.47</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow1_col5\" class=\"data row1 col5\" >6.42</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow1_col6\" class=\"data row1 col6\" >78.90</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow1_col7\" class=\"data row1 col7\" >4.97</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow1_col8\" class=\"data row1 col8\" >2.00</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow1_col9\" class=\"data row1 col9\" >242.00</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow1_col10\" class=\"data row1 col10\" >17.80</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow1_col11\" class=\"data row1 col11\" >396.90</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow1_col12\" class=\"data row1 col12\" >9.14</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow1_col13\" class=\"data row1 col13\" >21.60</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_07301338_52f8_11ea_a38b_eb599e736fdalevel0_row2\" class=\"row_heading level0 row2\" >2</th>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow2_col0\" class=\"data row2 col0\" >0.03</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow2_col1\" class=\"data row2 col1\" >0.00</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow2_col2\" class=\"data row2 col2\" >7.07</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow2_col3\" class=\"data row2 col3\" >0.00</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow2_col4\" class=\"data row2 col4\" >0.47</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow2_col5\" class=\"data row2 col5\" >7.18</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow2_col6\" class=\"data row2 col6\" >61.10</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow2_col7\" class=\"data row2 col7\" >4.97</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow2_col8\" class=\"data row2 col8\" >2.00</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow2_col9\" class=\"data row2 col9\" >242.00</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow2_col10\" class=\"data row2 col10\" >17.80</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow2_col11\" class=\"data row2 col11\" >392.83</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow2_col12\" class=\"data row2 col12\" >4.03</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow2_col13\" class=\"data row2 col13\" >34.70</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_07301338_52f8_11ea_a38b_eb599e736fdalevel0_row3\" class=\"row_heading level0 row3\" >3</th>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow3_col0\" class=\"data row3 col0\" >0.03</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow3_col1\" class=\"data row3 col1\" >0.00</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow3_col2\" class=\"data row3 col2\" >2.18</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow3_col3\" class=\"data row3 col3\" >0.00</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow3_col4\" class=\"data row3 col4\" >0.46</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow3_col5\" class=\"data row3 col5\" >7.00</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow3_col6\" class=\"data row3 col6\" >45.80</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow3_col7\" class=\"data row3 col7\" >6.06</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow3_col8\" class=\"data row3 col8\" >3.00</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow3_col9\" class=\"data row3 col9\" >222.00</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow3_col10\" class=\"data row3 col10\" >18.70</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow3_col11\" class=\"data row3 col11\" >394.63</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow3_col12\" class=\"data row3 col12\" >2.94</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow3_col13\" class=\"data row3 col13\" >33.40</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_07301338_52f8_11ea_a38b_eb599e736fdalevel0_row4\" class=\"row_heading level0 row4\" >4</th>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow4_col0\" class=\"data row4 col0\" >0.07</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow4_col1\" class=\"data row4 col1\" >0.00</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow4_col2\" class=\"data row4 col2\" >2.18</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow4_col3\" class=\"data row4 col3\" >0.00</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow4_col4\" class=\"data row4 col4\" >0.46</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow4_col5\" class=\"data row4 col5\" >7.15</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow4_col6\" class=\"data row4 col6\" >54.20</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow4_col7\" class=\"data row4 col7\" >6.06</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow4_col8\" class=\"data row4 col8\" >3.00</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow4_col9\" class=\"data row4 col9\" >222.00</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow4_col10\" class=\"data row4 col10\" >18.70</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow4_col11\" class=\"data row4 col11\" >396.90</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow4_col12\" class=\"data row4 col12\" >5.33</td>\n", " <td id=\"T_07301338_52f8_11ea_a38b_eb599e736fdarow4_col13\" class=\"data row4 col13\" >36.20</td>\n", " </tr>\n", " </tbody></table>" ], "text/plain": [ "<pandas.io.formats.style.Styler at 0x7faa97ce3ad0>" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Données manquantes : 0 Shape is : (506, 14)\n" ] } ], "source": [ "data = pd.read_csv('./data/BostonHousing.csv', header=0)\n", "\n", "display(data.head(5).style.format(\"{0:.2f}\"))\n", "print('Données manquantes : ',data.isna().sum().sum(), ' Shape is : ', data.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 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": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Original data shape was : (506, 14)\n", "x_train : (354, 13) y_train : (354,)\n", "x_test : (152, 13) y_test : (152,)\n" ] } ], "source": [ "# ---- Split => train, test\n", "#\n", "data_train = data.sample(frac=0.7, axis=0)\n", "data_test = data.drop(data_train.index)\n", "\n", "# ---- Split => x,y (medv is price)\n", "#\n", "x_train = data_train.drop('medv', axis=1)\n", "y_train = data_train['medv']\n", "x_test = data_test.drop('medv', axis=1)\n", "y_test = data_test['medv']\n", "\n", "print('Original data shape was : ',data.shape)\n", "print('x_train : ',x_train.shape, 'y_train : ',y_train.shape)\n", "print('x_test : ',x_test.shape, 'y_test : ',y_test.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3.2 - Data normalization\n", "**Note :** \n", " - All input data must be normalized, train and test. \n", " - To do this we will subtract the mean and divide by the standard deviation. \n", " - But test data should not be used in any way, even for normalization. \n", " - The mean and the standard deviation will therefore only be calculated with the train data." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<style type=\"text/css\" >\n", "</style><table id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fda\" ><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_07389f4e_52f8_11ea_a38b_eb599e736fdalevel0_row0\" class=\"row_heading level0 row0\" >count</th>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow0_col0\" class=\"data row0 col0\" >354.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow0_col1\" class=\"data row0 col1\" >354.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow0_col2\" class=\"data row0 col2\" >354.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow0_col3\" class=\"data row0 col3\" >354.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow0_col4\" class=\"data row0 col4\" >354.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow0_col5\" class=\"data row0 col5\" >354.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow0_col6\" class=\"data row0 col6\" >354.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow0_col7\" class=\"data row0 col7\" >354.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow0_col8\" class=\"data row0 col8\" >354.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow0_col9\" class=\"data row0 col9\" >354.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow0_col10\" class=\"data row0 col10\" >354.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow0_col11\" class=\"data row0 col11\" >354.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow0_col12\" class=\"data row0 col12\" >354.00</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdalevel0_row1\" class=\"row_heading level0 row1\" >mean</th>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow1_col0\" class=\"data row1 col0\" >3.91</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow1_col1\" class=\"data row1 col1\" >11.73</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow1_col2\" class=\"data row1 col2\" >11.21</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow1_col3\" class=\"data row1 col3\" >0.07</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow1_col4\" class=\"data row1 col4\" >0.56</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow1_col5\" class=\"data row1 col5\" >6.28</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow1_col6\" class=\"data row1 col6\" >68.51</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow1_col7\" class=\"data row1 col7\" >3.84</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow1_col8\" class=\"data row1 col8\" >9.96</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow1_col9\" class=\"data row1 col9\" >414.16</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow1_col10\" class=\"data row1 col10\" >18.52</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow1_col11\" class=\"data row1 col11\" >351.61</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow1_col12\" class=\"data row1 col12\" >12.76</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdalevel0_row2\" class=\"row_heading level0 row2\" >std</th>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow2_col0\" class=\"data row2 col0\" >9.14</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow2_col1\" class=\"data row2 col1\" >23.48</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow2_col2\" class=\"data row2 col2\" >6.75</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow2_col3\" class=\"data row2 col3\" >0.26</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow2_col4\" class=\"data row2 col4\" >0.12</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow2_col5\" class=\"data row2 col5\" >0.69</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow2_col6\" class=\"data row2 col6\" >28.19</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow2_col7\" class=\"data row2 col7\" >2.17</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow2_col8\" class=\"data row2 col8\" >8.87</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow2_col9\" class=\"data row2 col9\" >168.41</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow2_col10\" class=\"data row2 col10\" >2.20</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow2_col11\" class=\"data row2 col11\" >96.84</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow2_col12\" class=\"data row2 col12\" >7.23</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdalevel0_row3\" class=\"row_heading level0 row3\" >min</th>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow3_col0\" class=\"data row3 col0\" >0.01</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow3_col1\" class=\"data row3 col1\" >0.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow3_col2\" class=\"data row3 col2\" >0.46</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow3_col3\" class=\"data row3 col3\" >0.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow3_col4\" class=\"data row3 col4\" >0.39</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow3_col5\" class=\"data row3 col5\" >3.56</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow3_col6\" class=\"data row3 col6\" >2.90</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow3_col7\" class=\"data row3 col7\" >1.13</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow3_col8\" class=\"data row3 col8\" >1.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow3_col9\" class=\"data row3 col9\" >187.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow3_col10\" class=\"data row3 col10\" >12.60</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow3_col11\" class=\"data row3 col11\" >0.32</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow3_col12\" class=\"data row3 col12\" >1.73</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdalevel0_row4\" class=\"row_heading level0 row4\" >25%</th>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow4_col0\" class=\"data row4 col0\" >0.08</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow4_col1\" class=\"data row4 col1\" >0.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow4_col2\" class=\"data row4 col2\" >5.19</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow4_col3\" class=\"data row4 col3\" >0.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow4_col4\" class=\"data row4 col4\" >0.45</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow4_col5\" class=\"data row4 col5\" >5.89</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow4_col6\" class=\"data row4 col6\" >45.02</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow4_col7\" class=\"data row4 col7\" >2.09</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow4_col8\" class=\"data row4 col8\" >4.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow4_col9\" class=\"data row4 col9\" >285.50</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow4_col10\" class=\"data row4 col10\" >17.40</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow4_col11\" class=\"data row4 col11\" >370.98</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow4_col12\" class=\"data row4 col12\" >7.12</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdalevel0_row5\" class=\"row_heading level0 row5\" >50%</th>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow5_col0\" class=\"data row5 col0\" >0.32</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow5_col1\" class=\"data row5 col1\" >0.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow5_col2\" class=\"data row5 col2\" >9.79</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow5_col3\" class=\"data row5 col3\" >0.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow5_col4\" class=\"data row5 col4\" >0.54</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow5_col5\" class=\"data row5 col5\" >6.21</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow5_col6\" class=\"data row5 col6\" >76.95</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow5_col7\" class=\"data row5 col7\" >3.21</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow5_col8\" class=\"data row5 col8\" >5.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow5_col9\" class=\"data row5 col9\" >332.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow5_col10\" class=\"data row5 col10\" >19.10</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow5_col11\" class=\"data row5 col11\" >390.69</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow5_col12\" class=\"data row5 col12\" >11.49</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdalevel0_row6\" class=\"row_heading level0 row6\" >75%</th>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow6_col0\" class=\"data row6 col0\" >4.08</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow6_col1\" class=\"data row6 col1\" >19.50</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow6_col2\" class=\"data row6 col2\" >18.10</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow6_col3\" class=\"data row6 col3\" >0.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow6_col4\" class=\"data row6 col4\" >0.63</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow6_col5\" class=\"data row6 col5\" >6.60</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow6_col6\" class=\"data row6 col6\" >94.47</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow6_col7\" class=\"data row6 col7\" >5.21</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow6_col8\" class=\"data row6 col8\" >24.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow6_col9\" class=\"data row6 col9\" >666.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow6_col10\" class=\"data row6 col10\" >20.20</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow6_col11\" class=\"data row6 col11\" >395.98</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow6_col12\" class=\"data row6 col12\" >16.96</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdalevel0_row7\" class=\"row_heading level0 row7\" >max</th>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow7_col0\" class=\"data row7 col0\" >88.98</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow7_col1\" class=\"data row7 col1\" >100.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow7_col2\" class=\"data row7 col2\" >27.74</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow7_col3\" class=\"data row7 col3\" >1.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow7_col4\" class=\"data row7 col4\" >0.87</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow7_col5\" class=\"data row7 col5\" >8.78</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow7_col6\" class=\"data row7 col6\" >100.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow7_col7\" class=\"data row7 col7\" >12.13</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow7_col8\" class=\"data row7 col8\" >24.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow7_col9\" class=\"data row7 col9\" >711.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow7_col10\" class=\"data row7 col10\" >22.00</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow7_col11\" class=\"data row7 col11\" >396.90</td>\n", " <td id=\"T_07389f4e_52f8_11ea_a38b_eb599e736fdarow7_col12\" class=\"data row7 col12\" >37.97</td>\n", " </tr>\n", " </tbody></table>" ], "text/plain": [ "<pandas.io.formats.style.Styler at 0x7faa96773f90>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "<style type=\"text/css\" >\n", "</style><table id=\"T_073f797c_52f8_11ea_a38b_eb599e736fda\" ><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_073f797c_52f8_11ea_a38b_eb599e736fdalevel0_row0\" class=\"row_heading level0 row0\" >count</th>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow0_col0\" class=\"data row0 col0\" >354.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow0_col1\" class=\"data row0 col1\" >354.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow0_col2\" class=\"data row0 col2\" >354.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow0_col3\" class=\"data row0 col3\" >354.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow0_col4\" class=\"data row0 col4\" >354.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow0_col5\" class=\"data row0 col5\" >354.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow0_col6\" class=\"data row0 col6\" >354.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow0_col7\" class=\"data row0 col7\" >354.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow0_col8\" class=\"data row0 col8\" >354.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow0_col9\" class=\"data row0 col9\" >354.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow0_col10\" class=\"data row0 col10\" >354.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow0_col11\" class=\"data row0 col11\" >354.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow0_col12\" class=\"data row0 col12\" >354.00</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdalevel0_row1\" class=\"row_heading level0 row1\" >mean</th>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow1_col0\" class=\"data row1 col0\" >-0.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow1_col1\" class=\"data row1 col1\" >0.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow1_col2\" class=\"data row1 col2\" >0.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow1_col3\" class=\"data row1 col3\" >0.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow1_col4\" class=\"data row1 col4\" >-0.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow1_col5\" class=\"data row1 col5\" >0.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow1_col6\" class=\"data row1 col6\" >-0.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow1_col7\" class=\"data row1 col7\" >0.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow1_col8\" class=\"data row1 col8\" >-0.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow1_col9\" class=\"data row1 col9\" >0.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow1_col10\" class=\"data row1 col10\" >0.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow1_col11\" class=\"data row1 col11\" >0.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow1_col12\" class=\"data row1 col12\" >-0.00</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdalevel0_row2\" class=\"row_heading level0 row2\" >std</th>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow2_col0\" class=\"data row2 col0\" >1.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow2_col1\" class=\"data row2 col1\" >1.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow2_col2\" class=\"data row2 col2\" >1.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow2_col3\" class=\"data row2 col3\" >1.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow2_col4\" class=\"data row2 col4\" >1.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow2_col5\" class=\"data row2 col5\" >1.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow2_col6\" class=\"data row2 col6\" >1.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow2_col7\" class=\"data row2 col7\" >1.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow2_col8\" class=\"data row2 col8\" >1.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow2_col9\" class=\"data row2 col9\" >1.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow2_col10\" class=\"data row2 col10\" >1.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow2_col11\" class=\"data row2 col11\" >1.00</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow2_col12\" class=\"data row2 col12\" >1.00</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdalevel0_row3\" class=\"row_heading level0 row3\" >min</th>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow3_col0\" class=\"data row3 col0\" >-0.43</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow3_col1\" class=\"data row3 col1\" >-0.50</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow3_col2\" class=\"data row3 col2\" >-1.59</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow3_col3\" class=\"data row3 col3\" >-0.28</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow3_col4\" class=\"data row3 col4\" >-1.48</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow3_col5\" class=\"data row3 col5\" >-3.93</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow3_col6\" class=\"data row3 col6\" >-2.33</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow3_col7\" class=\"data row3 col7\" >-1.25</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow3_col8\" class=\"data row3 col8\" >-1.01</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow3_col9\" class=\"data row3 col9\" >-1.35</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow3_col10\" class=\"data row3 col10\" >-2.69</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow3_col11\" class=\"data row3 col11\" >-3.63</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow3_col12\" class=\"data row3 col12\" >-1.52</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdalevel0_row4\" class=\"row_heading level0 row4\" >25%</th>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow4_col0\" class=\"data row4 col0\" >-0.42</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow4_col1\" class=\"data row4 col1\" >-0.50</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow4_col2\" class=\"data row4 col2\" >-0.89</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow4_col3\" class=\"data row4 col3\" >-0.28</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow4_col4\" class=\"data row4 col4\" >-0.92</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow4_col5\" class=\"data row4 col5\" >-0.56</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow4_col6\" class=\"data row4 col6\" >-0.83</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow4_col7\" class=\"data row4 col7\" >-0.81</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow4_col8\" class=\"data row4 col8\" >-0.67</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow4_col9\" class=\"data row4 col9\" >-0.76</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow4_col10\" class=\"data row4 col10\" >-0.51</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow4_col11\" class=\"data row4 col11\" >0.20</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow4_col12\" class=\"data row4 col12\" >-0.78</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdalevel0_row5\" class=\"row_heading level0 row5\" >50%</th>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow5_col0\" class=\"data row5 col0\" >-0.39</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow5_col1\" class=\"data row5 col1\" >-0.50</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow5_col2\" class=\"data row5 col2\" >-0.21</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow5_col3\" class=\"data row5 col3\" >-0.28</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow5_col4\" class=\"data row5 col4\" >-0.17</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow5_col5\" class=\"data row5 col5\" >-0.10</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow5_col6\" class=\"data row5 col6\" >0.30</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow5_col7\" class=\"data row5 col7\" >-0.29</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow5_col8\" class=\"data row5 col8\" >-0.56</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow5_col9\" class=\"data row5 col9\" >-0.49</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow5_col10\" class=\"data row5 col10\" >0.26</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow5_col11\" class=\"data row5 col11\" >0.40</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow5_col12\" class=\"data row5 col12\" >-0.18</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdalevel0_row6\" class=\"row_heading level0 row6\" >75%</th>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow6_col0\" class=\"data row6 col0\" >0.02</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow6_col1\" class=\"data row6 col1\" >0.33</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow6_col2\" class=\"data row6 col2\" >1.02</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow6_col3\" class=\"data row6 col3\" >-0.28</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow6_col4\" class=\"data row6 col4\" >0.63</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow6_col5\" class=\"data row6 col5\" >0.46</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow6_col6\" class=\"data row6 col6\" >0.92</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow6_col7\" class=\"data row6 col7\" >0.63</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow6_col8\" class=\"data row6 col8\" >1.58</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow6_col9\" class=\"data row6 col9\" >1.50</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow6_col10\" class=\"data row6 col10\" >0.76</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow6_col11\" class=\"data row6 col11\" >0.46</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow6_col12\" class=\"data row6 col12\" >0.58</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdalevel0_row7\" class=\"row_heading level0 row7\" >max</th>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow7_col0\" class=\"data row7 col0\" >9.30</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow7_col1\" class=\"data row7 col1\" >3.76</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow7_col2\" class=\"data row7 col2\" >2.45</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow7_col3\" class=\"data row7 col3\" >3.62</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow7_col4\" class=\"data row7 col4\" >2.68</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow7_col5\" class=\"data row7 col5\" >3.61</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow7_col6\" class=\"data row7 col6\" >1.12</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow7_col7\" class=\"data row7 col7\" >3.82</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow7_col8\" class=\"data row7 col8\" >1.58</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow7_col9\" class=\"data row7 col9\" >1.76</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow7_col10\" class=\"data row7 col10\" >1.58</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow7_col11\" class=\"data row7 col11\" >0.47</td>\n", " <td id=\"T_073f797c_52f8_11ea_a38b_eb599e736fdarow7_col12\" class=\"data row7 col12\" >3.49</td>\n", " </tr>\n", " </tbody></table>" ], "text/plain": [ "<pandas.io.formats.style.Styler at 0x7faa9625a3d0>" ] }, "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": 5, "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": 6, "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" ] }, { "data": { "image/png": "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\n", "text/plain": [ "<IPython.core.display.Image object>" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model=get_model_v1( (13,) )\n", "\n", "model.summary()\n", "keras.utils.plot_model( model, to_file='./run/model.png', show_shapes=True, show_layer_names=True, dpi=96)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5.2 - Add callback" ] }, { "cell_type": "code", "execution_count": 7, "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": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train on 354 samples, validate on 152 samples\n", "Epoch 1/100\n", "354/354 [==============================] - 1s 2ms/sample - loss: 483.2389 - mae: 20.0008 - mse: 483.2388 - val_loss: 421.2562 - val_mae: 18.2848 - val_mse: 421.2561\n", "Epoch 2/100\n", "354/354 [==============================] - 0s 232us/sample - loss: 270.7346 - mae: 13.9655 - mse: 270.7346 - val_loss: 187.7437 - val_mae: 10.9696 - val_mse: 187.7437\n", "Epoch 3/100\n", "354/354 [==============================] - 0s 223us/sample - loss: 108.5703 - mae: 7.5648 - mse: 108.5703 - val_loss: 70.6387 - val_mae: 6.1047 - val_mse: 70.6387\n", "Epoch 4/100\n", "354/354 [==============================] - 0s 234us/sample - loss: 53.8803 - mae: 5.1135 - mse: 53.8803 - val_loss: 40.0765 - val_mae: 4.6628 - val_mse: 40.0765\n", "Epoch 5/100\n", "354/354 [==============================] - 0s 223us/sample - loss: 34.2413 - mae: 4.1321 - mse: 34.2413 - val_loss: 29.1298 - val_mae: 3.8690 - val_mse: 29.1298\n", "Epoch 6/100\n", "354/354 [==============================] - 0s 226us/sample - loss: 24.9834 - mae: 3.4851 - mse: 24.9834 - val_loss: 22.8731 - val_mae: 3.3820 - val_mse: 22.8731\n", "Epoch 7/100\n", "354/354 [==============================] - 0s 228us/sample - loss: 21.2207 - mae: 3.2139 - mse: 21.2207 - val_loss: 20.9766 - val_mae: 3.2391 - val_mse: 20.9766\n", "Epoch 8/100\n", "354/354 [==============================] - 0s 223us/sample - loss: 19.2641 - mae: 3.0025 - mse: 19.2641 - val_loss: 19.5046 - val_mae: 3.0795 - val_mse: 19.5046\n", "Epoch 9/100\n", "354/354 [==============================] - 0s 220us/sample - loss: 17.8432 - mae: 2.8878 - mse: 17.8432 - val_loss: 18.3068 - val_mae: 3.0834 - val_mse: 18.3068\n", "Epoch 10/100\n", "354/354 [==============================] - 0s 224us/sample - loss: 16.7673 - mae: 2.7365 - mse: 16.7673 - val_loss: 17.4260 - val_mae: 3.0035 - val_mse: 17.4260\n", "Epoch 11/100\n", "354/354 [==============================] - 0s 225us/sample - loss: 15.6927 - mae: 2.6873 - mse: 15.6927 - val_loss: 17.3096 - val_mae: 3.0492 - val_mse: 17.3096\n", "Epoch 12/100\n", "354/354 [==============================] - 0s 222us/sample - loss: 15.4113 - mae: 2.6274 - mse: 15.4113 - val_loss: 15.7095 - val_mae: 2.8104 - val_mse: 15.7095\n", "Epoch 13/100\n", "354/354 [==============================] - 0s 220us/sample - loss: 14.7243 - mae: 2.5393 - mse: 14.7243 - val_loss: 15.6497 - val_mae: 2.9052 - val_mse: 15.6497\n", "Epoch 14/100\n", "354/354 [==============================] - 0s 228us/sample - loss: 14.2611 - mae: 2.5371 - mse: 14.2611 - val_loss: 14.9650 - val_mae: 2.8165 - val_mse: 14.9650\n", "Epoch 15/100\n", "354/354 [==============================] - 0s 222us/sample - loss: 14.0530 - mae: 2.5289 - mse: 14.0530 - val_loss: 14.8840 - val_mae: 2.8196 - val_mse: 14.8840\n", "Epoch 16/100\n", "354/354 [==============================] - 0s 224us/sample - loss: 13.3820 - mae: 2.4568 - mse: 13.3820 - val_loss: 13.7568 - val_mae: 2.6754 - val_mse: 13.7568\n", "Epoch 17/100\n", "354/354 [==============================] - 0s 218us/sample - loss: 13.2232 - mae: 2.4318 - mse: 13.2232 - val_loss: 13.6934 - val_mae: 2.6355 - val_mse: 13.6934\n", "Epoch 18/100\n", "354/354 [==============================] - 0s 183us/sample - loss: 12.8038 - mae: 2.3743 - mse: 12.8038 - val_loss: 13.7276 - val_mae: 2.6466 - val_mse: 13.7276\n", "Epoch 19/100\n", "354/354 [==============================] - 0s 223us/sample - loss: 12.4826 - mae: 2.3804 - mse: 12.4826 - val_loss: 13.0037 - val_mae: 2.5279 - val_mse: 13.0037\n", "Epoch 20/100\n", "354/354 [==============================] - 0s 222us/sample - loss: 12.2345 - mae: 2.3264 - mse: 12.2345 - val_loss: 12.8911 - val_mae: 2.5583 - val_mse: 12.8911\n", "Epoch 21/100\n", "354/354 [==============================] - 0s 231us/sample - loss: 12.0720 - mae: 2.3410 - mse: 12.0720 - val_loss: 12.5983 - val_mae: 2.5747 - val_mse: 12.5983\n", "Epoch 22/100\n", "354/354 [==============================] - 0s 224us/sample - loss: 11.7805 - mae: 2.2897 - mse: 11.7805 - val_loss: 12.1645 - val_mae: 2.5094 - val_mse: 12.1645\n", "Epoch 23/100\n", "354/354 [==============================] - 0s 174us/sample - loss: 11.4012 - mae: 2.2581 - mse: 11.4012 - val_loss: 13.6673 - val_mae: 2.7201 - val_mse: 13.6673\n", "Epoch 24/100\n", "354/354 [==============================] - 0s 227us/sample - loss: 11.2741 - mae: 2.2712 - mse: 11.2741 - val_loss: 11.6918 - val_mae: 2.4039 - val_mse: 11.6918\n", "Epoch 25/100\n", "354/354 [==============================] - 0s 179us/sample - loss: 11.2056 - mae: 2.2226 - mse: 11.2056 - val_loss: 12.3935 - val_mae: 2.6021 - val_mse: 12.3935\n", "Epoch 26/100\n", "354/354 [==============================] - 0s 173us/sample - loss: 10.8629 - mae: 2.2289 - mse: 10.8629 - val_loss: 11.9155 - val_mae: 2.3744 - val_mse: 11.9155\n", "Epoch 27/100\n", "354/354 [==============================] - 0s 218us/sample - loss: 11.0500 - mae: 2.2151 - mse: 11.0500 - val_loss: 11.2193 - val_mae: 2.3695 - val_mse: 11.2193\n", "Epoch 28/100\n", "354/354 [==============================] - 0s 180us/sample - loss: 10.4915 - mae: 2.1578 - mse: 10.4915 - val_loss: 11.9919 - val_mae: 2.5344 - val_mse: 11.9919\n", "Epoch 29/100\n", "354/354 [==============================] - 0s 182us/sample - loss: 10.5519 - mae: 2.1307 - mse: 10.5519 - val_loss: 11.3573 - val_mae: 2.4664 - val_mse: 11.3573\n", "Epoch 30/100\n", "354/354 [==============================] - 0s 170us/sample - loss: 10.0504 - mae: 2.1281 - mse: 10.0504 - val_loss: 11.7304 - val_mae: 2.5102 - val_mse: 11.7304\n", "Epoch 31/100\n", "354/354 [==============================] - 0s 216us/sample - loss: 9.8992 - mae: 2.1397 - mse: 9.8992 - val_loss: 10.9137 - val_mae: 2.3602 - val_mse: 10.9137\n", "Epoch 32/100\n", "354/354 [==============================] - 0s 175us/sample - loss: 9.9473 - mae: 2.0665 - mse: 9.9473 - val_loss: 11.1929 - val_mae: 2.4503 - val_mse: 11.1929\n", "Epoch 33/100\n", "354/354 [==============================] - 0s 168us/sample - loss: 9.6057 - mae: 2.0609 - mse: 9.6057 - val_loss: 11.5105 - val_mae: 2.4419 - val_mse: 11.5105\n", "Epoch 34/100\n", "354/354 [==============================] - 0s 178us/sample - loss: 9.6783 - mae: 2.0484 - mse: 9.6783 - val_loss: 11.0130 - val_mae: 2.4072 - val_mse: 11.0130\n", "Epoch 35/100\n", "354/354 [==============================] - 0s 211us/sample - loss: 9.3834 - mae: 2.0337 - mse: 9.3834 - val_loss: 10.8769 - val_mae: 2.3960 - val_mse: 10.8769\n", "Epoch 36/100\n", "354/354 [==============================] - 0s 222us/sample - loss: 9.4563 - mae: 2.0349 - mse: 9.4563 - val_loss: 10.7918 - val_mae: 2.4397 - val_mse: 10.7918\n", "Epoch 37/100\n", "354/354 [==============================] - 0s 223us/sample - loss: 9.4023 - mae: 2.0246 - mse: 9.4023 - val_loss: 10.4927 - val_mae: 2.3926 - val_mse: 10.4927\n", "Epoch 38/100\n", "354/354 [==============================] - 0s 175us/sample - loss: 8.9702 - mae: 2.0006 - mse: 8.9702 - val_loss: 10.9715 - val_mae: 2.4245 - val_mse: 10.9715\n", "Epoch 39/100\n", "354/354 [==============================] - 0s 174us/sample - loss: 9.0225 - mae: 2.0207 - mse: 9.0225 - val_loss: 10.9499 - val_mae: 2.4785 - val_mse: 10.9499\n", "Epoch 40/100\n", "354/354 [==============================] - 0s 177us/sample - loss: 8.8586 - mae: 1.9994 - mse: 8.8586 - val_loss: 10.5540 - val_mae: 2.3401 - val_mse: 10.5540\n", "Epoch 41/100\n", "354/354 [==============================] - 0s 214us/sample - loss: 8.7666 - mae: 1.9705 - mse: 8.7666 - val_loss: 10.3300 - val_mae: 2.3298 - val_mse: 10.3300\n", "Epoch 42/100\n", "354/354 [==============================] - 0s 177us/sample - loss: 8.4090 - mae: 1.9556 - mse: 8.4090 - val_loss: 11.9413 - val_mae: 2.5568 - val_mse: 11.9413\n", "Epoch 43/100\n", "354/354 [==============================] - 0s 216us/sample - loss: 8.4974 - mae: 1.9809 - mse: 8.4974 - val_loss: 10.2694 - val_mae: 2.2804 - val_mse: 10.2694\n", "Epoch 44/100\n", "354/354 [==============================] - 0s 179us/sample - loss: 8.4512 - mae: 1.9371 - mse: 8.4512 - val_loss: 10.6134 - val_mae: 2.3782 - val_mse: 10.6134\n", "Epoch 45/100\n", "354/354 [==============================] - 0s 168us/sample - loss: 8.3356 - mae: 1.9116 - mse: 8.3356 - val_loss: 10.5007 - val_mae: 2.3672 - val_mse: 10.5007\n", "Epoch 46/100\n", "354/354 [==============================] - 0s 220us/sample - loss: 8.0746 - mae: 1.9163 - mse: 8.0746 - val_loss: 9.9081 - val_mae: 2.1968 - val_mse: 9.9081\n", "Epoch 47/100\n", "354/354 [==============================] - 0s 183us/sample - loss: 8.2374 - mae: 1.9080 - mse: 8.2374 - val_loss: 10.2771 - val_mae: 2.3529 - val_mse: 10.2771\n", "Epoch 48/100\n", "354/354 [==============================] - 0s 216us/sample - loss: 8.0765 - mae: 1.9000 - mse: 8.0765 - val_loss: 9.7120 - val_mae: 2.1879 - val_mse: 9.7120\n", "Epoch 49/100\n", "354/354 [==============================] - 0s 163us/sample - loss: 7.7848 - mae: 1.8825 - mse: 7.7848 - val_loss: 10.2084 - val_mae: 2.2360 - val_mse: 10.2084\n", "Epoch 50/100\n", "354/354 [==============================] - 0s 178us/sample - loss: 7.5973 - mae: 1.8669 - mse: 7.5973 - val_loss: 10.1582 - val_mae: 2.2808 - val_mse: 10.1582\n", "Epoch 51/100\n", "354/354 [==============================] - 0s 168us/sample - loss: 7.8596 - mae: 1.9102 - mse: 7.8596 - val_loss: 9.9785 - val_mae: 2.3041 - val_mse: 9.9785\n", "Epoch 52/100\n", "354/354 [==============================] - 0s 172us/sample - loss: 7.5027 - mae: 1.8527 - mse: 7.5027 - val_loss: 10.2315 - val_mae: 2.3614 - val_mse: 10.2315\n", "Epoch 53/100\n", "354/354 [==============================] - 0s 174us/sample - loss: 7.3160 - mae: 1.8556 - mse: 7.3160 - val_loss: 10.7149 - val_mae: 2.4225 - val_mse: 10.7149\n", "Epoch 54/100\n", "354/354 [==============================] - 0s 178us/sample - loss: 7.4478 - mae: 1.8692 - mse: 7.4478 - val_loss: 13.1244 - val_mae: 2.7923 - val_mse: 13.1244\n", "Epoch 55/100\n", "354/354 [==============================] - 0s 222us/sample - loss: 7.2579 - mae: 1.8375 - mse: 7.2579 - val_loss: 9.4053 - val_mae: 2.1927 - val_mse: 9.4053\n", "Epoch 56/100\n", "354/354 [==============================] - 0s 178us/sample - loss: 7.3045 - mae: 1.8785 - mse: 7.3045 - val_loss: 10.3231 - val_mae: 2.4311 - val_mse: 10.3231\n", "Epoch 57/100\n", "354/354 [==============================] - 0s 168us/sample - loss: 6.8708 - mae: 1.8047 - mse: 6.8708 - val_loss: 11.3678 - val_mae: 2.6010 - val_mse: 11.3678\n", "Epoch 58/100\n", "354/354 [==============================] - 0s 180us/sample - loss: 6.9471 - mae: 1.8179 - mse: 6.9471 - val_loss: 10.2855 - val_mae: 2.3937 - val_mse: 10.2855\n", "Epoch 59/100\n", "354/354 [==============================] - 0s 217us/sample - loss: 6.8858 - mae: 1.7987 - mse: 6.8858 - val_loss: 9.1795 - val_mae: 2.1552 - val_mse: 9.1795\n", "Epoch 60/100\n", "354/354 [==============================] - 0s 179us/sample - loss: 6.8982 - mae: 1.7783 - mse: 6.8982 - val_loss: 10.0291 - val_mae: 2.3000 - val_mse: 10.0291\n", "Epoch 61/100\n", "354/354 [==============================] - 0s 168us/sample - loss: 6.8502 - mae: 1.7688 - mse: 6.8502 - val_loss: 9.5141 - val_mae: 2.2370 - val_mse: 9.5141\n", "Epoch 62/100\n", "354/354 [==============================] - 0s 173us/sample - loss: 6.6801 - mae: 1.7737 - mse: 6.6801 - val_loss: 9.6853 - val_mae: 2.2719 - val_mse: 9.6853\n", "Epoch 63/100\n", "354/354 [==============================] - 0s 178us/sample - loss: 6.5468 - mae: 1.7479 - mse: 6.5468 - val_loss: 9.5858 - val_mae: 2.2346 - val_mse: 9.5858\n", "Epoch 64/100\n", "354/354 [==============================] - 0s 172us/sample - loss: 6.3406 - mae: 1.6985 - mse: 6.3406 - val_loss: 9.8893 - val_mae: 2.2439 - val_mse: 9.8893\n", "Epoch 65/100\n", "354/354 [==============================] - 0s 177us/sample - loss: 6.4070 - mae: 1.7780 - mse: 6.4071 - val_loss: 10.4085 - val_mae: 2.3908 - val_mse: 10.4085\n", "Epoch 66/100\n", "354/354 [==============================] - 0s 170us/sample - loss: 6.4227 - mae: 1.7042 - mse: 6.4227 - val_loss: 9.5313 - val_mae: 2.1998 - val_mse: 9.5313\n", "Epoch 67/100\n", "354/354 [==============================] - 0s 178us/sample - loss: 6.3353 - mae: 1.7095 - mse: 6.3353 - val_loss: 9.9436 - val_mae: 2.2965 - val_mse: 9.9436\n", "Epoch 68/100\n", "354/354 [==============================] - 0s 173us/sample - loss: 5.8545 - mae: 1.6760 - mse: 5.8545 - val_loss: 9.9311 - val_mae: 2.2837 - val_mse: 9.9311\n", "Epoch 69/100\n", "354/354 [==============================] - 0s 171us/sample - loss: 6.1148 - mae: 1.7286 - mse: 6.1148 - val_loss: 9.6456 - val_mae: 2.1932 - val_mse: 9.6456\n", "Epoch 70/100\n", "354/354 [==============================] - 0s 179us/sample - loss: 6.0462 - mae: 1.7194 - mse: 6.0462 - val_loss: 10.7485 - val_mae: 2.3224 - val_mse: 10.7485\n", "Epoch 71/100\n", "354/354 [==============================] - 0s 171us/sample - loss: 5.8132 - mae: 1.7049 - mse: 5.8132 - val_loss: 9.8704 - val_mae: 2.1916 - val_mse: 9.8704\n", "Epoch 72/100\n", "354/354 [==============================] - 0s 174us/sample - loss: 5.7957 - mae: 1.6492 - mse: 5.7957 - val_loss: 10.0593 - val_mae: 2.3159 - val_mse: 10.0593\n", "Epoch 73/100\n", "354/354 [==============================] - 0s 178us/sample - loss: 5.9002 - mae: 1.6952 - mse: 5.9002 - val_loss: 10.1425 - val_mae: 2.3594 - val_mse: 10.1425\n", "Epoch 74/100\n", "354/354 [==============================] - 0s 174us/sample - loss: 5.5721 - mae: 1.6277 - mse: 5.5721 - val_loss: 9.9564 - val_mae: 2.2284 - val_mse: 9.9564\n", "Epoch 75/100\n", "354/354 [==============================] - 0s 177us/sample - loss: 5.6730 - mae: 1.6669 - mse: 5.6730 - val_loss: 10.0358 - val_mae: 2.2259 - val_mse: 10.0358\n", "Epoch 76/100\n", "354/354 [==============================] - 0s 168us/sample - loss: 5.5947 - mae: 1.6216 - mse: 5.5947 - val_loss: 9.7815 - val_mae: 2.2282 - val_mse: 9.7815\n", "Epoch 77/100\n", "354/354 [==============================] - 0s 175us/sample - loss: 5.2870 - mae: 1.6492 - mse: 5.2870 - val_loss: 9.3813 - val_mae: 2.1987 - val_mse: 9.3813\n", "Epoch 78/100\n", "354/354 [==============================] - 0s 166us/sample - loss: 5.6015 - mae: 1.6183 - mse: 5.6015 - val_loss: 9.5577 - val_mae: 2.2139 - val_mse: 9.5577\n", "Epoch 79/100\n", "354/354 [==============================] - 0s 191us/sample - loss: 5.3793 - mae: 1.6202 - mse: 5.3793 - val_loss: 9.4099 - val_mae: 2.1957 - val_mse: 9.4099\n", "Epoch 80/100\n", "354/354 [==============================] - 0s 172us/sample - loss: 5.4258 - mae: 1.5943 - mse: 5.4258 - val_loss: 9.7489 - val_mae: 2.2233 - val_mse: 9.7489\n", "Epoch 81/100\n", "354/354 [==============================] - 0s 181us/sample - loss: 5.3006 - mae: 1.5934 - mse: 5.3006 - val_loss: 10.0298 - val_mae: 2.2258 - val_mse: 10.0298\n", "Epoch 82/100\n", "354/354 [==============================] - 0s 177us/sample - loss: 5.2590 - mae: 1.5854 - mse: 5.2590 - val_loss: 9.9642 - val_mae: 2.2718 - val_mse: 9.9642\n", "Epoch 83/100\n", "354/354 [==============================] - 0s 178us/sample - loss: 5.1325 - mae: 1.5765 - mse: 5.1325 - val_loss: 10.0795 - val_mae: 2.2524 - val_mse: 10.0795\n", "Epoch 84/100\n", "354/354 [==============================] - 0s 174us/sample - loss: 5.0736 - mae: 1.5846 - mse: 5.0736 - val_loss: 10.1607 - val_mae: 2.3146 - val_mse: 10.1607\n", "Epoch 85/100\n", "354/354 [==============================] - 0s 168us/sample - loss: 5.0863 - mae: 1.5598 - mse: 5.0863 - val_loss: 10.0663 - val_mae: 2.2961 - val_mse: 10.0663\n", "Epoch 86/100\n", "354/354 [==============================] - 0s 175us/sample - loss: 5.0422 - mae: 1.5758 - mse: 5.0422 - val_loss: 9.3842 - val_mae: 2.2033 - val_mse: 9.3842\n", "Epoch 87/100\n", "354/354 [==============================] - 0s 179us/sample - loss: 4.8308 - mae: 1.5587 - mse: 4.8308 - val_loss: 9.4605 - val_mae: 2.1797 - val_mse: 9.4605\n", "Epoch 88/100\n", "354/354 [==============================] - 0s 172us/sample - loss: 4.7424 - mae: 1.5468 - mse: 4.7424 - val_loss: 12.0587 - val_mae: 2.6306 - val_mse: 12.0587\n", "Epoch 89/100\n", "354/354 [==============================] - 0s 172us/sample - loss: 4.9329 - mae: 1.5937 - mse: 4.9329 - val_loss: 9.9514 - val_mae: 2.2366 - val_mse: 9.9514\n", "Epoch 90/100\n", "354/354 [==============================] - 0s 176us/sample - loss: 4.7181 - mae: 1.5625 - mse: 4.7181 - val_loss: 9.6245 - val_mae: 2.1626 - val_mse: 9.6245\n", "Epoch 91/100\n", "354/354 [==============================] - 0s 182us/sample - loss: 4.6726 - mae: 1.5040 - mse: 4.6726 - val_loss: 9.9543 - val_mae: 2.2394 - val_mse: 9.9543\n", "Epoch 92/100\n", "354/354 [==============================] - 0s 180us/sample - loss: 4.7058 - mae: 1.5416 - mse: 4.7058 - val_loss: 10.6368 - val_mae: 2.3900 - val_mse: 10.6368\n", "Epoch 93/100\n", "354/354 [==============================] - 0s 176us/sample - loss: 4.6515 - mae: 1.5235 - mse: 4.6515 - val_loss: 10.0118 - val_mae: 2.2661 - val_mse: 10.0118\n", "Epoch 94/100\n", "354/354 [==============================] - 0s 163us/sample - loss: 4.6973 - mae: 1.5262 - mse: 4.6973 - val_loss: 9.4214 - val_mae: 2.1961 - val_mse: 9.4214\n", "Epoch 95/100\n", "354/354 [==============================] - 0s 174us/sample - loss: 4.7056 - mae: 1.5392 - mse: 4.7056 - val_loss: 9.6110 - val_mae: 2.1998 - val_mse: 9.6110\n", "Epoch 96/100\n", "354/354 [==============================] - 0s 167us/sample - loss: 4.4156 - mae: 1.4496 - mse: 4.4156 - val_loss: 10.1083 - val_mae: 2.3143 - val_mse: 10.1083\n", "Epoch 97/100\n", "354/354 [==============================] - 0s 173us/sample - loss: 4.5201 - mae: 1.5019 - mse: 4.5201 - val_loss: 9.7179 - val_mae: 2.2635 - val_mse: 9.7179\n", "Epoch 98/100\n", "354/354 [==============================] - 0s 179us/sample - loss: 4.3824 - mae: 1.4403 - mse: 4.3824 - val_loss: 10.2802 - val_mae: 2.2846 - val_mse: 10.2802\n", "Epoch 99/100\n", "354/354 [==============================] - 0s 175us/sample - loss: 4.3252 - mae: 1.4806 - mse: 4.3252 - val_loss: 9.5943 - val_mae: 2.1745 - val_mse: 9.5943\n", "Epoch 100/100\n", "354/354 [==============================] - 0s 178us/sample - loss: 4.4134 - mae: 1.4451 - mse: 4.4134 - val_loss: 12.2396 - val_mae: 2.6152 - val_mse: 12.2396\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": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "x_test / loss : 12.2396\n", "x_test / mae : 2.6152\n", "x_test / mse : 12.2396\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": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "min( val_mae ) : 2.1552\n" ] } ], "source": [ "print(\"min( val_mae ) : {:.4f}\".format( min(history.history[\"val_mae\"]) ) )" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "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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\n", "text/plain": [ "<Figure size 576x432 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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dC3vnuhkjXQhVDy5cuPIl/yhc2aQmIBbEhctWsTXvvY13vOe97Bu3TruvPNOPve5z/H8888zb948LrjgAgYHB3nggQc466yz6Orq4i1veQuHHHII733ve3f580VEZPei0NAkBlTaBdwdJiA0vPnNb+aee+7h2GOPxcz47Gc/y7777st3vvMdPve5z5FOpxkYGOD6669n+fLlnHfeeURRBMBVV121y58vIiK7FxuriXt3V3n2RDabHbV+6dKlHHHEEeM+3tMvbqIcf2EfvM90Usmp3zO0s9dKRERaaszfaqf+N1ebqG5YUE4TEZFOpNDQJKNCA0oNIiLSeRQamiRR1dqjlgYREelECg1NUt3SECk1iIhIB1JoaJLqpz4qM4iISCdSaGiS0QMhlRpERKTzKDQ0yaiWhhbWQ0REZGcpNDRJ9U2vzWxpGBgYGHPbc889x1FHHdW0uoiISGdTaGiShMY0iIhIh9M00rvi/Nc1XHTf+NWwb9xSd/WHP/xhDjzwQDKZDABXXHEFZsadd97J+vXrKRaLXHnllbzpTQ09PXxELpfjoosuYvHixaRSKa6++mpOO+00Hn30Uc477zwKhQJRFPHDH/6QuXPn8va3v51ly5ZRLpf5h3/4B97xjneM6/NERKTzKDR0mLPPPpsPfvCDI6Hhpptu4pZbbuGv//qvmT59OmvWrOHkk0/mjW9846hxFDty7bXXAvDwww/z2GOP8ZrXvIYnnniCr371q1x22WW8853vpFAoUC6Xufnmm5k7dy4//elPAdi4cePEn6iIiLQddU90mOOPP55Vq1axYsUKHnzwQWbOnMmcOXP42Mc+xjHHHMMZZ5zB8uXLeemll8Z13F/96le8+93vBmDBggUceOCBPPHEE5xyyin80z/9E//8z//M888/T29vL0cffTS33XYbH/7wh7nrrruYMWPGZJyqiIi0GbU07IoxuhDqWbMpx7otOQBmT+th9rSenf7Yt771rfzgBz/gxRdf5Oyzz+aGG25g9erV/Pa3vyWdTjN//nxyudy4jjnW4Mxzzz2Xk046iZ/+9Ke89rWv5Rvf+Aann346v/3tb7n55pv56Ec/ymte8xouv/zynT4fERHpDAoNTTKR8zScffbZXHDBBaxZs4Y77riDm266ib333pt0Os0vf/lLnn/++XEfc9GiRdxwww2cfvrpPPHEE7zw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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": 12, "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": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "x_test / loss : 9.1795\n", "x_test / mae : 2.1552\n", "x_test / mse : 9.1795\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": 14, "metadata": {}, "outputs": [], "source": [ "mon_test=[-0.20113196, -0.48631663, 1.23572348, -0.26929877, 2.67879106,\n", " -0.89623587, 1.09961251, -1.05826704, -0.55823117, -0.06159088,\n", " -1.76085159, -1.97039608, 0.52775666]\n", "\n", "mon_test=np.array(mon_test).reshape(1,13)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Prédiction : 16.51 K$ Reality : 20.20 K$\n" ] } ], "source": [ "predictions = loaded_model.predict( mon_test )\n", "print(\"Prédiction : {:.2f} K$ Reality : {:.2f} K$\".format(predictions[0][0], y_train[13]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "" ] } ], "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.6" } }, "nbformat": 4, "nbformat_minor": 4 }