Newer
Older
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img width=\"800px\" src=\"../fidle/img/00-Fidle-header-01.svg\"></img>\n",
"\n",
"# <!-- TITLE --> [BHP1] - Regression with a Dense Network (DNN)\n",
"<!-- DESC --> A Simple regression with a Dense Neural Network (DNN) - BHPD dataset\n",
"<!-- AUTHOR : Jean-Luc Parouty (CNRS/SIMaP) -->\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** \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 theses informations : \n",
" - CRIM: This is the per capita crime rate by town\n",
" - ZN: This is the proportion of residential land zoned for lots larger than 25,000 sq.ft\n",
" - INDUS: This is the proportion of non-retail business acres per town\n",
" - CHAS: This is the Charles River dummy variable (this is equal to 1 if tract bounds river; 0 otherwise)\n",
" - NOX: This is the nitric oxides concentration (parts per 10 million)\n",
" - RM: This is the average number of rooms per dwelling\n",
" - AGE: This is the proportion of owner-occupied units built prior to 1940\n",
" - DIS: This is the weighted distances to five Boston employment centers\n",
" - RAD: This is the index of accessibility to radial highways\n",
" - TAX: This is the full-value property-tax rate per 10,000 dollars\n",
" - PTRATIO: This is the pupil-teacher ratio by town\n",
" - B: This is calculated as 1000(Bk — 0.63)^2, where Bk is the proportion of people of African American descent by town\n",
" - LSTAT: This is the percentage lower status of the population\n",
" - MEDV: This is the median value of owner-occupied homes in 1000 dollars\n",
"\n",
" - Retrieve data\n",
" - Preparing the data\n",
" - Build a model\n",
" - Train the model\n",
" - Evaluate the result\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
]
},
{
"cell_type": "code",
{
"data": {
"text/html": [
"<style>\n",
"\n",
"div.warn { \n",
" background-color: #fcf2f2;\n",
" border-color: #dFb5b4;\n",
" border-left: 5px solid #dfb5b4;\n",
" padding: 0.5em;\n",
" font-weight: bold;\n",
" font-size: 1.1em;;\n",
" }\n",
"\n",
"\n",
"\n",
"div.nota { \n",
" background-color: #DAFFDE;\n",
" border-left: 5px solid #92CC99;\n",
" padding: 0.5em;\n",
" }\n",
"\n",
"div.todo:before { content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1My44OTEyIiBoZWlnaHQ9IjE0My4zOTAyIiB2aWV3Qm94PSIwIDAgNTMuODkxMiAxNDMuMzkwMiI+PHRpdGxlPjAwLUJvYi10b2RvPC90aXRsZT48cGF0aCBkPSJNMjMuNDU2OCwxMTQuMzAxNmExLjgwNjMsMS44MDYzLDAsMSwxLDEuODE1NywxLjgyNEExLjgyMDksMS44MjA5LDAsMCwxLDIzLjQ1NjgsMTE0LjMwMTZabS0xMC42NjEyLDEuODIyQTEuODI3MiwxLjgyNzIsMCwxLDAsMTAuOTgsMTE0LjMsMS44MiwxLjgyLDAsMCwwLDEyLjc5NTYsMTE2LjEyMzZabS03LjcwNyw0LjU4NzR2LTVzLjQ4NjMtOS4xMjIzLDguMDIxNS0xMS45Njc1YTE5LjIwODIsMTkuMjA4MiwwLDAsMSw2LjA0ODYtMS4yNDU0LDE5LjE3NzgsMTkuMTc3OCwwLDAsMSw2LjA0ODcsMS4yNDc1YzcuNTM1MSwyLjgzNDcsOC4wMTc0LDExLjk2NzQsOC4wMTc0LDExLjk2NzR2NS4wMjM0bC4wMDQyLDcuNjgydjIuNGMuMDE2Ny4xOTkyLjAzMzYuMzkyMS4wMzM2LjU4NzEsMCwuMjEzOC0uMDE2OC40MTA5LS4wMzM2LjYzMzJ2LjA1ODdoLS4wMDg0YTguMzcxOSw4LjM3MTksMCwwLDEtNy4zNzM4LDcuNjU0N3MtLjk5NTMsMy42MzgtNi42OTMzLDMuNjM4LTYuNjkzNC0zLjYzOC02LjY5MzQtMy42MzhhOC4zNyw4LjM3LDAsMCwxLTcuMzcxNi03LjY1NDdINS4wODQzdi0uMDU4N2MtLjAxODktLjIyLS4wMjk0LS40MTk0LS4wMjk0LS42MzMyLDAtLjE5MjkuMDE2Ny0uMzgzNy4wMjk0LS41ODcxdi0yLjRtMTguMDkzNy00LjA0YTEuMTU2NSwxLjE1NjUsMCwxLDAtMi4zMTI2LDAsMS4xNTY0LDEuMTU2NCwwLDEsMCwyLjMxMjYsMFptNC4wODM0LDBhMS4xNTk1LDEuMTU5NSwwLDEsMC0xLjE2MzYsMS4xN0ExLjE3NSwxLjE3NSwwLDAsMCwyNy4yNjE0LDEyNC4zNzc5Wk05LjM3MzksMTE0LjYzNWMwLDMuMTA5MywyLjQxMzIsMy4zMSwyLjQxMzIsMy4zMWExMzMuOTI0MywxMzMuOTI0MywwLDAsMCwxNC43MzQ4LDBzMi40MTExLS4xOTI5LDIuNDExMS0zLjMxYTguMDc3Myw4LjA3NzMsMCwwLDAtMi40MTExLTUuNTUxOWMtNC41LTMuNTAzMy05LjkxMjYtMy41MDMzLTE0Ljc0MTEsMEE4LjA4NTEsOC4wODUxLDAsMCwwLDkuMzczOSwxMTQuNjM1WiIgc3R5bGU9ImZpbGw6IzAxMDEwMSIvPjxjaXJjbGUgY3g9IjMzLjE0MzYiIGN5PSIxMjQuNTM0IiByPSIzLjgzNjMiIHN0eWxlPSJmaWxsOiMwMTAxMDEiLz48cmVjdCB4PSIzNS42NjU5IiB5PSIxMTIuOTYyNSIgd2lkdGg9IjIuMDc3IiBoZWlnaHQ9IjEwLjU0NTgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIxLjYgMjQxLjExMjEpIHJvdGF0ZSgtMTU1Ljc0NikiIHN0eWxlPSJmaWxsOiMwMTAxMDEiLz48Y2lyY2xlIGN4PSIzOC44NzA0IiBjeT0iMTEzLjQyNzkiIHI9IjIuNDA4NSIgc3R5bGU9ImZpbGw6IzAxMDEwMSIvPjxjaXJjbGUgY3g9IjUuMjI0OCIgY3k9IjEyNC41MzQiIHI9IjMuODM2MyIgc3R5bGU9ImZpbGw6IzAxMDEwMSIvPjxyZWN0IHg9IjEuNDE2NCIgeT0iMTI0LjYzMDEiIHdpZHRoPSIyLjA3NyIgaGVpZ2h0PSIxMC41NDU4IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0LjkwOTcgMjU5LjgwNikgcm90YXRlKC0xODApIiBzdHlsZT0iZmlsbDojMDEwMTAxIi8+PGNpcmNsZSBjeD0iMi40MDkxIiBjeT0iMTM3LjA5OTYiIHI9IjIuNDA4NSIgc3R5bGU9ImZpbGw6IzAxMDEwMSIvPjxwYXRoIGQ9Ik0xOC4wNTExLDEwMC4xMDY2aC0uMDE0NlYxMDIuNjFoMi4zdi0yLjQyNzlhMi40MjI5LDIuNDIyOSwwLDEsMC0yLjI4NTQtLjA3NTVaIiBzdHlsZT0iZmlsbDojMDEwMTAxIi8+PHBhdGggZD0iTTM5LjQyMTQsMjcuMjU4djEuMDVBMTEuOTQ1MiwxMS45NDUyLDAsMCwwLDQ0LjU5NTQsNS43OWEuMjQ0OS4yNDQ5LDAsMCwxLS4wMjM1LS40MjI3TDQ2Ljc1LDMuOTUxNWEuMzg5Mi4zODkyLDAsMCwxLC40MjYyLDAsMTQuODQ0MiwxNC44NDQyLDAsMCwxLTcuNzU0MywyNy4yNTkxdjEuMDY3YS40NS40NSwwLDAsMS0uNzA0Ny4zNzU4bC0zLjg0MTktMi41MWEuNDUuNDUsMCwwLDEsMC0uNzUxNmwzLjg0MTktMi41MWEuNDUuNDUsMCwwLDEsLjY5NDYuMzc1OFpNNDMuMjMsMi41ODkyLDM5LjM4NzguMDc5NGEuNDUuNDUsMCwwLDAtLjcwNDYuMzc1OHYxLjA2N2ExNC44NDQyLDE0Ljg0NDIsMCwwLDAtNy43NTQzLDI3LjI1OTEuMzg5LjM4OSwwLDAsMCwuNDI2MSwwbDIuMTc3Ny0xLjQxOTNhLjI0NS4yNDUsMCwwLDAtLjAyMzUtLjQyMjgsMTEuOTQ1MSwxMS45NDUxLDAsMCwxLDUuMTc0LTIyLjUxNDZ2MS4wNWEuNDUuNDUsMCwwLDAsLjcwNDYuMzc1OGwzLjg1NTMtMi41MWEuNDUuNDUsMCwwLDAsMC0uNzUxNlpNMzkuMDUyMywxNC4yNDU4YTIuMTIwNiwyLjEyMDYsMCwxLDAsMi4xMjA2LDIuMTIwNmgwQTIuMTI0LDIuMTI0LDAsMCwwLDM5LjA1MjMsMTQuMjQ1OFptNi4wNzMyLTQuNzc4MS44MjU0LjgyNTVhMS4wNTY4LDEuMDU2OCwwLDAsMSwuMTE3NSwxLjM0MjFsLS44MDIsMS4xNDQyYTcuMTAxOCw3LjEwMTgsMCwwLDEsLjcxMTQsMS43MTEybDEuMzc1Ny4yNDE2YTEuMDU2OSwxLjA1NjksMCwwLDEsLjg3NTcsMS4wNHYxLjE2NDNhMS4wNTY5LDEuMDU2OSwwLDAsMS0uODc1NywxLjA0bC0xLjM3MjQuMjQxNkE3LjExLDcuMTEsMCwwLDEsNDUuMjcsMTkuOTNsLjgwMTksMS4xNDQyYTEuMDU3LDEuMDU3LDAsMCwxLS4xMTc0LDEuMzQyMmwtLjgyODguODQ4OWExLjA1NywxLjA1NywwLDAsMS0xLjM0MjEuMTE3NGwtMS4xNDQyLS44MDE5YTcuMTMzOCw3LjEzMzgsMCwwLDEtMS43MTEzLjcxMTNsLS4yNDE2LDEuMzcyNGExLjA1NjgsMS4wNTY4LDAsMCwxLTEuMDQuODc1N0gzOC40Njg0YTEuMDU2OCwxLjA1NjgsMCwwLDEtMS4wNC0uODc1N2wtLjI0MTYtMS4zNzI0YTcuMTM1NSw3LjEzNTUsMCwwLDEtMS43MTEzLS43MTEzbC0xLjE0NDEuODAxOWExLjA1NzEsMS4wNTcxLDAsMCwxLTEuMzQyMi0uMTE3NGwtLjgzNTUtLjgyNTVhMS4wNTcsMS4wNTcsMCwwLDEtLjExNzQtMS4zNDIxbC44MDE5LTEuMTQ0MmE3LjEyMSw3LjEyMSwwLDAsMS0uNzExMy0xLjcxMTJsLTEuMzcyNC0uMjQxNmExLjA1NjksMS4wNTY5LDAsMCwxLS44NzU3LTEuMDRWMTUuNzgyNmExLjA1NjksMS4wNTY5LDAsMCwxLC44NzU3LTEuMDRsMS4zNzU3LS4yNDE2YTcuMTEsNy4xMSwwLDAsMSwuNzExNC0xLjcxMTJsLS44MDItMS4xNDQyYTEuMDU3LDEuMDU3LDAsMCwxLC4xMTc1LTEuMzQyMmwuODI1NC0uODI1NEExLjA1NjgsMS4wNTY4LDAsMCwxLDM0LjMyNDUsOS4zNmwxLjE0NDIuODAxOUE3LjEzNTUsNy4xMzU1LDAsMCwxLDM3LjE4LDkuNDUxbC4yNDE2LTEuMzcyNGExLjA1NjgsMS4wNTY4LDAsMCwxLDEuMDQtLjg3NTdoMS4xNjc3YTEuMDU2OSwxLjA1NjksMCwwLDEsMS4wNC44NzU3bC4yNDE2LDEuMzcyNGE3LjEyNSw3LjEyNSwwLDAsMSwxLjcxMTIuNzExM0w0My43NjY2LDkuMzZBMS4wNTY5LDEuMDU2OSwwLDAsMSw0NS4xMjU1LDkuNDY3N1ptLTIuMDMsNi44OTg3QTQuMDQzMyw0LjA0MzMsMCwxLDAsMzkuMDUyMywyMC40MWgwQTQuMDQ2NSw0LjA0NjUsMCwwLDAsNDMuMDk1NSwxNi4zNjY0WiIgc3R5bGU9ImZpbGw6I2UxMjIyOSIvPjxwb2x5Z29uIHBvaW50cz0iMzkuNDEzIDM0Ljc1NyAzOS41MzcgMzQuNzU3IDM5LjY3NSAzNC43NTcgMzkuNjc1IDEwOS41MSAzOS41MzcgMTA5LjUxIDM5LjQxMyAxMDkuNTEgMzkuNDEzIDM0Ljc1NyAzOS40MTMgMzQuNzU3IiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojOTk5O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjMwODg1NDQ1MDU2MDE2MThweDtmaWxsLXJ1bGU6ZXZlbm9kZCIvPjwvc3ZnPg==);\n",
" float:left;\n",
" margin-right:20px;\n",
" margin-top:-20px;\n",
" margin-bottom:20px;\n",
"}\n",
"div.todo{\n",
" font-weight: bold;\n",
" font-size: 1.1em;\n",
" margin-top:40px;\n",
"}\n",
"div.todo ul{\n",
" margin: 0.2em;\n",
"}\n",
"div.todo li{\n",
" margin-left:60px;\n",
" margin-top:0;\n",
" margin-bottom:0;\n",
"}\n",
"\n",
"\n",
"</style>\n",
"\n"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"FIDLE 2020 - Practical Work Module\n",
"TensorFlow version : 2.2.0\n",
"Keras version : 2.3.0-tf\n",
"Current place : Fidle at IDRIS\n",
"Datasets dir : /gpfswork/rech/mlh/commun/datasets\n",
"Update keras cache : Done\n"
"source": [
"import tensorflow as tf\n",
"from tensorflow import keras\n",
"\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"sys.path.append('..')\n",
"import fidle.pwk as ooo\n",
"\n",
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Boston housing is a famous historic dataset, so we can get it directly from [Keras datasets](https://www.tensorflow.org/api_docs/python/tf/keras/datasets) "
]
},
{
"cell_type": "code",
"execution_count": 2,
"# (x_train, y_train), (x_test, y_test) = keras.datasets.boston_housing.load_data(test_split=0.2, seed=113)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2.2 - Option 2 : From a csv file\n",
"More fun !"
]
},
{
"cell_type": "code",
"execution_count": 3,
"outputs": [
{
"data": {
"text/html": [
"<style type=\"text/css\" >\n",
"</style><table id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63b\" ><caption>Few lines of the dataset :</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> <th class=\"col_heading level0 col13\" >medv</th> </tr></thead><tbody>\n",
" <th id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63blevel0_row0\" class=\"row_heading level0 row0\" >0</th>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow0_col0\" class=\"data row0 col0\" >0.01</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow0_col1\" class=\"data row0 col1\" >18.00</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow0_col2\" class=\"data row0 col2\" >2.31</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow0_col3\" class=\"data row0 col3\" >0.00</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow0_col4\" class=\"data row0 col4\" >0.54</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow0_col5\" class=\"data row0 col5\" >6.58</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow0_col6\" class=\"data row0 col6\" >65.20</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow0_col7\" class=\"data row0 col7\" >4.09</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow0_col8\" class=\"data row0 col8\" >1.00</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow0_col9\" class=\"data row0 col9\" >296.00</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow0_col10\" class=\"data row0 col10\" >15.30</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow0_col11\" class=\"data row0 col11\" >396.90</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow0_col12\" class=\"data row0 col12\" >4.98</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow0_col13\" class=\"data row0 col13\" >24.00</td>\n",
" <th id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63blevel0_row1\" class=\"row_heading level0 row1\" >1</th>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow1_col0\" class=\"data row1 col0\" >0.03</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow1_col1\" class=\"data row1 col1\" >0.00</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow1_col2\" class=\"data row1 col2\" >7.07</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow1_col3\" class=\"data row1 col3\" >0.00</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow1_col4\" class=\"data row1 col4\" >0.47</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow1_col5\" class=\"data row1 col5\" >6.42</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow1_col6\" class=\"data row1 col6\" >78.90</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow1_col7\" class=\"data row1 col7\" >4.97</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow1_col8\" class=\"data row1 col8\" >2.00</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow1_col9\" class=\"data row1 col9\" >242.00</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow1_col10\" class=\"data row1 col10\" >17.80</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow1_col11\" class=\"data row1 col11\" >396.90</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow1_col12\" class=\"data row1 col12\" >9.14</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow1_col13\" class=\"data row1 col13\" >21.60</td>\n",
" <th id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63blevel0_row2\" class=\"row_heading level0 row2\" >2</th>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow2_col0\" class=\"data row2 col0\" >0.03</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow2_col1\" class=\"data row2 col1\" >0.00</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow2_col2\" class=\"data row2 col2\" >7.07</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow2_col3\" class=\"data row2 col3\" >0.00</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow2_col4\" class=\"data row2 col4\" >0.47</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow2_col5\" class=\"data row2 col5\" >7.18</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow2_col6\" class=\"data row2 col6\" >61.10</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow2_col7\" class=\"data row2 col7\" >4.97</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow2_col8\" class=\"data row2 col8\" >2.00</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow2_col9\" class=\"data row2 col9\" >242.00</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow2_col10\" class=\"data row2 col10\" >17.80</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow2_col11\" class=\"data row2 col11\" >392.83</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow2_col12\" class=\"data row2 col12\" >4.03</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow2_col13\" class=\"data row2 col13\" >34.70</td>\n",
" <th id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63blevel0_row3\" class=\"row_heading level0 row3\" >3</th>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow3_col0\" class=\"data row3 col0\" >0.03</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow3_col1\" class=\"data row3 col1\" >0.00</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow3_col2\" class=\"data row3 col2\" >2.18</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow3_col3\" class=\"data row3 col3\" >0.00</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow3_col4\" class=\"data row3 col4\" >0.46</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow3_col5\" class=\"data row3 col5\" >7.00</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow3_col6\" class=\"data row3 col6\" >45.80</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow3_col7\" class=\"data row3 col7\" >6.06</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow3_col8\" class=\"data row3 col8\" >3.00</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow3_col9\" class=\"data row3 col9\" >222.00</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow3_col10\" class=\"data row3 col10\" >18.70</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow3_col11\" class=\"data row3 col11\" >394.63</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow3_col12\" class=\"data row3 col12\" >2.94</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow3_col13\" class=\"data row3 col13\" >33.40</td>\n",
" <th id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63blevel0_row4\" class=\"row_heading level0 row4\" >4</th>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow4_col0\" class=\"data row4 col0\" >0.07</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow4_col1\" class=\"data row4 col1\" >0.00</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow4_col2\" class=\"data row4 col2\" >2.18</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow4_col3\" class=\"data row4 col3\" >0.00</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow4_col4\" class=\"data row4 col4\" >0.46</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow4_col5\" class=\"data row4 col5\" >7.15</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow4_col6\" class=\"data row4 col6\" >54.20</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow4_col7\" class=\"data row4 col7\" >6.06</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow4_col8\" class=\"data row4 col8\" >3.00</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow4_col9\" class=\"data row4 col9\" >222.00</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow4_col10\" class=\"data row4 col10\" >18.70</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow4_col11\" class=\"data row4 col11\" >396.90</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow4_col12\" class=\"data row4 col12\" >5.33</td>\n",
" <td id=\"T_0738d7b2_f3fb_11ea_bd64_0cc47af5c63brow4_col13\" class=\"data row4 col13\" >36.20</td>\n",
" </tr>\n",
" </tbody></table>"
],
"text/plain": [
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"data = pd.read_csv(f'{datasets_dir}/BHPD/origine/BostonHousing.csv', header=0)\n",
"display(data.head(5).style.format(\"{0:.2f}\").set_caption(\"Few lines of the dataset :\"))\n",
"print('Missing Data : ',data.isna().sum().sum(), ' Shape is : ', data.shape)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Step 3 - Preparing the data\n",
"### 3.1 - Split data\n",
"We will use 70% of the data for training and 30% for validation. \n",
"The dataset is **shuffled** and shared between **learning** and **testing**. \n",
"x will be input data and y the expected output"
]
},
{
"cell_type": "code",
"execution_count": 4,
"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"
]
}
],
"# ---- Suffle and 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": [
"**Note :** \n",
" - All input data must be normalized, train and test. \n",
" - To do this we will **subtract the mean** and **divide by the standard deviation**. \n",
" - But test data should not be used in any way, even for normalization. \n",
" - The mean and the standard deviation will therefore only be calculated with the train data."
]
},
{
"cell_type": "code",
"execution_count": 5,
"outputs": [
{
"data": {
"text/html": [
"<style type=\"text/css\" >\n",
"</style><table id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63b\" ><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",
" <th id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63blevel0_row0\" class=\"row_heading level0 row0\" >count</th>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow0_col0\" class=\"data row0 col0\" >354.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow0_col1\" class=\"data row0 col1\" >354.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow0_col2\" class=\"data row0 col2\" >354.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow0_col3\" class=\"data row0 col3\" >354.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow0_col4\" class=\"data row0 col4\" >354.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow0_col5\" class=\"data row0 col5\" >354.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow0_col6\" class=\"data row0 col6\" >354.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow0_col7\" class=\"data row0 col7\" >354.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow0_col8\" class=\"data row0 col8\" >354.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow0_col9\" class=\"data row0 col9\" >354.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow0_col10\" class=\"data row0 col10\" >354.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow0_col11\" class=\"data row0 col11\" >354.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow0_col12\" class=\"data row0 col12\" >354.00</td>\n",
" <th id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63blevel0_row1\" class=\"row_heading level0 row1\" >mean</th>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow1_col0\" class=\"data row1 col0\" >3.46</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow1_col1\" class=\"data row1 col1\" >11.04</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow1_col2\" class=\"data row1 col2\" >11.44</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow1_col3\" class=\"data row1 col3\" >0.08</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow1_col4\" class=\"data row1 col4\" >0.56</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow1_col5\" class=\"data row1 col5\" >6.27</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow1_col6\" class=\"data row1 col6\" >68.25</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow1_col7\" class=\"data row1 col7\" >3.81</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow1_col8\" class=\"data row1 col8\" >9.74</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow1_col9\" class=\"data row1 col9\" >413.56</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow1_col10\" class=\"data row1 col10\" >18.49</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow1_col11\" class=\"data row1 col11\" >358.39</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow1_col12\" class=\"data row1 col12\" >12.71</td>\n",
" <th id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63blevel0_row2\" class=\"row_heading level0 row2\" >std</th>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow2_col0\" class=\"data row2 col0\" >7.75</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow2_col1\" class=\"data row2 col1\" >22.76</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow2_col2\" class=\"data row2 col2\" >6.87</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow2_col3\" class=\"data row2 col3\" >0.27</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow2_col4\" class=\"data row2 col4\" >0.12</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow2_col5\" class=\"data row2 col5\" >0.68</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow2_col6\" class=\"data row2 col6\" >28.72</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow2_col7\" class=\"data row2 col7\" >2.08</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow2_col8\" class=\"data row2 col8\" >8.75</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow2_col9\" class=\"data row2 col9\" >167.90</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow2_col10\" class=\"data row2 col10\" >2.09</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow2_col11\" class=\"data row2 col11\" >87.89</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow2_col12\" class=\"data row2 col12\" >6.95</td>\n",
" <th id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63blevel0_row3\" class=\"row_heading level0 row3\" >min</th>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow3_col0\" class=\"data row3 col0\" >0.01</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow3_col1\" class=\"data row3 col1\" >0.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow3_col2\" class=\"data row3 col2\" >0.46</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow3_col3\" class=\"data row3 col3\" >0.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow3_col4\" class=\"data row3 col4\" >0.39</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow3_col5\" class=\"data row3 col5\" >3.56</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow3_col6\" class=\"data row3 col6\" >2.90</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow3_col7\" class=\"data row3 col7\" >1.13</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow3_col8\" class=\"data row3 col8\" >1.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow3_col9\" class=\"data row3 col9\" >187.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow3_col10\" class=\"data row3 col10\" >12.60</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow3_col11\" class=\"data row3 col11\" >0.32</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow3_col12\" class=\"data row3 col12\" >1.73</td>\n",
" <th id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63blevel0_row4\" class=\"row_heading level0 row4\" >25%</th>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow4_col0\" class=\"data row4 col0\" >0.08</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow4_col1\" class=\"data row4 col1\" >0.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow4_col2\" class=\"data row4 col2\" >5.22</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow4_col3\" class=\"data row4 col3\" >0.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow4_col4\" class=\"data row4 col4\" >0.45</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow4_col5\" class=\"data row4 col5\" >5.88</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow4_col6\" class=\"data row4 col6\" >42.23</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow4_col7\" class=\"data row4 col7\" >2.11</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow4_col8\" class=\"data row4 col8\" >4.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow4_col9\" class=\"data row4 col9\" >284.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow4_col10\" class=\"data row4 col10\" >17.07</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow4_col11\" class=\"data row4 col11\" >376.25</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow4_col12\" class=\"data row4 col12\" >7.04</td>\n",
" <th id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63blevel0_row5\" class=\"row_heading level0 row5\" >50%</th>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow5_col0\" class=\"data row5 col0\" >0.25</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow5_col1\" class=\"data row5 col1\" >0.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow5_col2\" class=\"data row5 col2\" >9.90</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow5_col3\" class=\"data row5 col3\" >0.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow5_col4\" class=\"data row5 col4\" >0.54</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow5_col5\" class=\"data row5 col5\" >6.21</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow5_col6\" class=\"data row5 col6\" >77.15</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow5_col7\" class=\"data row5 col7\" >3.21</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow5_col8\" class=\"data row5 col8\" >5.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow5_col9\" class=\"data row5 col9\" >351.50</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow5_col10\" class=\"data row5 col10\" >19.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow5_col11\" class=\"data row5 col11\" >391.06</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow5_col12\" class=\"data row5 col12\" >11.70</td>\n",
" <th id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63blevel0_row6\" class=\"row_heading level0 row6\" >75%</th>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow6_col0\" class=\"data row6 col0\" >3.82</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow6_col1\" class=\"data row6 col1\" >12.50</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow6_col2\" class=\"data row6 col2\" >18.10</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow6_col3\" class=\"data row6 col3\" >0.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow6_col4\" class=\"data row6 col4\" >0.62</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow6_col5\" class=\"data row6 col5\" >6.63</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow6_col6\" class=\"data row6 col6\" >93.97</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow6_col7\" class=\"data row6 col7\" >5.29</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow6_col8\" class=\"data row6 col8\" >24.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow6_col9\" class=\"data row6 col9\" >666.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow6_col10\" class=\"data row6 col10\" >20.20</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow6_col11\" class=\"data row6 col11\" >395.76</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow6_col12\" class=\"data row6 col12\" >17.14</td>\n",
" <th id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63blevel0_row7\" class=\"row_heading level0 row7\" >max</th>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow7_col0\" class=\"data row7 col0\" >73.53</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow7_col1\" class=\"data row7 col1\" >100.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow7_col2\" class=\"data row7 col2\" >27.74</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow7_col3\" class=\"data row7 col3\" >1.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow7_col4\" class=\"data row7 col4\" >0.87</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow7_col5\" class=\"data row7 col5\" >8.78</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow7_col6\" class=\"data row7 col6\" >100.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow7_col7\" class=\"data row7 col7\" >12.13</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow7_col8\" class=\"data row7 col8\" >24.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow7_col9\" class=\"data row7 col9\" >711.00</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow7_col10\" class=\"data row7 col10\" >21.20</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow7_col11\" class=\"data row7 col11\" >396.90</td>\n",
" <td id=\"T_0744ba78_f3fb_11ea_bd64_0cc47af5c63brow7_col12\" class=\"data row7 col12\" >37.97</td>\n",
" </tr>\n",
" </tbody></table>"
],
"text/plain": [
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<style type=\"text/css\" >\n",
"</style><table id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63b\" ><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",
" <th id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63blevel0_row0\" class=\"row_heading level0 row0\" >count</th>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow0_col0\" class=\"data row0 col0\" >354.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow0_col1\" class=\"data row0 col1\" >354.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow0_col2\" class=\"data row0 col2\" >354.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow0_col3\" class=\"data row0 col3\" >354.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow0_col4\" class=\"data row0 col4\" >354.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow0_col5\" class=\"data row0 col5\" >354.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow0_col6\" class=\"data row0 col6\" >354.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow0_col7\" class=\"data row0 col7\" >354.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow0_col8\" class=\"data row0 col8\" >354.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow0_col9\" class=\"data row0 col9\" >354.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow0_col10\" class=\"data row0 col10\" >354.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow0_col11\" class=\"data row0 col11\" >354.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow0_col12\" class=\"data row0 col12\" >354.00</td>\n",
" <th id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63blevel0_row1\" class=\"row_heading level0 row1\" >mean</th>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow1_col0\" class=\"data row1 col0\" >0.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow1_col1\" class=\"data row1 col1\" >0.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow1_col2\" class=\"data row1 col2\" >0.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow1_col3\" class=\"data row1 col3\" >0.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow1_col4\" class=\"data row1 col4\" >-0.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow1_col5\" class=\"data row1 col5\" >-0.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow1_col6\" class=\"data row1 col6\" >0.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow1_col7\" class=\"data row1 col7\" >-0.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow1_col8\" class=\"data row1 col8\" >0.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow1_col9\" class=\"data row1 col9\" >0.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow1_col10\" class=\"data row1 col10\" >0.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow1_col11\" class=\"data row1 col11\" >0.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow1_col12\" class=\"data row1 col12\" >-0.00</td>\n",
" <th id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63blevel0_row2\" class=\"row_heading level0 row2\" >std</th>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow2_col0\" class=\"data row2 col0\" >1.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow2_col1\" class=\"data row2 col1\" >1.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow2_col2\" class=\"data row2 col2\" >1.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow2_col3\" class=\"data row2 col3\" >1.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow2_col4\" class=\"data row2 col4\" >1.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow2_col5\" class=\"data row2 col5\" >1.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow2_col6\" class=\"data row2 col6\" >1.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow2_col7\" class=\"data row2 col7\" >1.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow2_col8\" class=\"data row2 col8\" >1.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow2_col9\" class=\"data row2 col9\" >1.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow2_col10\" class=\"data row2 col10\" >1.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow2_col11\" class=\"data row2 col11\" >1.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow2_col12\" class=\"data row2 col12\" >1.00</td>\n",
" <th id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63blevel0_row3\" class=\"row_heading level0 row3\" >min</th>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow3_col0\" class=\"data row3 col0\" >-0.45</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow3_col1\" class=\"data row3 col1\" >-0.49</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow3_col2\" class=\"data row3 col2\" >-1.60</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow3_col3\" class=\"data row3 col3\" >-0.29</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow3_col4\" class=\"data row3 col4\" >-1.46</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow3_col5\" class=\"data row3 col5\" >-4.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow3_col6\" class=\"data row3 col6\" >-2.28</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow3_col7\" class=\"data row3 col7\" >-1.29</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow3_col8\" class=\"data row3 col8\" >-1.00</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow3_col9\" class=\"data row3 col9\" >-1.35</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow3_col10\" class=\"data row3 col10\" >-2.82</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow3_col11\" class=\"data row3 col11\" >-4.07</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow3_col12\" class=\"data row3 col12\" >-1.58</td>\n",
" <th id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63blevel0_row4\" class=\"row_heading level0 row4\" >25%</th>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow4_col0\" class=\"data row4 col0\" >-0.44</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow4_col1\" class=\"data row4 col1\" >-0.49</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow4_col2\" class=\"data row4 col2\" >-0.91</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow4_col3\" class=\"data row4 col3\" >-0.29</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow4_col4\" class=\"data row4 col4\" >-0.92</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow4_col5\" class=\"data row4 col5\" >-0.58</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow4_col6\" class=\"data row4 col6\" >-0.91</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow4_col7\" class=\"data row4 col7\" >-0.82</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow4_col8\" class=\"data row4 col8\" >-0.66</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow4_col9\" class=\"data row4 col9\" >-0.77</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow4_col10\" class=\"data row4 col10\" >-0.68</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow4_col11\" class=\"data row4 col11\" >0.20</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow4_col12\" class=\"data row4 col12\" >-0.82</td>\n",
" <th id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63blevel0_row5\" class=\"row_heading level0 row5\" >50%</th>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow5_col0\" class=\"data row5 col0\" >-0.41</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow5_col1\" class=\"data row5 col1\" >-0.49</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow5_col2\" class=\"data row5 col2\" >-0.22</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow5_col3\" class=\"data row5 col3\" >-0.29</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow5_col4\" class=\"data row5 col4\" >-0.16</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow5_col5\" class=\"data row5 col5\" >-0.09</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow5_col6\" class=\"data row5 col6\" >0.31</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow5_col7\" class=\"data row5 col7\" >-0.29</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow5_col8\" class=\"data row5 col8\" >-0.54</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow5_col9\" class=\"data row5 col9\" >-0.37</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow5_col10\" class=\"data row5 col10\" >0.25</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow5_col11\" class=\"data row5 col11\" >0.37</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow5_col12\" class=\"data row5 col12\" >-0.15</td>\n",
" <th id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63blevel0_row6\" class=\"row_heading level0 row6\" >75%</th>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow6_col0\" class=\"data row6 col0\" >0.05</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow6_col1\" class=\"data row6 col1\" >0.06</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow6_col2\" class=\"data row6 col2\" >0.97</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow6_col3\" class=\"data row6 col3\" >-0.29</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow6_col4\" class=\"data row6 col4\" >0.57</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow6_col5\" class=\"data row6 col5\" >0.52</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow6_col6\" class=\"data row6 col6\" >0.90</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow6_col7\" class=\"data row6 col7\" >0.71</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow6_col8\" class=\"data row6 col8\" >1.63</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow6_col9\" class=\"data row6 col9\" >1.50</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow6_col10\" class=\"data row6 col10\" >0.82</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow6_col11\" class=\"data row6 col11\" >0.43</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow6_col12\" class=\"data row6 col12\" >0.64</td>\n",
" <th id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63blevel0_row7\" class=\"row_heading level0 row7\" >max</th>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow7_col0\" class=\"data row7 col0\" >9.04</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow7_col1\" class=\"data row7 col1\" >3.91</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow7_col2\" class=\"data row7 col2\" >2.37</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow7_col3\" class=\"data row7 col3\" >3.48</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow7_col4\" class=\"data row7 col4\" >2.67</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow7_col5\" class=\"data row7 col5\" >3.69</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow7_col6\" class=\"data row7 col6\" >1.11</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow7_col7\" class=\"data row7 col7\" >3.99</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow7_col8\" class=\"data row7 col8\" >1.63</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow7_col9\" class=\"data row7 col9\" >1.77</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow7_col10\" class=\"data row7 col10\" >1.30</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow7_col11\" class=\"data row7 col11\" >0.44</td>\n",
" <td id=\"T_074d8df6_f3fb_11ea_bd64_0cc47af5c63brow7_col12\" class=\"data row7 col12\" >3.63</td>\n",
" </tr>\n",
" </tbody></table>"
],
"text/plain": [
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<style type=\"text/css\" >\n",
"</style><table id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63b\" ><caption>Few lines of the dataset :</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",
" <th id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63blevel0_row0\" class=\"row_heading level0 row0\" >433</th>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow0_col0\" class=\"data row0 col0\" >0.27</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow0_col1\" class=\"data row0 col1\" >-0.49</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow0_col2\" class=\"data row0 col2\" >0.97</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow0_col3\" class=\"data row0 col3\" >-0.29</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow0_col4\" class=\"data row0 col4\" >1.33</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow0_col5\" class=\"data row0 col5\" >0.24</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow0_col6\" class=\"data row0 col6\" >0.68</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow0_col7\" class=\"data row0 col7\" >-0.72</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow0_col8\" class=\"data row0 col8\" >1.63</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow0_col9\" class=\"data row0 col9\" >1.50</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow0_col10\" class=\"data row0 col10\" >0.82</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow0_col11\" class=\"data row0 col11\" >-2.94</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow0_col12\" class=\"data row0 col12\" >0.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63blevel0_row1\" class=\"row_heading level0 row1\" >200</th>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow1_col0\" class=\"data row1 col0\" >-0.44</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow1_col1\" class=\"data row1 col1\" >3.69</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow1_col2\" class=\"data row1 col2\" >-1.45</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow1_col3\" class=\"data row1 col3\" >-0.29</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow1_col4\" class=\"data row1 col4\" >-1.31</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow1_col5\" class=\"data row1 col5\" >1.27</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow1_col6\" class=\"data row1 col6\" >-1.89</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow1_col7\" class=\"data row1 col7\" >1.84</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow1_col8\" class=\"data row1 col8\" >-0.77</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow1_col9\" class=\"data row1 col9\" >-0.07</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow1_col10\" class=\"data row1 col10\" >-0.71</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow1_col11\" class=\"data row1 col11\" >0.29</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow1_col12\" class=\"data row1 col12\" >-1.19</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63blevel0_row2\" class=\"row_heading level0 row2\" >471</th>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow2_col0\" class=\"data row2 col0\" >0.07</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow2_col1\" class=\"data row2 col1\" >-0.49</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow2_col2\" class=\"data row2 col2\" >0.97</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow2_col3\" class=\"data row2 col3\" >-0.29</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow2_col4\" class=\"data row2 col4\" >-0.21</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow2_col5\" class=\"data row2 col5\" >-0.07</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow2_col6\" class=\"data row2 col6\" >0.78</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow2_col7\" class=\"data row2 col7\" >-0.34</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow2_col8\" class=\"data row2 col8\" >1.63</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow2_col9\" class=\"data row2 col9\" >1.50</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow2_col10\" class=\"data row2 col10\" >0.82</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow2_col11\" class=\"data row2 col11\" >0.42</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow2_col12\" class=\"data row2 col12\" >0.02</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63blevel0_row3\" class=\"row_heading level0 row3\" >344</th>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow3_col0\" class=\"data row3 col0\" >-0.44</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow3_col1\" class=\"data row3 col1\" >1.93</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow3_col2\" class=\"data row3 col2\" >-1.11</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow3_col3\" class=\"data row3 col3\" >-0.29</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow3_col4\" class=\"data row3 col4\" >-0.62</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow3_col5\" class=\"data row3 col5\" >0.88</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow3_col6\" class=\"data row3 col6\" >-1.40</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow3_col7\" class=\"data row3 col7\" >1.27</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow3_col8\" class=\"data row3 col8\" >-0.54</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow3_col9\" class=\"data row3 col9\" >-0.26</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow3_col10\" class=\"data row3 col10\" >-0.43</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow3_col11\" class=\"data row3 col11\" >0.34</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow3_col12\" class=\"data row3 col12\" >-1.17</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63blevel0_row4\" class=\"row_heading level0 row4\" >374</th>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow4_col0\" class=\"data row4 col0\" >1.94</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow4_col1\" class=\"data row4 col1\" >-0.49</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow4_col2\" class=\"data row4 col2\" >0.97</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow4_col3\" class=\"data row4 col3\" >-0.29</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow4_col4\" class=\"data row4 col4\" >0.95</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow4_col5\" class=\"data row4 col5\" >-3.15</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow4_col6\" class=\"data row4 col6\" >1.11</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow4_col7\" class=\"data row4 col7\" >-1.28</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow4_col8\" class=\"data row4 col8\" >1.63</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow4_col9\" class=\"data row4 col9\" >1.50</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow4_col10\" class=\"data row4 col10\" >0.82</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow4_col11\" class=\"data row4 col11\" >0.44</td>\n",
" <td id=\"T_074e709a_f3fb_11ea_bd64_0cc47af5c63brow4_col12\" class=\"data row4 col12\" >3.63</td>\n",
" </tr>\n",
" </tbody></table>"
],
"text/plain": [
]
},
"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",
"display(x_train.head(5).style.format(\"{0:.2f}\").set_caption(\"Few lines of the dataset :\"))\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": [
"About informations about : \n",
" - [Optimizer](https://www.tensorflow.org/api_docs/python/tf/keras/optimizers)\n",
" - [Activation](https://www.tensorflow.org/api_docs/python/tf/keras/activations)\n",
" - [Loss](https://www.tensorflow.org/api_docs/python/tf/keras/losses)\n",
" - [Metrics](https://www.tensorflow.org/api_docs/python/tf/keras/metrics)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
" def get_model_v1(shape):\n",
" \n",
" model = keras.models.Sequential()\n",
" model.add(keras.layers.Input(shape, name=\"InputLayer\"))\n",
" model.add(keras.layers.Dense(64, activation='relu', name='Dense_n1'))\n",
" model.add(keras.layers.Dense(64, activation='relu', name='Dense_n2'))\n",
" model.add(keras.layers.Dense(1, name='Output'))\n",
" \n",
" model.compile(optimizer = 'rmsprop',\n",
" loss = 'mse',\n",
" metrics = ['mae', 'mse'] )\n",
" return model"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Step 5 - Train the model\n",
"### 5.1 - Get it"
]
},
{
"cell_type": "code",
"execution_count": 7,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Model: \"sequential\"\n",
"_________________________________________________________________\n",
"Layer (type) Output Shape Param # \n",
"=================================================================\n",
"Dense_n1 (Dense) (None, 64) 896 \n",
"_________________________________________________________________\n",
"Dense_n2 (Dense) (None, 64) 4160 \n",
"_________________________________________________________________\n",
"Output (Dense) (None, 1) 65 \n",
"=================================================================\n",
"Total params: 5,121\n",
"Trainable params: 5,121\n",
"Non-trainable params: 0\n",
"_________________________________________________________________\n",
"Failed to import pydot. You must install pydot and graphviz for `pydotprint` to work.\n"
]
},
{
"data": {
"text/plain": [
"source": [
"model=get_model_v1( (13,) )\n",
"\n",
"\n",
"img=keras.utils.plot_model( model, to_file='./run/model.png', show_shapes=True, show_layer_names=True, dpi=96)\n",
"display(img)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
]
},
{
"cell_type": "code",
"execution_count": 8,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/100\n",
"36/36 [==============================] - 0s 9ms/step - loss: 446.6037 - mae: 19.2578 - mse: 446.6037 - val_loss: 386.7883 - val_mae: 17.0661 - val_mse: 386.7883\n",
"36/36 [==============================] - 0s 3ms/step - loss: 218.0804 - mae: 12.4885 - mse: 218.0804 - val_loss: 154.0005 - val_mae: 9.9977 - val_mse: 154.0005\n",
"36/36 [==============================] - 0s 3ms/step - loss: 77.5444 - mae: 6.8722 - mse: 77.5444 - val_loss: 67.8402 - val_mae: 6.1398 - val_mse: 67.8402\n",
"36/36 [==============================] - 0s 3ms/step - loss: 39.4528 - mae: 4.8223 - mse: 39.4528 - val_loss: 42.8524 - val_mae: 4.5159 - val_mse: 42.8524\n",
"36/36 [==============================] - 0s 3ms/step - loss: 24.7109 - mae: 3.6920 - mse: 24.7109 - val_loss: 33.6560 - val_mae: 3.9751 - val_mse: 33.6560\n",
"36/36 [==============================] - 0s 3ms/step - loss: 20.0575 - mae: 3.2955 - mse: 20.0575 - val_loss: 28.1081 - val_mae: 3.4396 - val_mse: 28.1081\n",
"36/36 [==============================] - 0s 3ms/step - loss: 17.5427 - mae: 3.0599 - mse: 17.5427 - val_loss: 25.3431 - val_mae: 3.3389 - val_mse: 25.3431\n",
"36/36 [==============================] - 0s 3ms/step - loss: 15.4941 - mae: 2.8394 - mse: 15.4941 - val_loss: 22.9326 - val_mae: 3.1904 - val_mse: 22.9326\n",
"36/36 [==============================] - 0s 3ms/step - loss: 14.3105 - mae: 2.6853 - mse: 14.3105 - val_loss: 22.8496 - val_mae: 3.2345 - val_mse: 22.8496\n",
"36/36 [==============================] - 0s 3ms/step - loss: 13.1828 - mae: 2.5744 - mse: 13.1828 - val_loss: 20.5914 - val_mae: 3.0849 - val_mse: 20.5914\n",
"36/36 [==============================] - 0s 3ms/step - loss: 12.5782 - mae: 2.4991 - mse: 12.5782 - val_loss: 19.7353 - val_mae: 3.0247 - val_mse: 19.7353\n",
"36/36 [==============================] - 0s 3ms/step - loss: 12.1698 - mae: 2.4564 - mse: 12.1698 - val_loss: 18.8873 - val_mae: 2.9056 - val_mse: 18.8873\n",
"36/36 [==============================] - 0s 3ms/step - loss: 11.7293 - mae: 2.3903 - mse: 11.7293 - val_loss: 19.1095 - val_mae: 2.8887 - val_mse: 19.1095\n",
"36/36 [==============================] - 0s 3ms/step - loss: 11.3441 - mae: 2.3263 - mse: 11.3441 - val_loss: 18.5024 - val_mae: 2.8737 - val_mse: 18.5024\n",
"36/36 [==============================] - 0s 3ms/step - loss: 10.8598 - mae: 2.2824 - mse: 10.8598 - val_loss: 19.2043 - val_mae: 2.9070 - val_mse: 19.2043\n",
"36/36 [==============================] - 0s 3ms/step - loss: 10.5605 - mae: 2.2494 - mse: 10.5605 - val_loss: 17.8935 - val_mae: 2.8521 - val_mse: 17.8935\n",
"36/36 [==============================] - 0s 3ms/step - loss: 10.4829 - mae: 2.2239 - mse: 10.4829 - val_loss: 18.2009 - val_mae: 2.9156 - val_mse: 18.2009\n",
"36/36 [==============================] - 0s 3ms/step - loss: 10.0201 - mae: 2.1768 - mse: 10.0201 - val_loss: 18.8540 - val_mae: 2.9471 - val_mse: 18.8540\n",
"36/36 [==============================] - 0s 3ms/step - loss: 9.8773 - mae: 2.1541 - mse: 9.8773 - val_loss: 17.9174 - val_mae: 2.9169 - val_mse: 17.9174\n",
"36/36 [==============================] - 0s 3ms/step - loss: 9.7499 - mae: 2.1822 - mse: 9.7499 - val_loss: 17.6539 - val_mae: 2.8095 - val_mse: 17.6539\n",
"36/36 [==============================] - 0s 3ms/step - loss: 9.4263 - mae: 2.1179 - mse: 9.4263 - val_loss: 17.3389 - val_mae: 2.8069 - val_mse: 17.3389\n",
"36/36 [==============================] - 0s 3ms/step - loss: 9.2461 - mae: 2.1105 - mse: 9.2461 - val_loss: 17.3363 - val_mae: 2.7985 - val_mse: 17.3363\n",
"36/36 [==============================] - 0s 3ms/step - loss: 9.2967 - mae: 2.0983 - mse: 9.2967 - val_loss: 17.7068 - val_mae: 2.8551 - val_mse: 17.7068\n",
"36/36 [==============================] - 0s 3ms/step - loss: 9.0171 - mae: 2.0590 - mse: 9.0171 - val_loss: 17.6013 - val_mae: 2.8819 - val_mse: 17.6013\n",
"36/36 [==============================] - 0s 3ms/step - loss: 9.0039 - mae: 2.0880 - mse: 9.0039 - val_loss: 18.1039 - val_mae: 2.8558 - val_mse: 18.1039\n",
"36/36 [==============================] - 0s 3ms/step - loss: 8.6806 - mae: 2.0975 - mse: 8.6806 - val_loss: 17.1357 - val_mae: 2.7136 - val_mse: 17.1357\n",
"36/36 [==============================] - 0s 3ms/step - loss: 8.5762 - mae: 2.0289 - mse: 8.5762 - val_loss: 17.1106 - val_mae: 2.7783 - val_mse: 17.1106\n",
"36/36 [==============================] - 0s 3ms/step - loss: 8.6417 - mae: 2.0260 - mse: 8.6417 - val_loss: 17.0406 - val_mae: 2.7918 - val_mse: 17.0406\n",
"36/36 [==============================] - 0s 3ms/step - loss: 8.5833 - mae: 2.0244 - mse: 8.5833 - val_loss: 18.0475 - val_mae: 2.8360 - val_mse: 18.0475\n",
"36/36 [==============================] - 0s 3ms/step - loss: 8.2054 - mae: 2.0043 - mse: 8.2054 - val_loss: 17.0133 - val_mae: 2.7095 - val_mse: 17.0133\n",
"36/36 [==============================] - 0s 3ms/step - loss: 8.2301 - mae: 1.9699 - mse: 8.2301 - val_loss: 18.3437 - val_mae: 2.9549 - val_mse: 18.3437\n",
"36/36 [==============================] - 0s 3ms/step - loss: 7.9471 - mae: 1.9438 - mse: 7.9471 - val_loss: 19.1730 - val_mae: 3.0434 - val_mse: 19.1730\n",
"36/36 [==============================] - 0s 3ms/step - loss: 8.0745 - mae: 1.9784 - mse: 8.0745 - val_loss: 16.7722 - val_mae: 2.7913 - val_mse: 16.7722\n",
"36/36 [==============================] - 0s 3ms/step - loss: 7.7404 - mae: 1.9509 - mse: 7.7404 - val_loss: 16.2314 - val_mae: 2.7512 - val_mse: 16.2314\n",
"36/36 [==============================] - 0s 3ms/step - loss: 7.7764 - mae: 1.9542 - mse: 7.7764 - val_loss: 17.5090 - val_mae: 2.8030 - val_mse: 17.5090\n",
"36/36 [==============================] - 0s 3ms/step - loss: 7.6741 - mae: 1.8898 - mse: 7.6741 - val_loss: 16.4816 - val_mae: 2.7928 - val_mse: 16.4816\n",
"36/36 [==============================] - 0s 3ms/step - loss: 7.6694 - mae: 1.9532 - mse: 7.6694 - val_loss: 16.6889 - val_mae: 2.7137 - val_mse: 16.6889\n",
"36/36 [==============================] - 0s 3ms/step - loss: 7.5041 - mae: 1.9462 - mse: 7.5041 - val_loss: 16.7302 - val_mae: 2.6825 - val_mse: 16.7302\n",
"36/36 [==============================] - 0s 3ms/step - loss: 7.2888 - mae: 1.8822 - mse: 7.2888 - val_loss: 16.4285 - val_mae: 2.7840 - val_mse: 16.4285\n",
"36/36 [==============================] - 0s 3ms/step - loss: 7.2930 - mae: 1.8663 - mse: 7.2930 - val_loss: 16.8343 - val_mae: 2.7821 - val_mse: 16.8343\n",
"36/36 [==============================] - 0s 3ms/step - loss: 7.2549 - mae: 1.8683 - mse: 7.2549 - val_loss: 15.7884 - val_mae: 2.7318 - val_mse: 15.7884\n",
"36/36 [==============================] - 0s 3ms/step - loss: 7.0984 - mae: 1.8449 - mse: 7.0984 - val_loss: 17.2381 - val_mae: 2.8447 - val_mse: 17.2381\n",
"36/36 [==============================] - 0s 3ms/step - loss: 7.2413 - mae: 1.8850 - mse: 7.2413 - val_loss: 16.0552 - val_mae: 2.6502 - val_mse: 16.0552\n",
"36/36 [==============================] - 0s 3ms/step - loss: 6.9367 - mae: 1.8398 - mse: 6.9367 - val_loss: 17.2112 - val_mae: 2.8687 - val_mse: 17.2112\n",
"36/36 [==============================] - 0s 3ms/step - loss: 6.9827 - mae: 1.8430 - mse: 6.9827 - val_loss: 17.0917 - val_mae: 2.8490 - val_mse: 17.0917\n",
"36/36 [==============================] - 0s 3ms/step - loss: 6.9057 - mae: 1.8588 - mse: 6.9057 - val_loss: 15.8673 - val_mae: 2.6752 - val_mse: 15.8673\n",
"36/36 [==============================] - 0s 3ms/step - loss: 6.7441 - mae: 1.8413 - mse: 6.7441 - val_loss: 15.9673 - val_mae: 2.6831 - val_mse: 15.9673\n",
"36/36 [==============================] - 0s 3ms/step - loss: 6.6772 - mae: 1.8257 - mse: 6.6772 - val_loss: 15.8700 - val_mae: 2.6894 - val_mse: 15.8700\n",
"36/36 [==============================] - 0s 3ms/step - loss: 6.7987 - mae: 1.8268 - mse: 6.7987 - val_loss: 15.9252 - val_mae: 2.6604 - val_mse: 15.9252\n",
"36/36 [==============================] - 0s 3ms/step - loss: 6.4837 - mae: 1.8267 - mse: 6.4837 - val_loss: 15.9070 - val_mae: 2.6712 - val_mse: 15.9070\n",
"36/36 [==============================] - 0s 3ms/step - loss: 6.4992 - mae: 1.7764 - mse: 6.4992 - val_loss: 17.6725 - val_mae: 2.9236 - val_mse: 17.6725\n",
"36/36 [==============================] - 0s 3ms/step - loss: 6.4255 - mae: 1.7977 - mse: 6.4255 - val_loss: 15.9662 - val_mae: 2.6543 - val_mse: 15.9662\n",
"36/36 [==============================] - 0s 3ms/step - loss: 6.5858 - mae: 1.8303 - mse: 6.5858 - val_loss: 15.8725 - val_mae: 2.6448 - val_mse: 15.8725\n",
"36/36 [==============================] - 0s 3ms/step - loss: 6.3289 - mae: 1.7924 - mse: 6.3289 - val_loss: 16.2535 - val_mae: 2.7397 - val_mse: 16.2535\n",
"36/36 [==============================] - 0s 3ms/step - loss: 6.1070 - mae: 1.7290 - mse: 6.1070 - val_loss: 17.4497 - val_mae: 2.8085 - val_mse: 17.4497\n",
"36/36 [==============================] - 0s 3ms/step - loss: 6.2357 - mae: 1.8001 - mse: 6.2357 - val_loss: 15.7940 - val_mae: 2.6139 - val_mse: 15.7940\n",
"36/36 [==============================] - 0s 3ms/step - loss: 6.1776 - mae: 1.7134 - mse: 6.1776 - val_loss: 18.2101 - val_mae: 3.0060 - val_mse: 18.2101\n",
"36/36 [==============================] - 0s 3ms/step - loss: 6.0313 - mae: 1.7406 - mse: 6.0313 - val_loss: 16.0014 - val_mae: 2.6532 - val_mse: 16.0014\n",
"36/36 [==============================] - 0s 3ms/step - loss: 6.0825 - mae: 1.7771 - mse: 6.0825 - val_loss: 17.4272 - val_mae: 2.8013 - val_mse: 17.4272\n",
"36/36 [==============================] - 0s 3ms/step - loss: 5.9886 - mae: 1.7806 - mse: 5.9886 - val_loss: 15.6423 - val_mae: 2.6311 - val_mse: 15.6423\n",
"36/36 [==============================] - 0s 3ms/step - loss: 5.8739 - mae: 1.6941 - mse: 5.8739 - val_loss: 15.7738 - val_mae: 2.6235 - val_mse: 15.7738\n",
"36/36 [==============================] - 0s 3ms/step - loss: 6.0186 - mae: 1.7272 - mse: 6.0186 - val_loss: 16.2887 - val_mae: 2.7315 - val_mse: 16.2887\n",
"36/36 [==============================] - 0s 3ms/step - loss: 5.6992 - mae: 1.6959 - mse: 5.6992 - val_loss: 16.2439 - val_mae: 2.6728 - val_mse: 16.2439\n",
"36/36 [==============================] - 0s 3ms/step - loss: 5.7267 - mae: 1.6931 - mse: 5.7267 - val_loss: 17.3420 - val_mae: 2.9330 - val_mse: 17.3420\n",
"36/36 [==============================] - 0s 3ms/step - loss: 5.5663 - mae: 1.6936 - mse: 5.5663 - val_loss: 15.8615 - val_mae: 2.6978 - val_mse: 15.8615\n",
"36/36 [==============================] - 0s 3ms/step - loss: 5.6906 - mae: 1.7106 - mse: 5.6906 - val_loss: 16.3725 - val_mae: 2.7047 - val_mse: 16.3725\n",
"36/36 [==============================] - 0s 3ms/step - loss: 5.5431 - mae: 1.6698 - mse: 5.5431 - val_loss: 16.4046 - val_mae: 2.7959 - val_mse: 16.4046\n",
"36/36 [==============================] - 0s 3ms/step - loss: 5.5527 - mae: 1.6936 - mse: 5.5527 - val_loss: 15.5068 - val_mae: 2.6383 - val_mse: 15.5068\n",
"36/36 [==============================] - 0s 3ms/step - loss: 5.4648 - mae: 1.6626 - mse: 5.4648 - val_loss: 16.5591 - val_mae: 2.7705 - val_mse: 16.5591\n",
"36/36 [==============================] - 0s 3ms/step - loss: 5.4885 - mae: 1.6831 - mse: 5.4885 - val_loss: 16.0854 - val_mae: 2.7222 - val_mse: 16.0854\n",
"36/36 [==============================] - 0s 3ms/step - loss: 5.4027 - mae: 1.6897 - mse: 5.4027 - val_loss: 16.1947 - val_mae: 2.7365 - val_mse: 16.1947\n",
"36/36 [==============================] - 0s 3ms/step - loss: 5.4546 - mae: 1.6858 - mse: 5.4546 - val_loss: 15.5937 - val_mae: 2.6997 - val_mse: 15.5937\n",
"36/36 [==============================] - 0s 3ms/step - loss: 5.4391 - mae: 1.6800 - mse: 5.4391 - val_loss: 15.3495 - val_mae: 2.6369 - val_mse: 15.3495\n",
"36/36 [==============================] - 0s 3ms/step - loss: 5.2675 - mae: 1.6067 - mse: 5.2675 - val_loss: 15.3150 - val_mae: 2.6281 - val_mse: 15.3150\n",
"36/36 [==============================] - 0s 3ms/step - loss: 5.0789 - mae: 1.6050 - mse: 5.0789 - val_loss: 15.6628 - val_mae: 2.7041 - val_mse: 15.6628\n",
"36/36 [==============================] - 0s 3ms/step - loss: 5.1433 - mae: 1.6192 - mse: 5.1433 - val_loss: 15.6630 - val_mae: 2.7125 - val_mse: 15.6630\n",
"36/36 [==============================] - 0s 3ms/step - loss: 5.2613 - mae: 1.6272 - mse: 5.2613 - val_loss: 15.5012 - val_mae: 2.6684 - val_mse: 15.5012\n",
"36/36 [==============================] - 0s 3ms/step - loss: 5.0384 - mae: 1.5870 - mse: 5.0384 - val_loss: 15.4386 - val_mae: 2.5987 - val_mse: 15.4386\n",
"36/36 [==============================] - 0s 3ms/step - loss: 4.8677 - mae: 1.6115 - mse: 4.8677 - val_loss: 14.8730 - val_mae: 2.5933 - val_mse: 14.8730\n",
"36/36 [==============================] - 0s 3ms/step - loss: 4.7888 - mae: 1.6307 - mse: 4.7888 - val_loss: 15.8612 - val_mae: 2.6449 - val_mse: 15.8612\n",
"36/36 [==============================] - 0s 3ms/step - loss: 4.8544 - mae: 1.5776 - mse: 4.8544 - val_loss: 15.9151 - val_mae: 2.7450 - val_mse: 15.9151\n",
"36/36 [==============================] - 0s 3ms/step - loss: 4.9277 - mae: 1.6223 - mse: 4.9277 - val_loss: 15.4618 - val_mae: 2.6289 - val_mse: 15.4618\n",
"36/36 [==============================] - 0s 3ms/step - loss: 4.6935 - mae: 1.5533 - mse: 4.6935 - val_loss: 15.5422 - val_mae: 2.6907 - val_mse: 15.5422\n",
"36/36 [==============================] - 0s 3ms/step - loss: 4.7293 - mae: 1.5713 - mse: 4.7293 - val_loss: 16.1069 - val_mae: 2.6952 - val_mse: 16.1069\n",
"36/36 [==============================] - 0s 3ms/step - loss: 4.9442 - mae: 1.6012 - mse: 4.9442 - val_loss: 16.8197 - val_mae: 2.7933 - val_mse: 16.8197\n",
"36/36 [==============================] - 0s 3ms/step - loss: 4.7069 - mae: 1.5407 - mse: 4.7069 - val_loss: 15.1649 - val_mae: 2.6126 - val_mse: 15.1649\n",
"36/36 [==============================] - 0s 3ms/step - loss: 4.5711 - mae: 1.5661 - mse: 4.5711 - val_loss: 15.4229 - val_mae: 2.5960 - val_mse: 15.4229\n",
"36/36 [==============================] - 0s 3ms/step - loss: 4.7171 - mae: 1.5643 - mse: 4.7171 - val_loss: 14.9234 - val_mae: 2.5848 - val_mse: 14.9234\n",
"36/36 [==============================] - 0s 3ms/step - loss: 4.6757 - mae: 1.5674 - mse: 4.6757 - val_loss: 15.6304 - val_mae: 2.6254 - val_mse: 15.6304\n",
"36/36 [==============================] - 0s 3ms/step - loss: 4.5371 - mae: 1.5218 - mse: 4.5371 - val_loss: 15.2124 - val_mae: 2.6103 - val_mse: 15.2124\n",
"36/36 [==============================] - 0s 3ms/step - loss: 4.5749 - mae: 1.5530 - mse: 4.5749 - val_loss: 15.0673 - val_mae: 2.6155 - val_mse: 15.0673\n",
"36/36 [==============================] - 0s 3ms/step - loss: 4.4479 - mae: 1.5061 - mse: 4.4479 - val_loss: 15.6725 - val_mae: 2.6823 - val_mse: 15.6725\n",
"36/36 [==============================] - 0s 3ms/step - loss: 4.4346 - mae: 1.5632 - mse: 4.4346 - val_loss: 15.9227 - val_mae: 2.7507 - val_mse: 15.9227\n",
"36/36 [==============================] - 0s 3ms/step - loss: 4.3117 - mae: 1.5320 - mse: 4.3117 - val_loss: 14.8743 - val_mae: 2.5851 - val_mse: 14.8743\n",
"36/36 [==============================] - 0s 3ms/step - loss: 4.3167 - mae: 1.5485 - mse: 4.3167 - val_loss: 15.8938 - val_mae: 2.7321 - val_mse: 15.8938\n",
"36/36 [==============================] - 0s 3ms/step - loss: 4.2353 - mae: 1.5293 - mse: 4.2353 - val_loss: 15.6551 - val_mae: 2.6875 - val_mse: 15.6551\n",
"36/36 [==============================] - 0s 3ms/step - loss: 4.3570 - mae: 1.5247 - mse: 4.3570 - val_loss: 14.6511 - val_mae: 2.5859 - val_mse: 14.6511\n",
"36/36 [==============================] - 0s 3ms/step - loss: 4.1628 - mae: 1.5172 - mse: 4.1628 - val_loss: 15.3245 - val_mae: 2.6279 - val_mse: 15.3245\n",
"36/36 [==============================] - 0s 3ms/step - loss: 4.1995 - mae: 1.4868 - mse: 4.1995 - val_loss: 15.1456 - val_mae: 2.5795 - val_mse: 15.1456\n",
"36/36 [==============================] - 0s 3ms/step - loss: 4.1808 - mae: 1.5035 - mse: 4.1808 - val_loss: 16.9576 - val_mae: 2.8004 - val_mse: 16.9576\n"
"source": [
"history = model.fit(x_train,\n",
" y_train,\n",
" epochs = 100,\n",
" batch_size = 10,\n",
" validation_data = (x_test, y_test))"
]
},
{
"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,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"x_test / loss : 16.9576\n",
"x_test / mae : 2.8004\n",
"x_test / mse : 16.9576\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": [
"What was the best result during our training ?"
]
},
{
"cell_type": "code",
"execution_count": 10,
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>loss</th>\n",
" <th>mae</th>\n",
" <th>mse</th>\n",
" <th>val_loss</th>\n",
" <th>val_mae</th>\n",
" <th>val_mse</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>100.000000</td>\n",
" <td>100.000000</td>\n",
" <td>100.000000</td>\n",
" <td>100.000000</td>\n",
" <td>100.000000</td>\n",
" <td>100.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>14.927569</td>\n",
" <td>2.249331</td>\n",
" <td>14.927569</td>\n",
" <td>22.950146</td>\n",
" <td>3.050924</td>\n",
" <td>22.950146</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>49.102919</td>\n",
" <td>2.129139</td>\n",
" <td>49.102919</td>\n",
" <td>39.685006</td>\n",
" <td>1.642340</td>\n",
" <td>39.685006</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>4.162772</td>\n",
" <td>1.486817</td>\n",
" <td>4.162772</td>\n",
" <td>14.651099</td>\n",
" <td>2.579468</td>\n",
" <td>14.651099</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>5.231783</td>\n",
" <td>1.625981</td>\n",
" <td>5.231783</td>\n",
" <td>15.784752</td>\n",
" <td>2.666427</td>\n",
" <td>15.784752</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>6.542478</td>\n",
" <td>1.826209</td>\n",
" <td>6.542478</td>\n",
" <td>16.416533</td>\n",
" <td>2.742338</td>\n",
" <td>16.416533</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>8.761405</td>\n",
" <td>2.066272</td>\n",
" <td>8.761405</td>\n",
" <td>17.681088</td>\n",
" <td>2.859058</td>\n",
" <td>17.681088</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>446.603668</td>\n",
" <td>19.257833</td>\n",
" <td>446.603668</td>\n",
" <td>386.788330</td>\n",
" <td>17.066065</td>\n",
" <td>386.788330</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" loss mae mse val_loss val_mae val_mse\n",
"count 100.000000 100.000000 100.000000 100.000000 100.000000 100.000000\n",
"mean 14.927569 2.249331 14.927569 22.950146 3.050924 22.950146\n",
"std 49.102919 2.129139 49.102919 39.685006 1.642340 39.685006\n",
"min 4.162772 1.486817 4.162772 14.651099 2.579468 14.651099\n",
"25% 5.231783 1.625981 5.231783 15.784752 2.666427 15.784752\n",
"50% 6.542478 1.826209 6.542478 16.416533 2.742338 16.416533\n",
"75% 8.761405 2.066272 8.761405 17.681088 2.859058 17.681088\n",
"max 446.603668 19.257833 446.603668 386.788330 17.066065 386.788330"
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\n",
"df=pd.DataFrame(data=history.history)\n",
"df.describe()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"source": [
"print(\"min( val_mae ) : {:.4f}\".format( min(history.history[\"val_mae\"]) ) )"
]
},
{
"cell_type": "code",
"execution_count": 12,
"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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\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 - Make a prediction\n",
"The data must be normalized with the parameters (mean, std) previously used."
"metadata": {},
"outputs": [],
"source": [
"my_data = [ 1.26425925, -0.48522739, 1.0436489 , -0.23112788, 1.37120745,\n",
" -2.14308942, 1.13489104, -1.06802005, 1.71189006, 1.57042287,\n",
" 0.77859951, 0.14769795, 2.7585581 ]\n",
"real_price = 10.4\n",
"\n",
"my_data=np.array(my_data).reshape(1,13)"
]
},
{
"cell_type": "code",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Reality : 10.40 K$\n"
]
}
],
"source": [
"\n",
"predictions = model.predict( my_data )\n",
"print(\"Prediction : {:.2f} K$\".format(predictions[0][0]))\n",
"print(\"Reality : {:.2f} K$\".format(real_price))"
]
},
"<img width=\"80px\" src=\"../fidle/img/00-Fidle-logo-01.svg\"></img>"
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}