{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Deep Neural Network (DNN) - BHPD dataset\n", "========================================\n", "---\n", "Introduction au Deep Learning (IDLE) - S. Arias, E. Maldonado, JL. Parouty - CNRS/SARI/DEVLOG - 2020 \n", "\n", "## A very simple example of **regression** (Premium edition):\n", "\n", "Objective is to predicts **housing prices** from a set of house features. \n", "\n", "The **[Boston Housing Dataset](https://www.cs.toronto.edu/~delve/data/boston/bostonDetail.html)** consists of price of houses in various places in Boston. \n", "Alongside with price, the dataset also provide information such as Crime, areas of non-retail business in the town, \n", "age of people who own the house and many other attributes...\n", "\n", "What we're going to do:\n", "\n", " - (Retrieve data)\n", " - (Preparing the data)\n", " - (Build a model)\n", " - Train and save the model\n", " - Restore saved model\n", " - Evaluate the model\n", " - Make some predictions\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 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.8\n", "Run time : Saturday 15 February 2020, 12:32:05\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_cb315e50_4fe6_11ea_b235_859a5544c0e9\" ><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_cb315e50_4fe6_11ea_b235_859a5544c0e9level0_row0\" class=\"row_heading level0 row0\" >0</th>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row0_col0\" class=\"data row0 col0\" >0.01</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row0_col1\" class=\"data row0 col1\" >18.00</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row0_col2\" class=\"data row0 col2\" >2.31</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row0_col3\" class=\"data row0 col3\" >0.00</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row0_col4\" class=\"data row0 col4\" >0.54</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row0_col5\" class=\"data row0 col5\" >6.58</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row0_col6\" class=\"data row0 col6\" >65.20</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row0_col7\" class=\"data row0 col7\" >4.09</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row0_col8\" class=\"data row0 col8\" >1.00</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row0_col9\" class=\"data row0 col9\" >296.00</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row0_col10\" class=\"data row0 col10\" >15.30</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row0_col11\" class=\"data row0 col11\" >396.90</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row0_col12\" class=\"data row0 col12\" >4.98</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row0_col13\" class=\"data row0 col13\" >24.00</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9level0_row1\" class=\"row_heading level0 row1\" >1</th>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row1_col0\" class=\"data row1 col0\" >0.03</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row1_col1\" class=\"data row1 col1\" >0.00</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row1_col2\" class=\"data row1 col2\" >7.07</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row1_col3\" class=\"data row1 col3\" >0.00</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row1_col4\" class=\"data row1 col4\" >0.47</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row1_col5\" class=\"data row1 col5\" >6.42</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row1_col6\" class=\"data row1 col6\" >78.90</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row1_col7\" class=\"data row1 col7\" >4.97</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row1_col8\" class=\"data row1 col8\" >2.00</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row1_col9\" class=\"data row1 col9\" >242.00</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row1_col10\" class=\"data row1 col10\" >17.80</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row1_col11\" class=\"data row1 col11\" >396.90</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row1_col12\" class=\"data row1 col12\" >9.14</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row1_col13\" class=\"data row1 col13\" >21.60</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9level0_row2\" class=\"row_heading level0 row2\" >2</th>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row2_col0\" class=\"data row2 col0\" >0.03</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row2_col1\" class=\"data row2 col1\" >0.00</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row2_col2\" class=\"data row2 col2\" >7.07</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row2_col3\" class=\"data row2 col3\" >0.00</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row2_col4\" class=\"data row2 col4\" >0.47</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row2_col5\" class=\"data row2 col5\" >7.18</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row2_col6\" class=\"data row2 col6\" >61.10</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row2_col7\" class=\"data row2 col7\" >4.97</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row2_col8\" class=\"data row2 col8\" >2.00</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row2_col9\" class=\"data row2 col9\" >242.00</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row2_col10\" class=\"data row2 col10\" >17.80</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row2_col11\" class=\"data row2 col11\" >392.83</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row2_col12\" class=\"data row2 col12\" >4.03</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row2_col13\" class=\"data row2 col13\" >34.70</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9level0_row3\" class=\"row_heading level0 row3\" >3</th>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row3_col0\" class=\"data row3 col0\" >0.03</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row3_col1\" class=\"data row3 col1\" >0.00</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row3_col2\" class=\"data row3 col2\" >2.18</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row3_col3\" class=\"data row3 col3\" >0.00</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row3_col4\" class=\"data row3 col4\" >0.46</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row3_col5\" class=\"data row3 col5\" >7.00</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row3_col6\" class=\"data row3 col6\" >45.80</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row3_col7\" class=\"data row3 col7\" >6.06</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row3_col8\" class=\"data row3 col8\" >3.00</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row3_col9\" class=\"data row3 col9\" >222.00</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row3_col10\" class=\"data row3 col10\" >18.70</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row3_col11\" class=\"data row3 col11\" >394.63</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row3_col12\" class=\"data row3 col12\" >2.94</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row3_col13\" class=\"data row3 col13\" >33.40</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9level0_row4\" class=\"row_heading level0 row4\" >4</th>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row4_col0\" class=\"data row4 col0\" >0.07</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row4_col1\" class=\"data row4 col1\" >0.00</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row4_col2\" class=\"data row4 col2\" >2.18</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row4_col3\" class=\"data row4 col3\" >0.00</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row4_col4\" class=\"data row4 col4\" >0.46</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row4_col5\" class=\"data row4 col5\" >7.15</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row4_col6\" class=\"data row4 col6\" >54.20</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row4_col7\" class=\"data row4 col7\" >6.06</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row4_col8\" class=\"data row4 col8\" >3.00</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row4_col9\" class=\"data row4 col9\" >222.00</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row4_col10\" class=\"data row4 col10\" >18.70</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row4_col11\" class=\"data row4 col11\" >396.90</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row4_col12\" class=\"data row4 col12\" >5.33</td>\n", " <td id=\"T_cb315e50_4fe6_11ea_b235_859a5544c0e9row4_col13\" class=\"data row4 col13\" >36.20</td>\n", " </tr>\n", " </tbody></table>" ], "text/plain": [ "<pandas.io.formats.style.Styler at 0x7f869c8eef10>" ] }, "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_cb38331a_4fe6_11ea_b235_859a5544c0e9\" ><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_cb38331a_4fe6_11ea_b235_859a5544c0e9level0_row0\" class=\"row_heading level0 row0\" >count</th>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row0_col0\" class=\"data row0 col0\" >354.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row0_col1\" class=\"data row0 col1\" >354.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row0_col2\" class=\"data row0 col2\" >354.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row0_col3\" class=\"data row0 col3\" >354.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row0_col4\" class=\"data row0 col4\" >354.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row0_col5\" class=\"data row0 col5\" >354.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row0_col6\" class=\"data row0 col6\" >354.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row0_col7\" class=\"data row0 col7\" >354.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row0_col8\" class=\"data row0 col8\" >354.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row0_col9\" class=\"data row0 col9\" >354.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row0_col10\" class=\"data row0 col10\" >354.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row0_col11\" class=\"data row0 col11\" >354.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row0_col12\" class=\"data row0 col12\" >354.00</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9level0_row1\" class=\"row_heading level0 row1\" >mean</th>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row1_col0\" class=\"data row1 col0\" >3.76</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row1_col1\" class=\"data row1 col1\" >11.31</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row1_col2\" class=\"data row1 col2\" >11.18</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row1_col3\" class=\"data row1 col3\" >0.07</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row1_col4\" class=\"data row1 col4\" >0.56</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row1_col5\" class=\"data row1 col5\" >6.25</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row1_col6\" class=\"data row1 col6\" >69.29</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row1_col7\" class=\"data row1 col7\" >3.82</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row1_col8\" class=\"data row1 col8\" >9.95</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row1_col9\" class=\"data row1 col9\" >413.48</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row1_col10\" class=\"data row1 col10\" >18.49</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row1_col11\" class=\"data row1 col11\" >354.37</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row1_col12\" class=\"data row1 col12\" >12.89</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9level0_row2\" class=\"row_heading level0 row2\" >std</th>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row2_col0\" class=\"data row2 col0\" >7.96</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row2_col1\" class=\"data row2 col1\" >23.25</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row2_col2\" class=\"data row2 col2\" >6.80</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row2_col3\" class=\"data row2 col3\" >0.25</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row2_col4\" class=\"data row2 col4\" >0.12</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row2_col5\" class=\"data row2 col5\" >0.70</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row2_col6\" class=\"data row2 col6\" >27.93</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row2_col7\" class=\"data row2 col7\" >2.17</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row2_col8\" class=\"data row2 col8\" >8.87</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row2_col9\" class=\"data row2 col9\" >170.11</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row2_col10\" class=\"data row2 col10\" >2.15</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row2_col11\" class=\"data row2 col11\" >93.94</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row2_col12\" class=\"data row2 col12\" >7.13</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9level0_row3\" class=\"row_heading level0 row3\" >min</th>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row3_col0\" class=\"data row3 col0\" >0.01</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row3_col1\" class=\"data row3 col1\" >0.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row3_col2\" class=\"data row3 col2\" >0.46</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row3_col3\" class=\"data row3 col3\" >0.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row3_col4\" class=\"data row3 col4\" >0.39</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row3_col5\" class=\"data row3 col5\" >3.56</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row3_col6\" class=\"data row3 col6\" >6.20</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row3_col7\" class=\"data row3 col7\" >1.13</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row3_col8\" class=\"data row3 col8\" >1.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row3_col9\" class=\"data row3 col9\" >187.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row3_col10\" class=\"data row3 col10\" >12.60</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row3_col11\" class=\"data row3 col11\" >0.32</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row3_col12\" class=\"data row3 col12\" >1.73</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9level0_row4\" class=\"row_heading level0 row4\" >25%</th>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row4_col0\" class=\"data row4 col0\" >0.08</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row4_col1\" class=\"data row4 col1\" >0.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row4_col2\" class=\"data row4 col2\" >5.13</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row4_col3\" class=\"data row4 col3\" >0.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row4_col4\" class=\"data row4 col4\" >0.45</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row4_col5\" class=\"data row4 col5\" >5.88</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row4_col6\" class=\"data row4 col6\" >45.18</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row4_col7\" class=\"data row4 col7\" >2.08</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row4_col8\" class=\"data row4 col8\" >4.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row4_col9\" class=\"data row4 col9\" >280.25</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row4_col10\" class=\"data row4 col10\" >17.40</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row4_col11\" class=\"data row4 col11\" >374.49</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row4_col12\" class=\"data row4 col12\" >7.26</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9level0_row5\" class=\"row_heading level0 row5\" >50%</th>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row5_col0\" class=\"data row5 col0\" >0.29</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row5_col1\" class=\"data row5 col1\" >0.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row5_col2\" class=\"data row5 col2\" >9.69</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row5_col3\" class=\"data row5 col3\" >0.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row5_col4\" class=\"data row5 col4\" >0.53</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row5_col5\" class=\"data row5 col5\" >6.17</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row5_col6\" class=\"data row5 col6\" >77.75</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row5_col7\" class=\"data row5 col7\" >3.20</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row5_col8\" class=\"data row5 col8\" >5.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row5_col9\" class=\"data row5 col9\" >335.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row5_col10\" class=\"data row5 col10\" >19.10</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row5_col11\" class=\"data row5 col11\" >391.39</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row5_col12\" class=\"data row5 col12\" >11.86</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9level0_row6\" class=\"row_heading level0 row6\" >75%</th>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row6_col0\" class=\"data row6 col0\" >4.52</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row6_col1\" class=\"data row6 col1\" >12.50</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row6_col2\" class=\"data row6 col2\" >18.10</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row6_col3\" class=\"data row6 col3\" >0.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row6_col4\" class=\"data row6 col4\" >0.63</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row6_col5\" class=\"data row6 col5\" >6.60</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row6_col6\" class=\"data row6 col6\" >94.45</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row6_col7\" class=\"data row6 col7\" >5.19</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row6_col8\" class=\"data row6 col8\" >24.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row6_col9\" class=\"data row6 col9\" >666.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row6_col10\" class=\"data row6 col10\" >20.20</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row6_col11\" class=\"data row6 col11\" >396.12</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row6_col12\" class=\"data row6 col12\" >16.96</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9level0_row7\" class=\"row_heading level0 row7\" >max</th>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row7_col0\" class=\"data row7 col0\" >73.53</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row7_col1\" class=\"data row7 col1\" >95.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row7_col2\" class=\"data row7 col2\" >27.74</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row7_col3\" class=\"data row7 col3\" >1.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row7_col4\" class=\"data row7 col4\" >0.87</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row7_col5\" class=\"data row7 col5\" >8.72</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row7_col6\" class=\"data row7 col6\" >100.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row7_col7\" class=\"data row7 col7\" >12.13</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row7_col8\" class=\"data row7 col8\" >24.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row7_col9\" class=\"data row7 col9\" >711.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row7_col10\" class=\"data row7 col10\" >22.00</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row7_col11\" class=\"data row7 col11\" >396.90</td>\n", " <td id=\"T_cb38331a_4fe6_11ea_b235_859a5544c0e9row7_col12\" class=\"data row7 col12\" >36.98</td>\n", " </tr>\n", " </tbody></table>" ], "text/plain": [ "<pandas.io.formats.style.Styler at 0x7f87141c0c90>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "<style type=\"text/css\" >\n", "</style><table id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9\" ><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_cb3f14aa_4fe6_11ea_b235_859a5544c0e9level0_row0\" class=\"row_heading level0 row0\" >count</th>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row0_col0\" class=\"data row0 col0\" >354.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row0_col1\" class=\"data row0 col1\" >354.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row0_col2\" class=\"data row0 col2\" >354.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row0_col3\" class=\"data row0 col3\" >354.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row0_col4\" class=\"data row0 col4\" >354.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row0_col5\" class=\"data row0 col5\" >354.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row0_col6\" class=\"data row0 col6\" >354.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row0_col7\" class=\"data row0 col7\" >354.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row0_col8\" class=\"data row0 col8\" >354.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row0_col9\" class=\"data row0 col9\" >354.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row0_col10\" class=\"data row0 col10\" >354.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row0_col11\" class=\"data row0 col11\" >354.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row0_col12\" class=\"data row0 col12\" >354.00</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9level0_row1\" class=\"row_heading level0 row1\" >mean</th>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row1_col0\" class=\"data row1 col0\" >-0.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row1_col1\" class=\"data row1 col1\" >0.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row1_col2\" class=\"data row1 col2\" >0.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row1_col3\" class=\"data row1 col3\" >-0.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row1_col4\" class=\"data row1 col4\" >-0.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row1_col5\" class=\"data row1 col5\" >-0.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row1_col6\" class=\"data row1 col6\" >0.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row1_col7\" class=\"data row1 col7\" >0.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row1_col8\" class=\"data row1 col8\" >0.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row1_col9\" class=\"data row1 col9\" >-0.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row1_col10\" class=\"data row1 col10\" >0.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row1_col11\" class=\"data row1 col11\" >0.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row1_col12\" class=\"data row1 col12\" >-0.00</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9level0_row2\" class=\"row_heading level0 row2\" >std</th>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row2_col0\" class=\"data row2 col0\" >1.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row2_col1\" class=\"data row2 col1\" >1.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row2_col2\" class=\"data row2 col2\" >1.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row2_col3\" class=\"data row2 col3\" >1.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row2_col4\" class=\"data row2 col4\" >1.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row2_col5\" class=\"data row2 col5\" >1.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row2_col6\" class=\"data row2 col6\" >1.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row2_col7\" class=\"data row2 col7\" >1.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row2_col8\" class=\"data row2 col8\" >1.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row2_col9\" class=\"data row2 col9\" >1.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row2_col10\" class=\"data row2 col10\" >1.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row2_col11\" class=\"data row2 col11\" >1.00</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row2_col12\" class=\"data row2 col12\" >1.00</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9level0_row3\" class=\"row_heading level0 row3\" >min</th>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row3_col0\" class=\"data row3 col0\" >-0.47</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row3_col1\" class=\"data row3 col1\" >-0.49</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row3_col2\" class=\"data row3 col2\" >-1.58</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row3_col3\" class=\"data row3 col3\" >-0.27</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row3_col4\" class=\"data row3 col4\" >-1.45</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row3_col5\" class=\"data row3 col5\" >-3.86</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row3_col6\" class=\"data row3 col6\" >-2.26</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row3_col7\" class=\"data row3 col7\" >-1.24</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row3_col8\" class=\"data row3 col8\" >-1.01</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row3_col9\" class=\"data row3 col9\" >-1.33</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row3_col10\" class=\"data row3 col10\" >-2.74</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row3_col11\" class=\"data row3 col11\" >-3.77</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row3_col12\" class=\"data row3 col12\" >-1.56</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9level0_row4\" class=\"row_heading level0 row4\" >25%</th>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row4_col0\" class=\"data row4 col0\" >-0.46</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row4_col1\" class=\"data row4 col1\" >-0.49</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row4_col2\" class=\"data row4 col2\" >-0.89</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row4_col3\" class=\"data row4 col3\" >-0.27</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row4_col4\" class=\"data row4 col4\" >-0.91</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row4_col5\" class=\"data row4 col5\" >-0.54</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row4_col6\" class=\"data row4 col6\" >-0.86</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row4_col7\" class=\"data row4 col7\" >-0.80</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row4_col8\" class=\"data row4 col8\" >-0.67</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row4_col9\" class=\"data row4 col9\" >-0.78</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row4_col10\" class=\"data row4 col10\" >-0.50</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row4_col11\" class=\"data row4 col11\" >0.21</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row4_col12\" class=\"data row4 col12\" >-0.79</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9level0_row5\" class=\"row_heading level0 row5\" >50%</th>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row5_col0\" class=\"data row5 col0\" >-0.44</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row5_col1\" class=\"data row5 col1\" >-0.49</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row5_col2\" class=\"data row5 col2\" >-0.22</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row5_col3\" class=\"data row5 col3\" >-0.27</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row5_col4\" class=\"data row5 col4\" >-0.23</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row5_col5\" class=\"data row5 col5\" >-0.12</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row5_col6\" class=\"data row5 col6\" >0.30</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row5_col7\" class=\"data row5 col7\" >-0.28</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row5_col8\" class=\"data row5 col8\" >-0.56</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row5_col9\" class=\"data row5 col9\" >-0.46</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row5_col10\" class=\"data row5 col10\" >0.29</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row5_col11\" class=\"data row5 col11\" >0.39</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row5_col12\" class=\"data row5 col12\" >-0.14</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9level0_row6\" class=\"row_heading level0 row6\" >75%</th>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row6_col0\" class=\"data row6 col0\" >0.10</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row6_col1\" class=\"data row6 col1\" >0.05</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row6_col2\" class=\"data row6 col2\" >1.02</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row6_col3\" class=\"data row6 col3\" >-0.27</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row6_col4\" class=\"data row6 col4\" >0.63</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row6_col5\" class=\"data row6 col5\" >0.50</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row6_col6\" class=\"data row6 col6\" >0.90</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row6_col7\" class=\"data row6 col7\" >0.63</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row6_col8\" class=\"data row6 col8\" >1.58</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row6_col9\" class=\"data row6 col9\" >1.48</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row6_col10\" class=\"data row6 col10\" >0.80</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row6_col11\" class=\"data row6 col11\" >0.44</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row6_col12\" class=\"data row6 col12\" >0.57</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9level0_row7\" class=\"row_heading level0 row7\" >max</th>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row7_col0\" class=\"data row7 col0\" >8.76</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row7_col1\" class=\"data row7 col1\" >3.60</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row7_col2\" class=\"data row7 col2\" >2.44</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row7_col3\" class=\"data row7 col3\" >3.70</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row7_col4\" class=\"data row7 col4\" >2.68</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row7_col5\" class=\"data row7 col5\" >3.55</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row7_col6\" class=\"data row7 col6\" >1.10</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row7_col7\" class=\"data row7 col7\" >3.83</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row7_col8\" class=\"data row7 col8\" >1.58</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row7_col9\" class=\"data row7 col9\" >1.75</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row7_col10\" class=\"data row7 col10\" >1.64</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row7_col11\" class=\"data row7 col11\" >0.45</td>\n", " <td id=\"T_cb3f14aa_4fe6_11ea_b235_859a5544c0e9row7_col12\" class=\"data row7 col12\" >3.38</td>\n", " </tr>\n", " </tbody></table>" ], "text/plain": [ "<pandas.io.formats.style.Styler at 0x7f8699cc4310>" ] }, "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 3ms/sample - loss: 446.5069 - mae: 19.1690 - mse: 446.5069 - val_loss: 328.7387 - val_mae: 16.4455 - val_mse: 328.7387\n", "Epoch 2/100\n", "354/354 [==============================] - 0s 301us/sample - loss: 206.7491 - mae: 12.2281 - mse: 206.7491 - val_loss: 102.8150 - val_mae: 8.6449 - val_mse: 102.8150\n", "Epoch 3/100\n", "354/354 [==============================] - 0s 302us/sample - loss: 65.8724 - mae: 6.2331 - mse: 65.8724 - val_loss: 33.7508 - val_mae: 4.5848 - val_mse: 33.7508\n", "Epoch 4/100\n", "354/354 [==============================] - 0s 318us/sample - loss: 33.4179 - mae: 4.2331 - mse: 33.4179 - val_loss: 27.0058 - val_mae: 3.9154 - val_mse: 27.0058\n", "Epoch 5/100\n", "354/354 [==============================] - 0s 312us/sample - loss: 24.9602 - mae: 3.5624 - mse: 24.9602 - val_loss: 23.2470 - val_mae: 3.5429 - val_mse: 23.2470\n", "Epoch 6/100\n", "354/354 [==============================] - 0s 316us/sample - loss: 21.4080 - mae: 3.2530 - mse: 21.4080 - val_loss: 22.1707 - val_mae: 3.4498 - val_mse: 22.1707\n", "Epoch 7/100\n", "354/354 [==============================] - 0s 262us/sample - loss: 18.3586 - mae: 3.0399 - mse: 18.3586 - val_loss: 24.4102 - val_mae: 3.4754 - val_mse: 24.4102\n", "Epoch 8/100\n", "354/354 [==============================] - 0s 307us/sample - loss: 16.9126 - mae: 2.8925 - mse: 16.9126 - val_loss: 20.1919 - val_mae: 3.2138 - val_mse: 20.1919\n", "Epoch 9/100\n", "354/354 [==============================] - 0s 312us/sample - loss: 15.5047 - mae: 2.7532 - mse: 15.5047 - val_loss: 19.0378 - val_mae: 3.0763 - val_mse: 19.0378\n", "Epoch 10/100\n", "354/354 [==============================] - 0s 273us/sample - loss: 14.5763 - mae: 2.6404 - mse: 14.5763 - val_loss: 19.9752 - val_mae: 3.0986 - val_mse: 19.9752\n", "Epoch 11/100\n", "354/354 [==============================] - 0s 310us/sample - loss: 13.5901 - mae: 2.5801 - mse: 13.5901 - val_loss: 18.9675 - val_mae: 3.0192 - val_mse: 18.9675\n", "Epoch 12/100\n", "354/354 [==============================] - 0s 270us/sample - loss: 12.9341 - mae: 2.5158 - mse: 12.9341 - val_loss: 20.6757 - val_mae: 3.1029 - val_mse: 20.6757\n", "Epoch 13/100\n", "354/354 [==============================] - 0s 311us/sample - loss: 12.4520 - mae: 2.5061 - mse: 12.4520 - val_loss: 17.6596 - val_mae: 2.8839 - val_mse: 17.6596\n", "Epoch 14/100\n", "354/354 [==============================] - 0s 311us/sample - loss: 11.9484 - mae: 2.4710 - mse: 11.9484 - val_loss: 16.7645 - val_mae: 2.8083 - val_mse: 16.7645\n", "Epoch 15/100\n", "354/354 [==============================] - 0s 269us/sample - loss: 11.6260 - mae: 2.3959 - mse: 11.6260 - val_loss: 17.5048 - val_mae: 2.8007 - val_mse: 17.5048\n", "Epoch 16/100\n", "354/354 [==============================] - 0s 267us/sample - loss: 11.2504 - mae: 2.3567 - mse: 11.2504 - val_loss: 18.6748 - val_mae: 2.8771 - val_mse: 18.6748\n", "Epoch 17/100\n", "354/354 [==============================] - 0s 269us/sample - loss: 10.8352 - mae: 2.3051 - mse: 10.8352 - val_loss: 19.4796 - val_mae: 3.0041 - val_mse: 19.4796\n", "Epoch 18/100\n", "354/354 [==============================] - 0s 267us/sample - loss: 10.6488 - mae: 2.3377 - mse: 10.6488 - val_loss: 17.0329 - val_mae: 2.7640 - val_mse: 17.0329\n", "Epoch 19/100\n", "354/354 [==============================] - 0s 273us/sample - loss: 10.2134 - mae: 2.2439 - mse: 10.2134 - val_loss: 18.0589 - val_mae: 2.8565 - val_mse: 18.0589\n", "Epoch 20/100\n", "354/354 [==============================] - 0s 315us/sample - loss: 10.1024 - mae: 2.2432 - mse: 10.1024 - val_loss: 16.5968 - val_mae: 2.7402 - val_mse: 16.5968\n", "Epoch 21/100\n", "354/354 [==============================] - 0s 277us/sample - loss: 10.0576 - mae: 2.2401 - mse: 10.0576 - val_loss: 18.4496 - val_mae: 2.8156 - val_mse: 18.4496\n", "Epoch 22/100\n", "354/354 [==============================] - 0s 269us/sample - loss: 9.6590 - mae: 2.1500 - mse: 9.6590 - val_loss: 18.7084 - val_mae: 2.8309 - val_mse: 18.7084\n", "Epoch 23/100\n", "354/354 [==============================] - 0s 277us/sample - loss: 9.4596 - mae: 2.1967 - mse: 9.4596 - val_loss: 18.0308 - val_mae: 2.7595 - val_mse: 18.0308\n", "Epoch 24/100\n", "354/354 [==============================] - 0s 272us/sample - loss: 9.2778 - mae: 2.1680 - mse: 9.2778 - val_loss: 18.9343 - val_mae: 2.9152 - val_mse: 18.9343\n", "Epoch 25/100\n", "354/354 [==============================] - 0s 267us/sample - loss: 9.1075 - mae: 2.1451 - mse: 9.1076 - val_loss: 18.0646 - val_mae: 2.8202 - val_mse: 18.0646\n", "Epoch 26/100\n", "354/354 [==============================] - 0s 273us/sample - loss: 9.2196 - mae: 2.1282 - mse: 9.2196 - val_loss: 18.7244 - val_mae: 2.8288 - val_mse: 18.7244\n", "Epoch 27/100\n", "354/354 [==============================] - 0s 267us/sample - loss: 8.5733 - mae: 2.0703 - mse: 8.5733 - val_loss: 16.9568 - val_mae: 2.8123 - val_mse: 16.9568\n", "Epoch 28/100\n", "354/354 [==============================] - 0s 309us/sample - loss: 8.6252 - mae: 2.0821 - mse: 8.6252 - val_loss: 16.4984 - val_mae: 2.7069 - val_mse: 16.4984\n", "Epoch 29/100\n", "354/354 [==============================] - 0s 307us/sample - loss: 8.6336 - mae: 2.0822 - mse: 8.6336 - val_loss: 16.0498 - val_mae: 2.6532 - val_mse: 16.0498\n", "Epoch 30/100\n", "354/354 [==============================] - 0s 321us/sample - loss: 8.5071 - mae: 2.0379 - mse: 8.5071 - val_loss: 15.1042 - val_mae: 2.6004 - val_mse: 15.1042\n", "Epoch 31/100\n", "354/354 [==============================] - 0s 273us/sample - loss: 8.2888 - mae: 2.0627 - mse: 8.2888 - val_loss: 16.2730 - val_mae: 2.7019 - val_mse: 16.2730\n", "Epoch 32/100\n", "354/354 [==============================] - 0s 271us/sample - loss: 8.2021 - mae: 2.0000 - mse: 8.2021 - val_loss: 17.2852 - val_mae: 2.7962 - val_mse: 17.2852\n", "Epoch 33/100\n", "354/354 [==============================] - 0s 272us/sample - loss: 8.2973 - mae: 2.0336 - mse: 8.2973 - val_loss: 16.8973 - val_mae: 2.7318 - val_mse: 16.8973\n", "Epoch 34/100\n", "354/354 [==============================] - 0s 257us/sample - loss: 8.1033 - mae: 2.0105 - mse: 8.1033 - val_loss: 16.6509 - val_mae: 2.8218 - val_mse: 16.6509\n", "Epoch 35/100\n", "354/354 [==============================] - 0s 272us/sample - loss: 8.0724 - mae: 2.0170 - mse: 8.0724 - val_loss: 16.0802 - val_mae: 2.6733 - val_mse: 16.0802\n", "Epoch 36/100\n", "354/354 [==============================] - 0s 257us/sample - loss: 7.7939 - mae: 1.9606 - mse: 7.7939 - val_loss: 17.1008 - val_mae: 2.7384 - val_mse: 17.1008\n", "Epoch 37/100\n", "354/354 [==============================] - 0s 269us/sample - loss: 7.7812 - mae: 1.9719 - mse: 7.7812 - val_loss: 16.3472 - val_mae: 2.6939 - val_mse: 16.3472\n", "Epoch 38/100\n", "354/354 [==============================] - 0s 276us/sample - loss: 7.4494 - mae: 1.9224 - mse: 7.4494 - val_loss: 19.3916 - val_mae: 2.9414 - val_mse: 19.3916\n", "Epoch 39/100\n", "354/354 [==============================] - 0s 271us/sample - loss: 7.8023 - mae: 1.9978 - mse: 7.8023 - val_loss: 16.3499 - val_mae: 2.7018 - val_mse: 16.3499\n", "Epoch 40/100\n", "354/354 [==============================] - 0s 270us/sample - loss: 7.3681 - mae: 1.9293 - mse: 7.3681 - val_loss: 16.0445 - val_mae: 2.6872 - val_mse: 16.0445\n", "Epoch 41/100\n", "354/354 [==============================] - 0s 267us/sample - loss: 7.3013 - mae: 1.8820 - mse: 7.3013 - val_loss: 16.5657 - val_mae: 2.7222 - val_mse: 16.5657\n", "Epoch 42/100\n", "354/354 [==============================] - 0s 274us/sample - loss: 7.3978 - mae: 1.9154 - mse: 7.3978 - val_loss: 15.9821 - val_mae: 2.6576 - val_mse: 15.9821\n", "Epoch 43/100\n", "354/354 [==============================] - 0s 319us/sample - loss: 6.9832 - mae: 1.9037 - mse: 6.9832 - val_loss: 14.4977 - val_mae: 2.5418 - val_mse: 14.4977\n", "Epoch 44/100\n", "354/354 [==============================] - 0s 269us/sample - loss: 7.2307 - mae: 1.8968 - mse: 7.2307 - val_loss: 15.0962 - val_mae: 2.6188 - val_mse: 15.0962\n", "Epoch 45/100\n", "354/354 [==============================] - 0s 256us/sample - loss: 7.0289 - mae: 1.8685 - mse: 7.0289 - val_loss: 17.0531 - val_mae: 2.8123 - val_mse: 17.0531\n", "Epoch 46/100\n", "354/354 [==============================] - 0s 270us/sample - loss: 6.9010 - mae: 1.8537 - mse: 6.9010 - val_loss: 16.7469 - val_mae: 2.7081 - val_mse: 16.7469\n", "Epoch 47/100\n", "354/354 [==============================] - 0s 268us/sample - loss: 6.9256 - mae: 1.8664 - mse: 6.9256 - val_loss: 16.1227 - val_mae: 2.7760 - val_mse: 16.1227\n", "Epoch 48/100\n", "354/354 [==============================] - 0s 273us/sample - loss: 6.8333 - mae: 1.8552 - mse: 6.8333 - val_loss: 14.9262 - val_mae: 2.6213 - val_mse: 14.9262\n", "Epoch 49/100\n", "354/354 [==============================] - 0s 313us/sample - loss: 6.7351 - mae: 1.8375 - mse: 6.7351 - val_loss: 14.2252 - val_mae: 2.5309 - val_mse: 14.2252\n", "Epoch 50/100\n", "354/354 [==============================] - 0s 276us/sample - loss: 6.6672 - mae: 1.7913 - mse: 6.6672 - val_loss: 16.5652 - val_mae: 2.7693 - val_mse: 16.5652\n", "Epoch 51/100\n", "354/354 [==============================] - 0s 271us/sample - loss: 6.6222 - mae: 1.8325 - mse: 6.6222 - val_loss: 14.8928 - val_mae: 2.5921 - val_mse: 14.8928\n", "Epoch 52/100\n", "354/354 [==============================] - 0s 271us/sample - loss: 6.5606 - mae: 1.8150 - mse: 6.5606 - val_loss: 14.7382 - val_mae: 2.6124 - val_mse: 14.7382\n", "Epoch 53/100\n", "354/354 [==============================] - 0s 273us/sample - loss: 6.5737 - mae: 1.7757 - mse: 6.5737 - val_loss: 14.8866 - val_mae: 2.6357 - val_mse: 14.8866\n", "Epoch 54/100\n", "354/354 [==============================] - 0s 264us/sample - loss: 6.3009 - mae: 1.7569 - mse: 6.3009 - val_loss: 14.6100 - val_mae: 2.6115 - val_mse: 14.6100\n", "Epoch 55/100\n", "354/354 [==============================] - 0s 272us/sample - loss: 6.2524 - mae: 1.7679 - mse: 6.2524 - val_loss: 17.4939 - val_mae: 2.8652 - val_mse: 17.4939\n", "Epoch 56/100\n", "354/354 [==============================] - 0s 319us/sample - loss: 6.2461 - mae: 1.7830 - mse: 6.2461 - val_loss: 14.0397 - val_mae: 2.5829 - val_mse: 14.0397\n", "Epoch 57/100\n", "354/354 [==============================] - 0s 267us/sample - loss: 6.3124 - mae: 1.7788 - mse: 6.3124 - val_loss: 15.4946 - val_mae: 2.7133 - val_mse: 15.4946\n", "Epoch 58/100\n", "354/354 [==============================] - 0s 269us/sample - loss: 6.1133 - mae: 1.7282 - mse: 6.1133 - val_loss: 14.5244 - val_mae: 2.5982 - val_mse: 14.5244\n", "Epoch 59/100\n", "354/354 [==============================] - 0s 259us/sample - loss: 6.2866 - mae: 1.7860 - mse: 6.2866 - val_loss: 15.8915 - val_mae: 2.7331 - val_mse: 15.8915\n", "Epoch 60/100\n", "354/354 [==============================] - 0s 311us/sample - loss: 5.9945 - mae: 1.7178 - mse: 5.9945 - val_loss: 13.2656 - val_mae: 2.5189 - val_mse: 13.2656\n", "Epoch 61/100\n", "354/354 [==============================] - 0s 263us/sample - loss: 6.0649 - mae: 1.7064 - mse: 6.0649 - val_loss: 15.4134 - val_mae: 2.7351 - val_mse: 15.4134\n", "Epoch 62/100\n", "354/354 [==============================] - 0s 268us/sample - loss: 5.9954 - mae: 1.6767 - mse: 5.9954 - val_loss: 13.8741 - val_mae: 2.5721 - val_mse: 13.8741\n", "Epoch 63/100\n", "354/354 [==============================] - 0s 254us/sample - loss: 5.9648 - mae: 1.7023 - mse: 5.9648 - val_loss: 15.1974 - val_mae: 2.6602 - val_mse: 15.1974\n", "Epoch 64/100\n", "354/354 [==============================] - 0s 272us/sample - loss: 5.7276 - mae: 1.7202 - mse: 5.7276 - val_loss: 14.5766 - val_mae: 2.6508 - val_mse: 14.5766\n", "Epoch 65/100\n", "354/354 [==============================] - 0s 266us/sample - loss: 5.8443 - mae: 1.6907 - mse: 5.8443 - val_loss: 15.5797 - val_mae: 2.6848 - val_mse: 15.5797\n", "Epoch 66/100\n", "354/354 [==============================] - 0s 273us/sample - loss: 5.8195 - mae: 1.7295 - mse: 5.8195 - val_loss: 14.5484 - val_mae: 2.6527 - val_mse: 14.5484\n", "Epoch 67/100\n", "354/354 [==============================] - 0s 266us/sample - loss: 5.8216 - mae: 1.6966 - mse: 5.8216 - val_loss: 14.3616 - val_mae: 2.5733 - val_mse: 14.3616\n", "Epoch 68/100\n", "354/354 [==============================] - 0s 271us/sample - loss: 5.6572 - mae: 1.6543 - mse: 5.6572 - val_loss: 16.1438 - val_mae: 2.8151 - val_mse: 16.1438\n", "Epoch 69/100\n", "354/354 [==============================] - 0s 259us/sample - loss: 5.5142 - mae: 1.6657 - mse: 5.5142 - val_loss: 14.2295 - val_mae: 2.5796 - val_mse: 14.2295\n", "Epoch 70/100\n", "354/354 [==============================] - 0s 273us/sample - loss: 5.4965 - mae: 1.6313 - mse: 5.4965 - val_loss: 15.2662 - val_mae: 2.6980 - val_mse: 15.2662\n", "Epoch 71/100\n", "354/354 [==============================] - 0s 270us/sample - loss: 5.4534 - mae: 1.6717 - mse: 5.4534 - val_loss: 14.5025 - val_mae: 2.6441 - val_mse: 14.5025\n", "Epoch 72/100\n", "354/354 [==============================] - 0s 253us/sample - loss: 5.5146 - mae: 1.6526 - mse: 5.5146 - val_loss: 13.7906 - val_mae: 2.5753 - val_mse: 13.7906\n", "Epoch 73/100\n", "354/354 [==============================] - 0s 272us/sample - loss: 5.4499 - mae: 1.6130 - mse: 5.4499 - val_loss: 15.1649 - val_mae: 2.7624 - val_mse: 15.1649\n", "Epoch 74/100\n", "354/354 [==============================] - 0s 309us/sample - loss: 5.3808 - mae: 1.6297 - mse: 5.3808 - val_loss: 12.9326 - val_mae: 2.5007 - val_mse: 12.9326\n", "Epoch 75/100\n", "354/354 [==============================] - 0s 258us/sample - loss: 5.3546 - mae: 1.6313 - mse: 5.3546 - val_loss: 13.6397 - val_mae: 2.5810 - val_mse: 13.6397\n", "Epoch 76/100\n", "354/354 [==============================] - 0s 265us/sample - loss: 5.1666 - mae: 1.5998 - mse: 5.1666 - val_loss: 15.6069 - val_mae: 2.7630 - val_mse: 15.6069\n", "Epoch 77/100\n", "354/354 [==============================] - 0s 272us/sample - loss: 5.2465 - mae: 1.6192 - mse: 5.2465 - val_loss: 14.8084 - val_mae: 2.6388 - val_mse: 14.8084\n", "Epoch 78/100\n", "354/354 [==============================] - 0s 265us/sample - loss: 5.1107 - mae: 1.5772 - mse: 5.1107 - val_loss: 13.6319 - val_mae: 2.5756 - val_mse: 13.6319\n", "Epoch 79/100\n", "354/354 [==============================] - 0s 272us/sample - loss: 5.2677 - mae: 1.5989 - mse: 5.2677 - val_loss: 15.0306 - val_mae: 2.7715 - val_mse: 15.0306\n", "Epoch 80/100\n", "354/354 [==============================] - 0s 274us/sample - loss: 5.0534 - mae: 1.5504 - mse: 5.0534 - val_loss: 13.3917 - val_mae: 2.5352 - val_mse: 13.3917\n", "Epoch 81/100\n", "354/354 [==============================] - 0s 272us/sample - loss: 5.1013 - mae: 1.5826 - mse: 5.1013 - val_loss: 14.6761 - val_mae: 2.7158 - val_mse: 14.6761\n", "Epoch 82/100\n", "354/354 [==============================] - 0s 258us/sample - loss: 5.1137 - mae: 1.5984 - mse: 5.1137 - val_loss: 14.7063 - val_mae: 2.6576 - val_mse: 14.7063\n", "Epoch 83/100\n", "354/354 [==============================] - 0s 269us/sample - loss: 4.9343 - mae: 1.5545 - mse: 4.9343 - val_loss: 13.6205 - val_mae: 2.5494 - val_mse: 13.6205\n", "Epoch 84/100\n", "354/354 [==============================] - 0s 277us/sample - loss: 4.9839 - mae: 1.5815 - mse: 4.9839 - val_loss: 13.3857 - val_mae: 2.6047 - val_mse: 13.3857\n", "Epoch 85/100\n", "354/354 [==============================] - 0s 277us/sample - loss: 4.9946 - mae: 1.5818 - mse: 4.9946 - val_loss: 14.1012 - val_mae: 2.6176 - val_mse: 14.1012\n", "Epoch 86/100\n", "354/354 [==============================] - 0s 273us/sample - loss: 4.7884 - mae: 1.5321 - mse: 4.7884 - val_loss: 14.5182 - val_mae: 2.6687 - val_mse: 14.5182\n", "Epoch 87/100\n", "354/354 [==============================] - 0s 311us/sample - loss: 4.8134 - mae: 1.5660 - mse: 4.8134 - val_loss: 12.7966 - val_mae: 2.5734 - val_mse: 12.7966\n", "Epoch 88/100\n", "354/354 [==============================] - 0s 273us/sample - loss: 4.7923 - mae: 1.5483 - mse: 4.7923 - val_loss: 14.4001 - val_mae: 2.6707 - val_mse: 14.4001\n", "Epoch 89/100\n", "354/354 [==============================] - 0s 274us/sample - loss: 4.6705 - mae: 1.5086 - mse: 4.6705 - val_loss: 15.3677 - val_mae: 2.7359 - val_mse: 15.3677\n", "Epoch 90/100\n", "354/354 [==============================] - 0s 280us/sample - loss: 4.8776 - mae: 1.5806 - mse: 4.8776 - val_loss: 14.4442 - val_mae: 2.6343 - val_mse: 14.4442\n", "Epoch 91/100\n", "354/354 [==============================] - 0s 260us/sample - loss: 4.6349 - mae: 1.5300 - mse: 4.6349 - val_loss: 14.2969 - val_mae: 2.7718 - val_mse: 14.2969\n", "Epoch 92/100\n", "354/354 [==============================] - 0s 273us/sample - loss: 4.7835 - mae: 1.5637 - mse: 4.7835 - val_loss: 13.1123 - val_mae: 2.5578 - val_mse: 13.1123\n", "Epoch 93/100\n", "354/354 [==============================] - 0s 277us/sample - loss: 4.6759 - mae: 1.5259 - mse: 4.6759 - val_loss: 14.3508 - val_mae: 2.6888 - val_mse: 14.3507\n", "Epoch 94/100\n", "354/354 [==============================] - 0s 273us/sample - loss: 4.7856 - mae: 1.5560 - mse: 4.7856 - val_loss: 14.5237 - val_mae: 2.6956 - val_mse: 14.5237\n", "Epoch 95/100\n", "354/354 [==============================] - 0s 313us/sample - loss: 4.7038 - mae: 1.5331 - mse: 4.7038 - val_loss: 12.7707 - val_mae: 2.5393 - val_mse: 12.7707\n", "Epoch 96/100\n", "354/354 [==============================] - 0s 277us/sample - loss: 4.6006 - mae: 1.5331 - mse: 4.6006 - val_loss: 13.8540 - val_mae: 2.6720 - val_mse: 13.8540\n", "Epoch 97/100\n", "354/354 [==============================] - 0s 269us/sample - loss: 4.4720 - mae: 1.4912 - mse: 4.4720 - val_loss: 13.1524 - val_mae: 2.6311 - val_mse: 13.1524\n", "Epoch 98/100\n", "354/354 [==============================] - 0s 309us/sample - loss: 4.4242 - mae: 1.4854 - mse: 4.4242 - val_loss: 11.7020 - val_mae: 2.4886 - val_mse: 11.7020\n", "Epoch 99/100\n", "354/354 [==============================] - 0s 280us/sample - loss: 4.5642 - mae: 1.4920 - mse: 4.5642 - val_loss: 12.6523 - val_mae: 2.5232 - val_mse: 12.6523\n", "Epoch 100/100\n", "354/354 [==============================] - 0s 274us/sample - loss: 4.1971 - mae: 1.4564 - mse: 4.1971 - val_loss: 18.7164 - val_mae: 3.0774 - val_mse: 18.7164\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 : 18.7164\n", "x_test / mae : 3.0774\n", "x_test / mse : 18.7164\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.4886\n" ] } ], "source": [ "print(\"min( val_mae ) : {:.4f}\".format( min(history.history[\"val_mae\"]) ) )" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAg0AAAGdCAYAAACRlkBKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdeZxcVZ3//9enll6yryQhgQTCDoEEiYBRUfEnIi4zjAsCjjIiagFft9+M4HcUZBhlHBUUKRnQWURBFhVxGYkIARcgRAxGCJIEErKTfeutlvP949zqvl2p6q7uVFfV7byfD+pxK/eeun3q0n3rXeece6455xARERHpT6zeFRAREZFoUGgQERGRiig0iIiISEUUGkRERKQiCg0iIiJSEYUGERERqYhCg4iIiFREoUFEBsXM/tvMXPDImNkh/ZT/m1B5Z2YfKlFmgpn9XzP7g5ltD/a72cyeMbO7zOyjZnZkidddW7Tvvh43VfEwiBxUEvWugIgMCwngQqCvD+S/72sHZnY68AAQDh+7gZHAycHjAuCnwN+U2U0e2NJPXXf3s11EylBoEJED9TJwOD4UlAwNZjYBOA/YC3QBE4q2j6MnMKwArgUecM7tDbZPBc4C3osPBuWsdc7NGvxbEZG+KDSIyIF6HMgA88zsROfcsyXKXAA0AXcBby6z/RCgE3iTc25deKNzbhNwN3C3mbVWs/IiUjmNaRCRargjWJbrgiis/16Z7XOC5dLiwFDMOdc+wLqJSJUoNIhINRRCw0Vm1uu8YmbHAKcDa4FF/exnmplZ9asnItWg0CAiB8w59yLwe2A68KaizYVWhh8458qNR1gSLA8H/tXMmqtfSxE5UAoNIlItha6H7i6KoNXg4qLtpdwF/DV4fjWwycx+ZGb/ZGZvNLMRFdbhMDPb1M/jxIG8KRHpodAgItVyD9ABnG9mI4N1ZwEzgSXOueXlXuic68C3UPwiWDUOOB/4N+BhYKeZPWBmZ/ZThxgwpZ9HcuBvTURAoUFEqsQ5txP4GX5ehb8LVvc3ADL8+g3OubcDx+NbG34BbAw2J4F3AL83s0/0sZs1zjnr57F0EG9PRFBoEJHqKoSDDwSXRv4d/nLMuyrdgXPueefcDc65tzvnDsWHiC8CbYABXzezU6tcbxGpgEKDiFTTr4BX8F0NVwBjgP91zm0d7A6DEHEtcC7g8OetDx54VUVkoBQaRKRqnHNZ4If4c8u/BqvvKP+KAe37MfxskQDHVGOfIjIwCg0iUm2FLooksAM/zqFa9gXLriruU0QqpGmkRaSqnHN/NLNrgdHAn51znf29xszmAy8453b1UeZE4JTgnxrMKFIHCg0iUnXOuS8O8CXvAy41s7uAHwFPOuf2AJjZRPyNqr6Abx3dB3ynitUVkQopNIhII8gAY4GPBQ/MbDf+HBWe2GkncIFzbm2Z/RxmZpv6+Vl/cM6df4D1FTkoKTSISCP4HPBz4K3AmcBxwGT8JZZbgOXAg8DtzrktfeynMLlTXyb0s11EyjDnXL3rICIiIhGgqydERESkIgoNIiIiUhGFBhEREamIQoOIiIhURKGhjFQq5VKplEaJioiIBHTJZf8UHERE5GBi5TaopUFEREQqotAgIiIiFVFoEBERkYooNIiIiEhFNBBygDKZDOvWraOjo6PeVYmElpYWZsyYQTKZrHdVRETkACk0DNC6desYPXo0s2bNwqzsAFMBnHNs27aNdevWccQRR9S7OiIicoDUPTFAHR0dTJw4UYGhAmbGxIkT1SojIjJMKDQMggJD5XSsRESGD4UGERERqYhCg4iIiFREoSGCVq9ezXHHHcell17KSSedxEUXXcRDDz3EggULOProo1m8eDGPPvooc+fOZe7cucybN489e/YA8O///u/Mnz+fk08+mWuuuabO70RERKJEV08cgHP+5RdDtu8HP39en9tXrlzJvffey2233cb8+fO58847+d3vfscDDzzAl770JXK5HLfccgsLFixg7969tLS0sHDhQlasWMHixYtxzvHOd76Txx57jNe//vVD9j5ERGT4UEtDRB1xxBHMmTOHWCzGiSeeyNlnn42ZMWfOHFavXs2CBQv49Kc/zTe/+U127txJIpFg4cKFLFy4kHnz5nHqqafy/PPPs2LFinq/FRERiQi1NERUc3Nz9/NYLNb971gsRjab5aqrruK8887jl7/8JWeccQYPPfQQzjmuvvpqPvrRj9ar2iIiEmEKDQegvy6EsBc27KJwl+2jp40d8ksRV61axZw5c5gzZw6PP/44zz//POeccw6f//znueiiixg1ahTr168nmUxyyCGHDGldRERkeFBoqBEzcD4z4Jz/91C66aabeOSRR4jH45xwwgmce+65NDc3s3z5cs4880wARo0axfe//32FBhERqYi5wieZ9JJKpRxAOp3utX758uUcf/zxA97fyk27yOf9sZ49dQzx2MEznGSwx0xEROqi7Nfag+eTq84s9P9AOU1ERKJIoaFGwt0Rat0REZEoUmiokV6hoX7VEBERGTSFhhpR94SIiESdQkONqHtCRESiTqGhRsLzMigyiIhIFCk01Ej4+hU1NIiISBQpNNRIvbonRo0aVbOfJSIiw5tCQ430GghZx3qIiIgMlqaRPhCXvrXiotMHuu/v/Krk6s9+9rPMnDmTVCoFwLXXXouZ8dhjj7Fjxw4ymQzXX38973rXu/r9EYsWLeKaa65hypQpLF26lPPPP585c+bwjW98g/b2du6//35mz57Nvffeyxe/+EXi8Thjx47lscceI5fLcdVVV7Fo0SI6Ozu5/PLLdSMsEZFhTi0NEXPBBRdw9913d//7nnvu4ZJLLuEnP/kJTz/9NI888gif+cxnKu4CeeaZZ/jGN77BsmXLuOOOO3jhhRdYvHgxl156KTfffDMA1113HQ8++CDPPPMMDzzwAADf/e53GTt2LE899RRPPfUUt99+Oy+99FL137CIiDQMtTREzLx583jllVfYsGEDW7ZsYfz48UybNo1PfepTPPbYY8RiMdavX8/mzZuZOnVqv/ubP38+06ZNA2D27Nm85S1vAWDOnDk88sgjACxYsIAPfehDvPe97+X8888HYOHChfz5z3/mvvvuA2DXrl2sWLGCI444YijetoiINACFhgNRpguhlM0729jV1gXAlLGtjB3ZPOgf++53v5v77ruPTZs2ccEFF/CDH/yALVu28Mc//pFkMsmsWbPo6OioaF/NzT31iMVi3f+OxWJks1kAbr31Vp588kl+8YtfMHfuXJYuXYpzjptvvplzzjln0O9DRESiRd0TNVLNeRouuOACfvjDH3Lffffx7ne/m127dnHIIYeQTCZ55JFHWLNmzQH+hN5WrVrF6aefznXXXcekSZNYu3Yt55xzDt/+9rfJZDIAvPDCC+zbt6+qP1dERBqLWhpqJDxPQ/4AL7k88cQT2bNnD9OnT2fatGlcdNFFvOMd7+C0005j7ty5HHfccQdW2SL/+I//yIoVK3DOcfbZZ3PKKadw8skns3r1ak499VScc0yePJn777+/qj9XREQai2lK49JSqZQDSKfT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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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+iuBC9NY7y7grv7sI1MKEpnR+yUiMjh4pgBTRERE/ElhQkRERPpFYWIQWb9+PTNmzOCqq65i1qxZXHrppTz77LOcfPLJTJ8+nddee43XXnuNk046iTlz5nDSSSfxzjtugtHW1lauv/565s2bx5FHHslvfvObHL8aERHxi5zXTAxG59781wHb91M3nt/j42vXruXBBx/k9ttvZ968efzhD3/gxRdf5PHHH+fWW2/lnnvu4fnnnyc/P59nn32Wb33rWzz88MPccccdVFZW8vrrr9PS0sLJJ5/MOeecozMtRESkVwoTg8yUKVOYPXs2ADNnzuSss87CGMPs2bNZv349NTU1fOYzn2HNmjUYY4hGowA8/fTTLFu2jIceegiAmpoa1qxZozAhIiK9UpgYZAoLOy47EggE2r8PBALEYjFuvPFGzjjjDB555BHWr1/P6aefDrh5H2677TbOPffcXDRbRER8TGFiAPQ2FJHsvZ21RGNuws/JI8opCOYNVLMA1+Mwbpy7DMldd93Vvvzcc8/lV7/6FWeeeSbBYJDVq1czbtw4SktLB7Q9IiLifyrAzLFA0lwLcfo0+WZGvva1r/HNb36Tk08+mdbW1vblV111FUcccQTHHHMMs2bN4vOf/zyxWGzA2yMiIv5n+jh79EErFApZgHA43Gn5ypUrOfzwwzPe38bqepqj7qA9YXgZxQUHV2dRX983ERE54LqdaVA9EzmWPAmkgp2IiPiRwkSOdRrmUJYQEREfUpjIMfVMiIiI3ylM5Fjyxa6UJURExI8UJnIskNQzEVeaEBERH1KYyDH1TIiIiN8pTOSYaiZERMTvFCZyrPOkVQdWWVnZAX5GEREZjBQmckw9EyIi4ncH13SLB8pV56W96tDELW2//Xu3D339619n0qRJhEIhAObPn48xhueff569e/cSjUa55ZZbuPDCC3t9moULF3LTTTcxatQoli5dykUXXcTs2bP5+c9/TlNTE48++ihTp07liSee4JZbbiESiTBs2DDuu+8+Ro0aRUNDA9dccw3Lly8nFosxf/78tJ5XRET8Rz0Tg8gll1zC/fff3/79Aw88wBVXXMEjjzzCG2+8wYIFC7juuuvS7gF58803+fnPf87y5cu59957Wb16Na+99hpXXXUVt912GwCnnHIKr7zyCkuWLOGSSy7hRz/6EQDf//73OfPMM3n9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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": 19, "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": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "x_test / loss : 11.7020\n", "x_test / mae : 2.4886\n", "x_test / mse : 11.7020\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": 21, "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": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Prédiction : 16.20 K$ Reality : 21.70 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", "That's all folks !" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.5" } }, "nbformat": 4, "nbformat_minor": 4 }