diff --git a/kaggle_house_prices/.ipynb_checkpoints/NeuralNetwork-checkpoint.ipynb b/kaggle_house_prices/.ipynb_checkpoints/NeuralNetwork-checkpoint.ipynb new file mode 100644 index 0000000..9e4ebf6 --- /dev/null +++ b/kaggle_house_prices/.ipynb_checkpoints/NeuralNetwork-checkpoint.ipynb @@ -0,0 +1,1094 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import os\n", + "from math import sqrt\n", + "from sklearn.metrics import mean_squared_error\n", + "from sklearn.metrics import mean_absolute_error\n", + "import tensorflow as tf\n", + "import keras" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "train = pd.read_csv(os.path.join('data', 'clean_train.csv'))\n", + "test = pd.read_csv(os.path.join('data', 'clean_test.csv'))" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0PCA0PCA1PCA2PCA3PCA4PCA5PCA6PCA7PCA8...PCA164PCA165PCA166PCA167PCA168PCA169PCA170PCA171IdSalePrice
004.3451091.619386-0.739617-2.080179-0.9850881.999117-1.231870-0.1317821.316470...0.1607330.0713330.1554680.172801-0.169568-0.1443260.391713-0.0133571208500
110.019142-3.1069590.168223-0.5533410.9407120.200719-0.4689540.235082-0.838022...-1.063234-0.3345560.361166-1.218397-0.346191-0.962753-0.1388631.0831032181500
224.8511491.242811-0.351815-1.484957-0.7582002.181179-1.8439490.2961941.299142...0.0883340.2386240.3272800.325285-0.704900-0.036388-0.5405160.0217113223500
33-1.7716410.039500-1.3586231.920760-2.5508170.209519-0.7563870.700109-1.408543...-0.172186-0.5189220.231498-0.074296-0.034287-0.8777350.028065-0.3210094140000
446.4637471.0644730.2094720.448906-1.5553013.215822-0.946356-0.8052042.112526...-0.2701890.375297-0.396732-0.1090840.317305-0.145975-0.674692-0.3784585250000
\n", + "

5 rows × 175 columns

\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 PCA0 PCA1 PCA2 PCA3 PCA4 PCA5 \\\n", + "0 0 4.345109 1.619386 -0.739617 -2.080179 -0.985088 1.999117 \n", + "1 1 0.019142 -3.106959 0.168223 -0.553341 0.940712 0.200719 \n", + "2 2 4.851149 1.242811 -0.351815 -1.484957 -0.758200 2.181179 \n", + "3 3 -1.771641 0.039500 -1.358623 1.920760 -2.550817 0.209519 \n", + "4 4 6.463747 1.064473 0.209472 0.448906 -1.555301 3.215822 \n", + "\n", + " PCA6 PCA7 PCA8 ... PCA164 PCA165 PCA166 PCA167 \\\n", + "0 -1.231870 -0.131782 1.316470 ... 0.160733 0.071333 0.155468 0.172801 \n", + "1 -0.468954 0.235082 -0.838022 ... -1.063234 -0.334556 0.361166 -1.218397 \n", + "2 -1.843949 0.296194 1.299142 ... 0.088334 0.238624 0.327280 0.325285 \n", + "3 -0.756387 0.700109 -1.408543 ... -0.172186 -0.518922 0.231498 -0.074296 \n", + "4 -0.946356 -0.805204 2.112526 ... -0.270189 0.375297 -0.396732 -0.109084 \n", + "\n", + " PCA168 PCA169 PCA170 PCA171 Id SalePrice \n", + "0 -0.169568 -0.144326 0.391713 -0.013357 1 208500 \n", + "1 -0.346191 -0.962753 -0.138863 1.083103 2 181500 \n", + "2 -0.704900 -0.036388 -0.540516 0.021711 3 223500 \n", + "3 -0.034287 -0.877735 0.028065 -0.321009 4 140000 \n", + "4 0.317305 -0.145975 -0.674692 -0.378458 5 250000 \n", + "\n", + "[5 rows x 175 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0PCA0PCA1PCA2PCA3PCA4PCA5PCA6PCA7PCA8...PCA163PCA164PCA165PCA166PCA167PCA168PCA169PCA170PCA171Id
00-3.208086-2.987338-0.327066-1.6092060.016879-1.514939-0.417889-0.988173-0.653363...-0.0273640.653222-0.201973-0.769946-0.3448340.5142571.1141060.337765-0.6396171461
11-1.403753-4.2618510.1075270.9359810.165777-0.299485-0.524918-2.3321210.031044...3.8561170.7879960.2152210.4582751.1351090.3789720.953559-1.0082404.4454351462
222.2570020.427951-0.610464-1.301125-1.0583272.674177-1.500824-0.2239990.403440...-0.117138-0.378473-0.0316130.090593-0.173914-0.150098-0.0066120.190780-0.1524861463
333.2536180.537318-0.796079-0.851716-1.2096432.388795-1.340676-0.8763220.421183...-0.4415860.020066-0.1517090.4448260.008218-0.161705-0.4534820.4723520.0461411464
442.876409-0.075909-0.154959-2.4698701.4078200.4875320.0721902.4144461.667224...0.2690620.651172-0.050461-0.526448-0.8437010.574770-0.2278281.0714231.3626381465
\n", + "

5 rows × 174 columns

\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 PCA0 PCA1 PCA2 PCA3 PCA4 PCA5 \\\n", + "0 0 -3.208086 -2.987338 -0.327066 -1.609206 0.016879 -1.514939 \n", + "1 1 -1.403753 -4.261851 0.107527 0.935981 0.165777 -0.299485 \n", + "2 2 2.257002 0.427951 -0.610464 -1.301125 -1.058327 2.674177 \n", + "3 3 3.253618 0.537318 -0.796079 -0.851716 -1.209643 2.388795 \n", + "4 4 2.876409 -0.075909 -0.154959 -2.469870 1.407820 0.487532 \n", + "\n", + " PCA6 PCA7 PCA8 ... PCA163 PCA164 PCA165 PCA166 \\\n", + "0 -0.417889 -0.988173 -0.653363 ... -0.027364 0.653222 -0.201973 -0.769946 \n", + "1 -0.524918 -2.332121 0.031044 ... 3.856117 0.787996 0.215221 0.458275 \n", + "2 -1.500824 -0.223999 0.403440 ... -0.117138 -0.378473 -0.031613 0.090593 \n", + "3 -1.340676 -0.876322 0.421183 ... -0.441586 0.020066 -0.151709 0.444826 \n", + "4 0.072190 2.414446 1.667224 ... 0.269062 0.651172 -0.050461 -0.526448 \n", + "\n", + " PCA167 PCA168 PCA169 PCA170 PCA171 Id \n", + "0 -0.344834 0.514257 1.114106 0.337765 -0.639617 1461 \n", + "1 1.135109 0.378972 0.953559 -1.008240 4.445435 1462 \n", + "2 -0.173914 -0.150098 -0.006612 0.190780 -0.152486 1463 \n", + "3 0.008218 -0.161705 -0.453482 0.472352 0.046141 1464 \n", + "4 -0.843701 0.574770 -0.227828 1.071423 1.362638 1465 \n", + "\n", + "[5 rows x 174 columns]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "test.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# Set aside unnecessary features\n", + "\n", + "trainId = train['Id'].astype(int)\n", + "testId = test['Id'].astype(int)\n", + "\n", + "train = train.drop('Id', axis=1)\n", + "test = test.drop('Id', axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "X = train.drop('SalePrice', axis=1)\n", + "y = train['SalePrice']\n", + "X_test = test" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 208500\n", + "1 181500\n", + "2 223500\n", + "3 140000\n", + "4 250000\n", + " ... \n", + "1455 175000\n", + "1456 210000\n", + "1457 266500\n", + "1458 142125\n", + "1459 147500\n", + "Name: SalePrice, Length: 1460, dtype: int64\n", + "(1460, 173)\n", + "(1459, 173)\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0PCA0PCA1PCA2PCA3PCA4PCA5PCA6PCA7PCA8...PCA162PCA163PCA164PCA165PCA166PCA167PCA168PCA169PCA170PCA171
004.3451091.619386-0.739617-2.080179-0.9850881.999117-1.231870-0.1317821.316470...-0.276936-0.1282600.1607330.0713330.1554680.172801-0.169568-0.1443260.391713-0.013357
110.019142-3.1069590.168223-0.5533410.9407120.200719-0.4689540.235082-0.838022...0.140974-0.224535-1.063234-0.3345560.361166-1.218397-0.346191-0.962753-0.1388631.083103
224.8511491.242811-0.351815-1.484957-0.7582002.181179-1.8439490.2961941.299142...-0.289024-0.2825630.0883340.2386240.3272800.325285-0.704900-0.036388-0.5405160.021711
33-1.7716410.039500-1.3586231.920760-2.5508170.209519-0.7563870.700109-1.408543...0.2867900.672251-0.172186-0.5189220.231498-0.074296-0.034287-0.8777350.028065-0.321009
446.4637471.0644730.2094720.448906-1.5553013.215822-0.946356-0.8052042.112526...-0.2355850.019570-0.2701890.375297-0.396732-0.1090840.317305-0.145975-0.674692-0.378458
\n", + "

5 rows × 173 columns

\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 PCA0 PCA1 PCA2 PCA3 PCA4 PCA5 \\\n", + "0 0 4.345109 1.619386 -0.739617 -2.080179 -0.985088 1.999117 \n", + "1 1 0.019142 -3.106959 0.168223 -0.553341 0.940712 0.200719 \n", + "2 2 4.851149 1.242811 -0.351815 -1.484957 -0.758200 2.181179 \n", + "3 3 -1.771641 0.039500 -1.358623 1.920760 -2.550817 0.209519 \n", + "4 4 6.463747 1.064473 0.209472 0.448906 -1.555301 3.215822 \n", + "\n", + " PCA6 PCA7 PCA8 ... PCA162 PCA163 PCA164 PCA165 \\\n", + "0 -1.231870 -0.131782 1.316470 ... -0.276936 -0.128260 0.160733 0.071333 \n", + "1 -0.468954 0.235082 -0.838022 ... 0.140974 -0.224535 -1.063234 -0.334556 \n", + "2 -1.843949 0.296194 1.299142 ... -0.289024 -0.282563 0.088334 0.238624 \n", + "3 -0.756387 0.700109 -1.408543 ... 0.286790 0.672251 -0.172186 -0.518922 \n", + "4 -0.946356 -0.805204 2.112526 ... -0.235585 0.019570 -0.270189 0.375297 \n", + "\n", + " PCA166 PCA167 PCA168 PCA169 PCA170 PCA171 \n", + "0 0.155468 0.172801 -0.169568 -0.144326 0.391713 -0.013357 \n", + "1 0.361166 -1.218397 -0.346191 -0.962753 -0.138863 1.083103 \n", + "2 0.327280 0.325285 -0.704900 -0.036388 -0.540516 0.021711 \n", + "3 0.231498 -0.074296 -0.034287 -0.877735 0.028065 -0.321009 \n", + "4 -0.396732 -0.109084 0.317305 -0.145975 -0.674692 -0.378458 \n", + "\n", + "[5 rows x 173 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "print(y)\n", + "print(X.shape)\n", + "print(X_test.shape)\n", + "X.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train on 1460 samples\n", + "Epoch 1/20\n", + "1460/1460 [==============================] - 8s 5ms/sample - loss: 21378772287.8247 - mse: 21378768896.0000\n", + "Epoch 2/20\n", + "1460/1460 [==============================] - 7s 4ms/sample - loss: 14424159683.6822 - mse: 14424160256.0000\n", + "Epoch 3/20\n", + "1460/1460 [==============================] - 7s 4ms/sample - loss: 9813772273.9726 - mse: 9813772288.0000\n", + "Epoch 4/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 4094837492.7781 - mse: 4094837504.0000\n", + "Epoch 5/20\n", + "1460/1460 [==============================] - 7s 5ms/sample - loss: 2989677719.4959 - mse: 2989677568.0000 3s - loss: 3902894729.6\n", + "Epoch 6/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 1279209371.7041 - mse: 1279209088.0000\n", + "Epoch 7/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 1186372414.0712 - mse: 1186372224.0000\n", + "Epoch 8/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 929078176.2630 - mse: 929078208.0000\n", + "Epoch 9/20\n", + "1460/1460 [==============================] - 7s 5ms/sample - loss: 1044272466.4110 - mse: 1044272320.0000\n", + "Epoch 10/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 521697620.8658 - mse: 521697728.0000\n", + "Epoch 11/20\n", + "1460/1460 [==============================] - 7s 4ms/sample - loss: 544022221.8521 - mse: 544022208.0000\n", + "Epoch 12/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 468429404.4932 - mse: 468429408.0000\n", + "Epoch 13/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 580859017.9945 - mse: 580859008.0000\n", + "Epoch 14/20\n", + "1460/1460 [==============================] - 7s 4ms/sample - loss: 477522669.0630 - mse: 477522624.0000\n", + "Epoch 15/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 336378193.0959 - mse: 336378176.0000\n", + "Epoch 16/20\n", + "1460/1460 [==============================] - 7s 5ms/sample - loss: 307777051.1781 - mse: 307777088.0000\n", + "Epoch 17/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 348827916.4932 - mse: 348827936.0000\n", + "Epoch 18/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 375509386.9151 - mse: 375509312.0000\n", + "Epoch 19/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 452619568.2192 - mse: 452619552.0000\n", + "Epoch 20/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 348767770.2137 - mse: 348767808.0000\n", + "Model: \"sequential_7\"\n", + "_________________________________________________________________\n", + "Layer (type) Output Shape Param # \n", + "=================================================================\n", + "flatten_7 (Flatten) multiple 0 \n", + "_________________________________________________________________\n", + "dense_48 (Dense) multiple 178176 \n", + "_________________________________________________________________\n", + "dense_49 (Dense) multiple 1049600 \n", + "_________________________________________________________________\n", + "dense_50 (Dense) multiple 2099200 \n", + "_________________________________________________________________\n", + "dense_51 (Dense) multiple 4196352 \n", + "_________________________________________________________________\n", + "dense_52 (Dense) multiple 2098176 \n", + "_________________________________________________________________\n", + "dense_53 (Dense) multiple 1049600 \n", + "_________________________________________________________________\n", + "dense_54 (Dense) multiple 524800 \n", + "_________________________________________________________________\n", + "dense_55 (Dense) multiple 131328 \n", + "_________________________________________________________________\n", + "dense_56 (Dense) multiple 32896 \n", + "_________________________________________________________________\n", + "dense_57 (Dense) multiple 8256 \n", + "_________________________________________________________________\n", + "dense_58 (Dense) multiple 2080 \n", + "_________________________________________________________________\n", + "dense_59 (Dense) multiple 33 \n", + "=================================================================\n", + "Total params: 11,370,497\n", + "Trainable params: 11,370,497\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n", + "None\n" + ] + } + ], + "source": [ + "# Setup our model\n", + "\n", + "model = tf.keras.models.Sequential([\n", + " # Flatten out our input\n", + " tf.keras.layers.Flatten(),\n", + " \n", + " # Setup our hidden layer\n", + " \n", + " tf.keras.layers.Dense(1024, activation=tf.nn.relu),\n", + " tf.keras.layers.Dense(1024, activation=tf.nn.relu),\n", + " tf.keras.layers.Dense(2048, activation=tf.nn.relu),\n", + " tf.keras.layers.Dense(2048, activation=tf.nn.relu),\n", + " tf.keras.layers.Dense(1024, activation=tf.nn.relu),\n", + " tf.keras.layers.Dense(1024, activation=tf.nn.relu),\n", + " tf.keras.layers.Dense(512, activation=tf.nn.relu),\n", + " tf.keras.layers.Dense(256, activation=tf.nn.relu),\n", + " tf.keras.layers.Dense(128, activation=tf.nn.relu),\n", + " tf.keras.layers.Dense(64, activation=tf.nn.relu),\n", + " tf.keras.layers.Dense(32, activation=tf.nn.relu),\n", + " \n", + " # Setup output layer\n", + " tf.keras.layers.Dense(1, activation=tf.nn.relu)\n", + "])\n", + "\n", + "# Compile our model\n", + "model.compile(optimizer='adam', \n", + " loss = 'mean_squared_error', \n", + " metrics=['mse'])\n", + "\n", + "# Fit model\n", + "history = model.fit(\n", + " X.values,\n", + " y.values,\n", + " epochs=20\n", + ")\n", + "\n", + "# Model summary\n", + "print(model.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "mse = mean_squared_error(y.values, model.predict(X.values))\n", + "mae = mean_absolute_error(y.values, model.predict(X.values))" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Training mse = 206305033.33630806 & mae = 9953.949831442636 & rmse = 14363.322503387162\n" + ] + } + ], + "source": [ + "print(\"Training mse = \",mse,\" & mae = \",mae,\" & rmse = \", sqrt(mse))" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
IdSalePrice
01461115729.328125
11462148874.625000
21463154782.968750
31464159385.453125
41465170496.734375
\n", + "
" + ], + "text/plain": [ + " Id SalePrice\n", + "0 1461 115729.328125\n", + "1 1462 148874.625000\n", + "2 1463 154782.968750\n", + "3 1464 159385.453125\n", + "4 1465 170496.734375" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Setup and save Tree prediction\n", + "\n", + "test_pred = model.predict(X_test.values) # Note that we need to feed our model the values or our dataframe X_test\n", + "predictions = np.c_[testId, test_pred] # Note that we take the argmax over the collumns to use our softmax output\n", + "submission = pd.DataFrame(predictions, columns = ['Id', 'SalePrice'])\n", + "submission['Id'] = submission['Id'].astype(int)\n", + "submission.to_csv(\"submissions/NNSubmission.csv\", index=False)\n", + "submission.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "# Import Ensemble prediction made from Tree/Forest models\n", + "\n", + "Ensemble_prediction = pd.read_csv(os.path.join('submissions', 'EnsembleSubmission.csv'))" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "# Average old ensemble with NN model\n", + "\n", + "Ensemble_prediction['NNSale'] = submission['SalePrice']\n", + "Ensemble_prediction['SalePrice'] = Ensemble_prediction[['SalePrice', 'NNSale']].mean(axis=1)\n", + "Ensemble_prediction = Ensemble_prediction.drop('NNSale', axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
IdSalePrice
01461120161.371094
11462152452.843750
21463162175.976562
31464167157.189844
41465174259.088281
\n", + "
" + ], + "text/plain": [ + " Id SalePrice\n", + "0 1461 120161.371094\n", + "1 1462 152452.843750\n", + "2 1463 162175.976562\n", + "3 1464 167157.189844\n", + "4 1465 174259.088281" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Ensemble_prediction.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [], + "source": [ + "Ensemble_prediction.to_csv('submissions/NNEnsembleSubmission.csv', index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/kaggle_house_prices/NeuralNetwork.ipynb b/kaggle_house_prices/NeuralNetwork.ipynb new file mode 100644 index 0000000..9e4ebf6 --- /dev/null +++ b/kaggle_house_prices/NeuralNetwork.ipynb @@ -0,0 +1,1094 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import os\n", + "from math import sqrt\n", + "from sklearn.metrics import mean_squared_error\n", + "from sklearn.metrics import mean_absolute_error\n", + "import tensorflow as tf\n", + "import keras" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "train = pd.read_csv(os.path.join('data', 'clean_train.csv'))\n", + "test = pd.read_csv(os.path.join('data', 'clean_test.csv'))" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0PCA0PCA1PCA2PCA3PCA4PCA5PCA6PCA7PCA8...PCA164PCA165PCA166PCA167PCA168PCA169PCA170PCA171IdSalePrice
004.3451091.619386-0.739617-2.080179-0.9850881.999117-1.231870-0.1317821.316470...0.1607330.0713330.1554680.172801-0.169568-0.1443260.391713-0.0133571208500
110.019142-3.1069590.168223-0.5533410.9407120.200719-0.4689540.235082-0.838022...-1.063234-0.3345560.361166-1.218397-0.346191-0.962753-0.1388631.0831032181500
224.8511491.242811-0.351815-1.484957-0.7582002.181179-1.8439490.2961941.299142...0.0883340.2386240.3272800.325285-0.704900-0.036388-0.5405160.0217113223500
33-1.7716410.039500-1.3586231.920760-2.5508170.209519-0.7563870.700109-1.408543...-0.172186-0.5189220.231498-0.074296-0.034287-0.8777350.028065-0.3210094140000
446.4637471.0644730.2094720.448906-1.5553013.215822-0.946356-0.8052042.112526...-0.2701890.375297-0.396732-0.1090840.317305-0.145975-0.674692-0.3784585250000
\n", + "

5 rows × 175 columns

\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 PCA0 PCA1 PCA2 PCA3 PCA4 PCA5 \\\n", + "0 0 4.345109 1.619386 -0.739617 -2.080179 -0.985088 1.999117 \n", + "1 1 0.019142 -3.106959 0.168223 -0.553341 0.940712 0.200719 \n", + "2 2 4.851149 1.242811 -0.351815 -1.484957 -0.758200 2.181179 \n", + "3 3 -1.771641 0.039500 -1.358623 1.920760 -2.550817 0.209519 \n", + "4 4 6.463747 1.064473 0.209472 0.448906 -1.555301 3.215822 \n", + "\n", + " PCA6 PCA7 PCA8 ... PCA164 PCA165 PCA166 PCA167 \\\n", + "0 -1.231870 -0.131782 1.316470 ... 0.160733 0.071333 0.155468 0.172801 \n", + "1 -0.468954 0.235082 -0.838022 ... -1.063234 -0.334556 0.361166 -1.218397 \n", + "2 -1.843949 0.296194 1.299142 ... 0.088334 0.238624 0.327280 0.325285 \n", + "3 -0.756387 0.700109 -1.408543 ... -0.172186 -0.518922 0.231498 -0.074296 \n", + "4 -0.946356 -0.805204 2.112526 ... -0.270189 0.375297 -0.396732 -0.109084 \n", + "\n", + " PCA168 PCA169 PCA170 PCA171 Id SalePrice \n", + "0 -0.169568 -0.144326 0.391713 -0.013357 1 208500 \n", + "1 -0.346191 -0.962753 -0.138863 1.083103 2 181500 \n", + "2 -0.704900 -0.036388 -0.540516 0.021711 3 223500 \n", + "3 -0.034287 -0.877735 0.028065 -0.321009 4 140000 \n", + "4 0.317305 -0.145975 -0.674692 -0.378458 5 250000 \n", + "\n", + "[5 rows x 175 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0PCA0PCA1PCA2PCA3PCA4PCA5PCA6PCA7PCA8...PCA163PCA164PCA165PCA166PCA167PCA168PCA169PCA170PCA171Id
00-3.208086-2.987338-0.327066-1.6092060.016879-1.514939-0.417889-0.988173-0.653363...-0.0273640.653222-0.201973-0.769946-0.3448340.5142571.1141060.337765-0.6396171461
11-1.403753-4.2618510.1075270.9359810.165777-0.299485-0.524918-2.3321210.031044...3.8561170.7879960.2152210.4582751.1351090.3789720.953559-1.0082404.4454351462
222.2570020.427951-0.610464-1.301125-1.0583272.674177-1.500824-0.2239990.403440...-0.117138-0.378473-0.0316130.090593-0.173914-0.150098-0.0066120.190780-0.1524861463
333.2536180.537318-0.796079-0.851716-1.2096432.388795-1.340676-0.8763220.421183...-0.4415860.020066-0.1517090.4448260.008218-0.161705-0.4534820.4723520.0461411464
442.876409-0.075909-0.154959-2.4698701.4078200.4875320.0721902.4144461.667224...0.2690620.651172-0.050461-0.526448-0.8437010.574770-0.2278281.0714231.3626381465
\n", + "

5 rows × 174 columns

\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 PCA0 PCA1 PCA2 PCA3 PCA4 PCA5 \\\n", + "0 0 -3.208086 -2.987338 -0.327066 -1.609206 0.016879 -1.514939 \n", + "1 1 -1.403753 -4.261851 0.107527 0.935981 0.165777 -0.299485 \n", + "2 2 2.257002 0.427951 -0.610464 -1.301125 -1.058327 2.674177 \n", + "3 3 3.253618 0.537318 -0.796079 -0.851716 -1.209643 2.388795 \n", + "4 4 2.876409 -0.075909 -0.154959 -2.469870 1.407820 0.487532 \n", + "\n", + " PCA6 PCA7 PCA8 ... PCA163 PCA164 PCA165 PCA166 \\\n", + "0 -0.417889 -0.988173 -0.653363 ... -0.027364 0.653222 -0.201973 -0.769946 \n", + "1 -0.524918 -2.332121 0.031044 ... 3.856117 0.787996 0.215221 0.458275 \n", + "2 -1.500824 -0.223999 0.403440 ... -0.117138 -0.378473 -0.031613 0.090593 \n", + "3 -1.340676 -0.876322 0.421183 ... -0.441586 0.020066 -0.151709 0.444826 \n", + "4 0.072190 2.414446 1.667224 ... 0.269062 0.651172 -0.050461 -0.526448 \n", + "\n", + " PCA167 PCA168 PCA169 PCA170 PCA171 Id \n", + "0 -0.344834 0.514257 1.114106 0.337765 -0.639617 1461 \n", + "1 1.135109 0.378972 0.953559 -1.008240 4.445435 1462 \n", + "2 -0.173914 -0.150098 -0.006612 0.190780 -0.152486 1463 \n", + "3 0.008218 -0.161705 -0.453482 0.472352 0.046141 1464 \n", + "4 -0.843701 0.574770 -0.227828 1.071423 1.362638 1465 \n", + "\n", + "[5 rows x 174 columns]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "test.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# Set aside unnecessary features\n", + "\n", + "trainId = train['Id'].astype(int)\n", + "testId = test['Id'].astype(int)\n", + "\n", + "train = train.drop('Id', axis=1)\n", + "test = test.drop('Id', axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "X = train.drop('SalePrice', axis=1)\n", + "y = train['SalePrice']\n", + "X_test = test" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 208500\n", + "1 181500\n", + "2 223500\n", + "3 140000\n", + "4 250000\n", + " ... \n", + "1455 175000\n", + "1456 210000\n", + "1457 266500\n", + "1458 142125\n", + "1459 147500\n", + "Name: SalePrice, Length: 1460, dtype: int64\n", + "(1460, 173)\n", + "(1459, 173)\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0PCA0PCA1PCA2PCA3PCA4PCA5PCA6PCA7PCA8...PCA162PCA163PCA164PCA165PCA166PCA167PCA168PCA169PCA170PCA171
004.3451091.619386-0.739617-2.080179-0.9850881.999117-1.231870-0.1317821.316470...-0.276936-0.1282600.1607330.0713330.1554680.172801-0.169568-0.1443260.391713-0.013357
110.019142-3.1069590.168223-0.5533410.9407120.200719-0.4689540.235082-0.838022...0.140974-0.224535-1.063234-0.3345560.361166-1.218397-0.346191-0.962753-0.1388631.083103
224.8511491.242811-0.351815-1.484957-0.7582002.181179-1.8439490.2961941.299142...-0.289024-0.2825630.0883340.2386240.3272800.325285-0.704900-0.036388-0.5405160.021711
33-1.7716410.039500-1.3586231.920760-2.5508170.209519-0.7563870.700109-1.408543...0.2867900.672251-0.172186-0.5189220.231498-0.074296-0.034287-0.8777350.028065-0.321009
446.4637471.0644730.2094720.448906-1.5553013.215822-0.946356-0.8052042.112526...-0.2355850.019570-0.2701890.375297-0.396732-0.1090840.317305-0.145975-0.674692-0.378458
\n", + "

5 rows × 173 columns

\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 PCA0 PCA1 PCA2 PCA3 PCA4 PCA5 \\\n", + "0 0 4.345109 1.619386 -0.739617 -2.080179 -0.985088 1.999117 \n", + "1 1 0.019142 -3.106959 0.168223 -0.553341 0.940712 0.200719 \n", + "2 2 4.851149 1.242811 -0.351815 -1.484957 -0.758200 2.181179 \n", + "3 3 -1.771641 0.039500 -1.358623 1.920760 -2.550817 0.209519 \n", + "4 4 6.463747 1.064473 0.209472 0.448906 -1.555301 3.215822 \n", + "\n", + " PCA6 PCA7 PCA8 ... PCA162 PCA163 PCA164 PCA165 \\\n", + "0 -1.231870 -0.131782 1.316470 ... -0.276936 -0.128260 0.160733 0.071333 \n", + "1 -0.468954 0.235082 -0.838022 ... 0.140974 -0.224535 -1.063234 -0.334556 \n", + "2 -1.843949 0.296194 1.299142 ... -0.289024 -0.282563 0.088334 0.238624 \n", + "3 -0.756387 0.700109 -1.408543 ... 0.286790 0.672251 -0.172186 -0.518922 \n", + "4 -0.946356 -0.805204 2.112526 ... -0.235585 0.019570 -0.270189 0.375297 \n", + "\n", + " PCA166 PCA167 PCA168 PCA169 PCA170 PCA171 \n", + "0 0.155468 0.172801 -0.169568 -0.144326 0.391713 -0.013357 \n", + "1 0.361166 -1.218397 -0.346191 -0.962753 -0.138863 1.083103 \n", + "2 0.327280 0.325285 -0.704900 -0.036388 -0.540516 0.021711 \n", + "3 0.231498 -0.074296 -0.034287 -0.877735 0.028065 -0.321009 \n", + "4 -0.396732 -0.109084 0.317305 -0.145975 -0.674692 -0.378458 \n", + "\n", + "[5 rows x 173 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "print(y)\n", + "print(X.shape)\n", + "print(X_test.shape)\n", + "X.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train on 1460 samples\n", + "Epoch 1/20\n", + "1460/1460 [==============================] - 8s 5ms/sample - loss: 21378772287.8247 - mse: 21378768896.0000\n", + "Epoch 2/20\n", + "1460/1460 [==============================] - 7s 4ms/sample - loss: 14424159683.6822 - mse: 14424160256.0000\n", + "Epoch 3/20\n", + "1460/1460 [==============================] - 7s 4ms/sample - loss: 9813772273.9726 - mse: 9813772288.0000\n", + "Epoch 4/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 4094837492.7781 - mse: 4094837504.0000\n", + "Epoch 5/20\n", + "1460/1460 [==============================] - 7s 5ms/sample - loss: 2989677719.4959 - mse: 2989677568.0000 3s - loss: 3902894729.6\n", + "Epoch 6/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 1279209371.7041 - mse: 1279209088.0000\n", + "Epoch 7/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 1186372414.0712 - mse: 1186372224.0000\n", + "Epoch 8/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 929078176.2630 - mse: 929078208.0000\n", + "Epoch 9/20\n", + "1460/1460 [==============================] - 7s 5ms/sample - loss: 1044272466.4110 - mse: 1044272320.0000\n", + "Epoch 10/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 521697620.8658 - mse: 521697728.0000\n", + "Epoch 11/20\n", + "1460/1460 [==============================] - 7s 4ms/sample - loss: 544022221.8521 - mse: 544022208.0000\n", + "Epoch 12/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 468429404.4932 - mse: 468429408.0000\n", + "Epoch 13/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 580859017.9945 - mse: 580859008.0000\n", + "Epoch 14/20\n", + "1460/1460 [==============================] - 7s 4ms/sample - loss: 477522669.0630 - mse: 477522624.0000\n", + "Epoch 15/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 336378193.0959 - mse: 336378176.0000\n", + "Epoch 16/20\n", + "1460/1460 [==============================] - 7s 5ms/sample - loss: 307777051.1781 - mse: 307777088.0000\n", + "Epoch 17/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 348827916.4932 - mse: 348827936.0000\n", + "Epoch 18/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 375509386.9151 - mse: 375509312.0000\n", + "Epoch 19/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 452619568.2192 - mse: 452619552.0000\n", + "Epoch 20/20\n", + "1460/1460 [==============================] - 6s 4ms/sample - loss: 348767770.2137 - mse: 348767808.0000\n", + "Model: \"sequential_7\"\n", + "_________________________________________________________________\n", + "Layer (type) Output Shape Param # \n", + "=================================================================\n", + "flatten_7 (Flatten) multiple 0 \n", + "_________________________________________________________________\n", + "dense_48 (Dense) multiple 178176 \n", + "_________________________________________________________________\n", + "dense_49 (Dense) multiple 1049600 \n", + "_________________________________________________________________\n", + "dense_50 (Dense) multiple 2099200 \n", + "_________________________________________________________________\n", + "dense_51 (Dense) multiple 4196352 \n", + "_________________________________________________________________\n", + "dense_52 (Dense) multiple 2098176 \n", + "_________________________________________________________________\n", + "dense_53 (Dense) multiple 1049600 \n", + "_________________________________________________________________\n", + "dense_54 (Dense) multiple 524800 \n", + "_________________________________________________________________\n", + "dense_55 (Dense) multiple 131328 \n", + "_________________________________________________________________\n", + "dense_56 (Dense) multiple 32896 \n", + "_________________________________________________________________\n", + "dense_57 (Dense) multiple 8256 \n", + "_________________________________________________________________\n", + "dense_58 (Dense) multiple 2080 \n", + "_________________________________________________________________\n", + "dense_59 (Dense) multiple 33 \n", + "=================================================================\n", + "Total params: 11,370,497\n", + "Trainable params: 11,370,497\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n", + "None\n" + ] + } + ], + "source": [ + "# Setup our model\n", + "\n", + "model = tf.keras.models.Sequential([\n", + " # Flatten out our input\n", + " tf.keras.layers.Flatten(),\n", + " \n", + " # Setup our hidden layer\n", + " \n", + " tf.keras.layers.Dense(1024, activation=tf.nn.relu),\n", + " tf.keras.layers.Dense(1024, activation=tf.nn.relu),\n", + " tf.keras.layers.Dense(2048, activation=tf.nn.relu),\n", + " tf.keras.layers.Dense(2048, activation=tf.nn.relu),\n", + " tf.keras.layers.Dense(1024, activation=tf.nn.relu),\n", + " tf.keras.layers.Dense(1024, activation=tf.nn.relu),\n", + " tf.keras.layers.Dense(512, activation=tf.nn.relu),\n", + " tf.keras.layers.Dense(256, activation=tf.nn.relu),\n", + " tf.keras.layers.Dense(128, activation=tf.nn.relu),\n", + " tf.keras.layers.Dense(64, activation=tf.nn.relu),\n", + " tf.keras.layers.Dense(32, activation=tf.nn.relu),\n", + " \n", + " # Setup output layer\n", + " tf.keras.layers.Dense(1, activation=tf.nn.relu)\n", + "])\n", + "\n", + "# Compile our model\n", + "model.compile(optimizer='adam', \n", + " loss = 'mean_squared_error', \n", + " metrics=['mse'])\n", + "\n", + "# Fit model\n", + "history = model.fit(\n", + " X.values,\n", + " y.values,\n", + " epochs=20\n", + ")\n", + "\n", + "# Model summary\n", + "print(model.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "mse = mean_squared_error(y.values, model.predict(X.values))\n", + "mae = mean_absolute_error(y.values, model.predict(X.values))" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Training mse = 206305033.33630806 & mae = 9953.949831442636 & rmse = 14363.322503387162\n" + ] + } + ], + "source": [ + "print(\"Training mse = \",mse,\" & mae = \",mae,\" & rmse = \", sqrt(mse))" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
IdSalePrice
01461115729.328125
11462148874.625000
21463154782.968750
31464159385.453125
41465170496.734375
\n", + "
" + ], + "text/plain": [ + " Id SalePrice\n", + "0 1461 115729.328125\n", + "1 1462 148874.625000\n", + "2 1463 154782.968750\n", + "3 1464 159385.453125\n", + "4 1465 170496.734375" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Setup and save Tree prediction\n", + "\n", + "test_pred = model.predict(X_test.values) # Note that we need to feed our model the values or our dataframe X_test\n", + "predictions = np.c_[testId, test_pred] # Note that we take the argmax over the collumns to use our softmax output\n", + "submission = pd.DataFrame(predictions, columns = ['Id', 'SalePrice'])\n", + "submission['Id'] = submission['Id'].astype(int)\n", + "submission.to_csv(\"submissions/NNSubmission.csv\", index=False)\n", + "submission.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "# Import Ensemble prediction made from Tree/Forest models\n", + "\n", + "Ensemble_prediction = pd.read_csv(os.path.join('submissions', 'EnsembleSubmission.csv'))" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "# Average old ensemble with NN model\n", + "\n", + "Ensemble_prediction['NNSale'] = submission['SalePrice']\n", + "Ensemble_prediction['SalePrice'] = Ensemble_prediction[['SalePrice', 'NNSale']].mean(axis=1)\n", + "Ensemble_prediction = Ensemble_prediction.drop('NNSale', axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
IdSalePrice
01461120161.371094
11462152452.843750
21463162175.976562
31464167157.189844
41465174259.088281
\n", + "
" + ], + "text/plain": [ + " Id SalePrice\n", + "0 1461 120161.371094\n", + "1 1462 152452.843750\n", + "2 1463 162175.976562\n", + "3 1464 167157.189844\n", + "4 1465 174259.088281" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Ensemble_prediction.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [], + "source": [ + "Ensemble_prediction.to_csv('submissions/NNEnsembleSubmission.csv', index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/kaggle_house_prices/submissions/NNEnsembleSubmission.csv b/kaggle_house_prices/submissions/NNEnsembleSubmission.csv new file mode 100644 index 0000000..084efa1 --- /dev/null +++ b/kaggle_house_prices/submissions/NNEnsembleSubmission.csv @@ -0,0 +1,1460 @@ +Id,SalePrice +1461,120161.37109375 +1462,152452.84375 +1463,162175.9765625 +1464,167157.18984375 +1465,174259.08828125 +1466,158021.359375 +1467,157855.6640625 +1468,155100.40234375 +1469,161285.5625 +1470,114810.337890625 +1471,161382.5859375 +1472,99594.841796875 +1473,97237.826171875 +1474,118524.26953125 +1475,106638.974609375 +1476,375551.2390625 +1477,259562.578125 +1478,277088.67265625 +1479,288272.025 +1480,459101.7375 +1481,296958.3515625 +1482,211390.953125 +1483,173888.05859375 +1484,158823.19921875 +1485,178929.4609375 +1486,177177.47890625 +1487,325329.5953125 +1488,213694.59765625 +1489,198046.9578125 +1490,232393.5859375 +1491,189389.59765625 +1492,93840.947265625 +1493,172975.625 +1494,299614.6796875 +1495,261699.94921875 +1496,227912.36484375 +1497,169719.59765625 +1498,170861.8203125 +1499,164328.25234375 +1500,164499.9828125 +1501,177290.63671875 +1502,155370.95859375 +1503,226675.328125 +1504,244574.3078125 +1505,234679.59375 +1506,190428.796875 +1507,225873.9921875 +1508,188570.3515625 +1509,152154.890625 +1510,150659.3203125 +1511,140918.46875 +1512,159807.37890625 +1513,129491.392578125 +1514,139465.8828125 +1515,176114.22265625 +1516,138328.55859375 +1517,147065.9453125 +1518,129914.015625 +1519,215764.628125 +1520,130328.349609375 +1521,136336.15390625 +1522,171447.41796875 +1523,117648.96484375 +1524,120849.89453125 +1525,128627.763671875 +1526,109275.322265625 +1527,110094.841796875 +1528,131830.37109375 +1529,144004.9921875 +1530,181198.72265625 +1531,138908.3515625 +1532,91029.615234375 +1533,116747.548828125 +1534,111426.982421875 +1535,129595.291015625 +1536,107819.01953125 +1537,52659.4130859375 +1538,163256.31171875 +1539,162699.69921875 +1540,93923.27890625 +1541,122432.740234375 +1542,148431.12109375 +1543,180607.57578125 +1544,88307.7265625 +1545,104225.916015625 +1546,151880.26171875 +1547,131830.73828125 +1548,138615.9375 +1549,113797.654296875 +1550,132146.4375 +1551,97399.828125 +1552,151910.80859375 +1553,130252.14609375 +1554,128646.51953125 +1555,168537.47265625 +1556,88601.92578125 +1557,93380.50390625 +1558,106542.71875 +1559,70533.681640625 +1560,130425.152734375 +1561,118800.66875 +1562,124794.71875 +1563,128574.572265625 +1564,150453.82421875 +1565,165907.6640625 +1566,231832.7265625 +1567,77403.15625 +1568,219469.375 +1569,136860.421875 +1570,127621.4921875 +1571,113359.9375 +1572,138642.62109375 +1573,248222.5140625 +1574,123484.375 +1575,236888.7578125 +1576,228902.14765625 +1577,198101.57890625 +1578,133840.66796875 +1579,138696.92421875 +1580,188822.584375 +1581,138086.055078125 +1582,133672.078125 +1583,275700.4609375 +1584,218596.5140625 +1585,135252.78125 +1586,85635.73828125 +1587,106189.599609375 +1588,140485.46875 +1589,80615.353125 +1590,130981.125 +1591,99311.03828125 +1592,98575.171875 +1593,138379.41015625 +1594,106187.33046875 +1595,96456.138671875 +1596,259161.1015625 +1597,193982.125 +1598,203510.05078125 +1599,152753.875 +1600,141600.96875 +1601,85237.486328125 +1602,115824.954296875 +1603,72358.094921875 +1604,261640.25390625 +1605,222482.59375 +1606,152994.55859375 +1607,173547.1171875 +1608,216288.5859375 +1609,174878.765625 +1610,148021.69140625 +1611,141534.90625 +1612,187296.91796875 +1613,169478.25390625 +1614,118990.310546875 +1615,88009.544921875 +1616,83607.897265625 +1617,93278.177734375 +1618,142118.078125 +1619,138030.396484375 +1620,151030.22265625 +1621,133304.28125 +1622,137531.765625 +1623,252107.2265625 +1624,220540.01953125 +1625,105452.880859375 +1626,172203.98828125 +1627,189810.3203125 +1628,273249.2890625 +1629,177495.19140625 +1630,339913.9296875 +1631,228046.3828125 +1632,240480.69921875 +1633,173522.53359375 +1634,183525.4375 +1635,177894.0546875 +1636,147295.34375 +1637,183150.02734375 +1638,176503.1640625 +1639,175558.68359375 +1640,219542.8203125 +1641,178496.90234375 +1642,247752.53125 +1643,203665.09375 +1644,239656.37890625 +1645,209789.40625 +1646,173493.72265625 +1647,154780.609375 +1648,130407.296875 +1649,141228.6328125 +1650,119625.45390625 +1651,122507.033203125 +1652,103092.138671875 +1653,99803.40625 +1654,140181.37109375 +1655,143187.3359375 +1656,144524.68359375 +1657,148717.9921875 +1658,145432.1703125 +1659,127791.0171875 +1660,141914.3515625 +1661,430762.925 +1662,360000.5453125 +1663,360335.9 +1664,451640.8875 +1665,313473.0046875 +1666,329725.9859375 +1667,350757.3625 +1668,341104.471875 +1669,296375.26875 +1670,354358.0828125 +1671,263347.91015625 +1672,411600.509375 +1673,302809.9546875 +1674,245053.99609375 +1675,190407.125 +1676,194510.33984375 +1677,205803.92578125 +1678,444448.9171875 +1679,385902.06875 +1680,326390.7109375 +1681,247745.05078125 +1682,335462.8703125 +1683,188617.828125 +1684,174813.58203125 +1685,171680.33984375 +1686,173294.5828125 +1687,149222.85546875 +1688,198565.31875 +1689,189054.23828125 +1690,200950.26953125 +1691,191348.546875 +1692,263075.1171875 +1693,167143.44140625 +1694,180495.91796875 +1695,160808.16640625 +1696,234999.98046875 +1697,160286.15234375 +1698,356595.7640625 +1699,315069.203125 +1700,266339.7109375 +1701,265940.890625 +1702,241008.47890625 +1703,222724.94140625 +1704,275160.61875 +1705,249591.24375 +1706,248559.4 +1707,237539.64375 +1708,213333.30078125 +1709,272187.0 +1710,233742.8359375 +1711,273466.546875 +1712,264742.2421875 +1713,278565.2546875 +1714,219312.61328125 +1715,217695.0359375 +1716,174686.7265625 +1717,166625.5390625 +1718,121965.45703125 +1719,225804.76953125 +1720,228757.25546875 +1721,145179.959375 +1722,121633.720703125 +1723,153304.05078125 +1724,203779.559375 +1725,251609.7203125 +1726,175980.82421875 +1727,170458.0703125 +1728,165169.359375 +1729,162283.19140625 +1730,140489.196875 +1731,118545.607421875 +1732,136046.48984375 +1733,122875.021484375 +1734,98827.619140625 +1735,129815.548828125 +1736,115121.265625 +1737,283512.0390625 +1738,262781.209375 +1739,236856.75390625 +1740,228491.86875 +1741,182534.0171875 +1742,176052.01171875 +1743,175534.5703125 +1744,375673.0234375 +1745,223909.8359375 +1746,185801.4921875 +1747,208158.71484375 +1748,241165.203125 +1749,158051.59765625 +1750,113039.404296875 +1751,234314.66796875 +1752,114665.087890625 +1753,154325.4140625 +1754,196153.546875 +1755,165009.35546875 +1756,142007.75390625 +1757,134027.6578125 +1758,156245.34765625 +1759,153993.66796875 +1760,172121.11328125 +1761,141334.94140625 +1762,171422.7734375 +1763,186793.20703125 +1764,138621.18359375 +1765,132593.00625 +1766,190789.8359375 +1767,209131.73828125 +1768,141754.70703125 +1769,162190.921875 +1770,142063.0390625 +1771,128160.107421875 +1772,119178.822265625 +1773,129544.48828125 +1774,128737.6484375 +1775,150903.92578125 +1776,133181.9453125 +1777,123317.892578125 +1778,140027.35390625 +1779,133042.234375 +1780,165138.70703125 +1781,135363.9140625 +1782,94648.12890625 +1783,149021.953125 +1784,111061.740234375 +1785,118291.431640625 +1786,165090.096875 +1787,161648.83984375 +1788,59257.400390625 +1789,79752.33203125 +1790,106876.361328125 +1791,202609.65625 +1792,156086.69921875 +1793,97943.9296875 +1794,147295.3671875 +1795,134062.11328125 +1796,133877.505859375 +1797,102838.30859375 +1798,134600.55078125 +1799,136048.37109375 +1800,114715.236328125 +1801,133200.2578125 +1802,122823.302734375 +1803,153981.88671875 +1804,125366.598046875 +1805,144216.140625 +1806,113575.725 +1807,137066.97578125 +1808,120152.130859375 +1809,114743.091796875 +1810,128821.357421875 +1811,75848.138671875 +1812,89581.544921875 +1813,131997.4359375 +1814,91598.984375 +1815,63655.67578125 +1816,113054.11328125 +1817,112614.255859375 +1818,170539.60390625 +1819,140984.40625 +1820,47593.2275390625 +1821,99482.93359375 +1822,153507.48046875 +1823,41209.70517578125 +1824,108781.228515625 +1825,139308.91796875 +1826,125221.796875 +1827,105807.2890625 +1828,141229.1484375 +1829,113623.611328125 +1830,129865.00390625 +1831,124758.369140625 +1832,119198.94921875 +1833,126857.529296875 +1834,145838.98046875 +1835,110270.85234375 +1836,121106.208984375 +1837,83922.318359375 +1838,126985.08203125 +1839,113688.078125 +1840,177113.03125 +1841,123095.51171875 +1842,103961.3359375 +1843,139654.32421875 +1844,150125.59375 +1845,145972.51171875 +1846,153056.66796875 +1847,180232.0234375 +1848,57649.1015625 +1849,84746.2265625 +1850,120750.58203125 +1851,138515.61328125 +1852,142380.9375 +1853,118293.867578125 +1854,135021.888671875 +1855,142223.65859375 +1856,235298.78125 +1857,125017.9765625 +1858,132290.4828125 +1859,105527.723828125 +1860,158042.59375 +1861,105251.99921875 +1862,328292.0 +1863,309924.28125 +1864,309952.3125 +1865,369583.209375 +1866,349669.46875 +1867,218601.59765625 +1868,292581.265625 +1869,211134.29140625 +1870,222880.61328125 +1871,276921.815625 +1872,177440.94921875 +1873,248700.7890625 +1874,134516.751953125 +1875,181034.84765625 +1876,196583.2421875 +1877,209816.17578125 +1878,206116.79296875 +1879,111077.89453125 +1880,130852.44140625 +1881,249940.34375 +1882,238009.9015625 +1883,183971.9375 +1884,198235.54296875 +1885,211628.4234375 +1886,285082.609375 +1887,207664.40234375 +1888,262024.34375 +1889,184715.27734375 +1890,127939.098828125 +1891,143314.17578125 +1892,92434.9875 +1893,114080.482421875 +1894,130744.544921875 +1895,132601.947265625 +1896,132346.98828125 +1897,133544.928125 +1898,124139.009765625 +1899,171567.75546875 +1900,163743.39453125 +1901,208805.74921875 +1902,151728.1484375 +1903,235248.559375 +1904,155077.19921875 +1905,194002.7265625 +1906,84585.205078125 +1907,214205.7421875 +1908,111191.13671875 +1909,130362.56640625 +1910,122171.299609375 +1911,199196.953125 +1912,300897.6875 +1913,136917.7109375 +1914,66510.42578125 +1915,380675.584375 +1916,59698.9755859375 +1917,221981.2265625 +1918,136533.33984375 +1919,164410.35546875 +1920,136378.349609375 +1921,375791.4765625 +1922,342850.2625 +1923,218194.0625 +1924,239775.9375 +1925,195812.9140625 +1926,375521.36875 +1927,130401.3515625 +1928,154935.69921875 +1929,117591.95703125 +1930,121932.48828125 +1931,124022.669921875 +1932,117914.873046875 +1933,205833.7421875 +1934,154815.44921875 +1935,173593.625 +1936,186689.05078125 +1937,189414.57421875 +1938,150099.515625 +1939,235747.5 +1940,175937.1328125 +1941,171657.53125 +1942,181463.28125 +1943,217807.9984375 +1944,417226.9859375 +1945,422818.6296875 +1946,117181.384765625 +1947,230911.1875 +1948,142102.546875 +1949,223024.52734375 +1950,148476.2734375 +1951,263639.2578125 +1952,210818.0234375 +1953,176354.99609375 +1954,171803.31640625 +1955,117658.9140625 +1956,281150.94375 +1957,145273.6171875 +1958,281998.5 +1959,126259.076171875 +1960,120437.20703125 +1961,124191.646484375 +1962,101225.560546875 +1963,104689.125 +1964,109252.205078125 +1965,146524.8515625 +1966,128336.3984375 +1967,314275.4359375 +1968,436618.2625 +1969,388643.9796875 +1970,419105.8015625 +1971,428975.91875 +1972,365370.0421875 +1973,294282.3671875 +1974,349899.2984375 +1975,461548.4984375 +1976,279686.8140625 +1977,381529.3203125 +1978,363737.6421875 +1979,318106.4546875 +1980,188184.5390625 +1981,358580.203125 +1982,209603.1953125 +1983,195443.4765625 +1984,156583.890625 +1985,223235.8765625 +1986,197626.2515625 +1987,177725.32265625 +1988,173972.00390625 +1989,183576.98515625 +1990,219488.77578125 +1991,222866.2203125 +1992,218145.34765625 +1993,176353.5390625 +1994,209101.64921875 +1995,178638.3984375 +1996,276045.15625 +1997,326645.578125 +1998,314271.703125 +1999,338747.3125 +2000,315092.0609375 +2001,289006.59375 +2002,236939.7640625 +2003,262817.7109375 +2004,279665.9546875 +2005,214352.284375 +2006,221477.56328125 +2007,251332.203125 +2008,215138.08203125 +2009,208504.67578125 +2010,185831.08203125 +2011,127804.748046875 +2012,173317.88671875 +2013,186453.7734375 +2014,186466.51953125 +2015,212460.77734375 +2016,198694.0390625 +2017,197635.47265625 +2018,128369.3671875 +2019,143714.06640625 +2020,101682.201171875 +2021,124601.65234375 +2022,217298.3828125 +2023,136010.70703125 +2024,273056.03125 +2025,357351.65625 +2026,170411.78515625 +2027,169637.84375 +2028,150973.0296875 +2029,170312.23828125 +2030,239136.39453125 +2031,201767.321875 +2032,225302.47421875 +2033,227753.45703125 +2034,172928.08203125 +2035,214800.66796875 +2036,205244.01796875 +2037,220569.95703125 +2038,272826.2734375 +2039,242172.046875 +2040,301882.1796875 +2041,305640.890625 +2042,205066.3203125 +2043,166819.625 +2044,162242.94140625 +2045,194812.3203125 +2046,161703.625 +2047,136560.390625 +2048,128864.617578125 +2049,139186.33203125 +2050,164837.26953125 +2051,100038.221484375 +2052,121206.568359375 +2053,144956.80859375 +2054,109108.330078125 +2055,126762.79296875 +2056,140323.3984375 +2057,119736.42578125 +2058,201761.6015625 +2059,146682.33203125 +2060,154171.5140625 +2061,152525.3734375 +2062,129913.111328125 +2063,115606.177734375 +2064,136461.390625 +2065,110308.403125 +2066,151927.85546875 +2067,95871.9765625 +2068,145567.52734375 +2069,80932.873046875 +2070,101991.87890625 +2071,107873.34765625 +2072,126345.919921875 +2073,137232.02734375 +2074,182543.9609375 +2075,139412.9375 +2076,115259.064453125 +2077,131717.783203125 +2078,126023.36875 +2079,118512.630859375 +2080,127978.421875 +2081,123666.5078125 +2082,120909.7890625 +2083,138767.49609375 +2084,123488.4609375 +2085,132420.48828125 +2086,93824.48828125 +2087,116276.037109375 +2088,76687.201171875 +2089,91968.46484375 +2090,122470.176171875 +2091,114902.233203125 +2092,125272.41015625 +2093,98766.223046875 +2094,105466.810546875 +2095,157232.27734375 +2096,95067.09765625 +2097,94336.943359375 +2098,141412.15234375 +2099,72479.330078125 +2100,66782.5361328125 +2101,118236.744140625 +2102,127811.703125 +2103,112609.196875 +2104,125615.674609375 +2105,122925.330078125 +2106,63971.7470703125 +2107,188662.08125 +2108,101715.93359375 +2109,114986.171875 +2110,103193.15625 +2111,123532.58203125 +2112,140165.1328125 +2113,137742.1640625 +2114,137581.99609375 +2115,152455.57421875 +2116,117464.400390625 +2117,143679.62890625 +2118,126959.02734375 +2119,124667.16015625 +2120,110682.45703125 +2121,98012.176171875 +2122,130257.0703125 +2123,85158.953125 +2124,156910.73203125 +2125,121643.860546875 +2126,158184.1875 +2127,150396.48046875 +2128,117378.330078125 +2129,105744.224609375 +2130,129582.18125 +2131,146954.14453125 +2132,104621.8359375 +2133,122440.5546875 +2134,126944.7578125 +2135,114323.52734375 +2136,104006.883203125 +2137,93725.63828125 +2138,122152.943359375 +2139,142156.296875 +2140,137816.99609375 +2141,164652.5078125 +2142,128520.20703125 +2143,145710.95703125 +2144,100943.978125 +2145,135725.49609375 +2146,173768.10703125 +2147,156980.43046875 +2148,132850.551953125 +2149,152116.9609375 +2150,249021.1796875 +2151,117067.458984375 +2152,138839.822265625 +2153,167769.76953125 +2154,91504.548828125 +2155,123310.865625 +2156,246723.81640625 +2157,219115.15625 +2158,250068.9734375 +2159,197027.62109375 +2160,173986.625 +2161,227600.3234375 +2162,375764.475 +2163,363903.29375 +2164,256947.2875 +2165,219854.3046875 +2166,148046.20703125 +2167,218440.3671875 +2168,202007.28125 +2169,206205.8671875 +2170,209625.771875 +2171,143040.26171875 +2172,125766.234375 +2173,159613.85546875 +2174,221671.41796875 +2175,289742.6578125 +2176,314192.15625 +2177,243787.3671875 +2178,201974.90234375 +2179,137247.44140625 +2180,194060.52734375 +2181,190776.52578125 +2182,230940.3828125 +2183,197059.69140625 +2184,123821.025390625 +2185,105479.888671875 +2186,124222.376953125 +2187,145819.8046875 +2188,139856.59375 +2189,269035.6328125 +2190,69902.37109375 +2191,90462.461328125 +2192,110227.73828125 +2193,105455.98671875 +2194,95193.044921875 +2195,111590.33203125 +2196,113480.13203125 +2197,124278.171875 +2198,143813.7109375 +2199,172002.6484375 +2200,166924.41015625 +2201,148746.11328125 +2202,222819.4765625 +2203,153070.425 +2204,191152.125 +2205,127531.0109375 +2206,132898.70703125 +2207,222664.52734375 +2208,265371.90625 +2209,248754.1875 +2210,125054.7421875 +2211,122113.07421875 +2212,123333.568359375 +2213,104763.474609375 +2214,99173.40234375 +2215,110560.71484375 +2216,142016.125 +2217,68020.8544921875 +2218,78864.2625 +2219,67444.036328125 +2220,90147.57421875 +2221,384357.1 +2222,299450.46875 +2223,276423.0390625 +2224,195186.16015625 +2225,106875.9765625 +2226,166301.94921875 +2227,174771.671875 +2228,289546.409375 +2229,239364.490625 +2230,140532.3203125 +2231,208943.5765625 +2232,168632.81640625 +2233,191385.33203125 +2234,244315.4296875 +2235,222077.88984375 +2236,238532.58984375 +2237,303683.8765625 +2238,218652.234375 +2239,113604.66875 +2240,150259.23046875 +2241,159651.67578125 +2242,114599.810546875 +2243,121276.234375 +2244,104005.80859375 +2245,102693.654296875 +2246,136127.27734375 +2247,109831.298828125 +2248,122394.833984375 +2249,120582.09375 +2250,132509.609375 +2251,104561.8890625 +2252,168657.01953125 +2253,156480.15234375 +2254,189035.65625 +2255,172576.9921875 +2256,168587.328125 +2257,208551.953125 +2258,159161.65234375 +2259,176125.8203125 +2260,150155.40625 +2261,187072.48046875 +2262,203851.75 +2263,411317.7453125 +2264,481176.853125 +2265,166512.590625 +2266,330553.671875 +2267,377169.775 +2268,414386.365625 +2269,153028.578125 +2270,192428.45703125 +2271,200985.5703125 +2272,244389.1953125 +2273,154465.0234375 +2274,175767.52734375 +2275,190169.84375 +2276,201334.60546875 +2277,185821.13671875 +2278,142190.26171875 +2279,130970.234765625 +2280,115467.666015625 +2281,162907.2578125 +2282,173286.93359375 +2283,116625.77734375 +2284,120162.005859375 +2285,139419.3515625 +2286,131463.17578125 +2287,430529.3765625 +2288,274034.1703125 +2289,362147.390625 +2290,461255.5953125 +2291,355965.6078125 +2292,425640.384375 +2293,522634.275 +2294,417741.75 +2295,483420.6375 +2296,264781.7359375 +2297,399725.0015625 +2298,383204.096875 +2299,350314.846875 +2300,330358.703125 +2301,339782.7875 +2302,254166.2390625 +2303,234794.1875 +2304,247544.41015625 +2305,185653.50859375 +2306,177858.03515625 +2307,187224.609375 +2308,264341.2421875 +2309,287919.6796875 +2310,215322.04609375 +2311,189164.3203125 +2312,171916.43984375 +2313,173384.83203125 +2314,165563.9359375 +2315,166569.090625 +2316,171082.20546875 +2317,192306.846875 +2318,160598.5296875 +2319,170684.11171875 +2320,167892.10234375 +2321,235005.3265625 +2322,177381.28984375 +2323,183474.0625 +2324,191003.640625 +2325,182021.18125 +2326,174718.80546875 +2327,201860.6984375 +2328,225208.57421875 +2329,185324.765625 +2330,173301.12890625 +2331,368489.3703125 +2332,411440.375 +2333,333476.90625 +2334,272066.7578125 +2335,303387.0703125 +2336,321056.078125 +2337,176823.98828125 +2338,222742.39296875 +2339,211300.96875 +2340,384166.2296875 +2341,194180.8828125 +2342,229222.28125 +2343,225418.946875 +2344,202841.83203125 +2345,227917.78515625 +2346,214834.21484375 +2347,202770.40234375 +2348,243405.82421875 +2349,183450.4375 +2350,324222.7578125 +2351,266684.78125 +2352,242498.74765625 +2353,261490.84375 +2354,129871.34765625 +2355,133235.73046875 +2356,155548.03125 +2357,191608.33984375 +2358,196253.57421875 +2359,124855.48828125 +2360,123596.248046875 +2361,150159.7265625 +2362,250906.03515625 +2363,136887.0625 +2364,156428.21484375 +2365,191188.609375 +2366,200975.49296875 +2367,223096.0921875 +2368,209442.57578125 +2369,221247.58828125 +2370,186829.4296875 +2371,184193.0078125 +2372,189115.5546875 +2373,266183.3359375 +2374,314645.703125 +2375,236713.0390625 +2376,309544.984375 +2377,328209.421875 +2378,177954.15234375 +2379,227543.48828125 +2380,150427.75 +2381,172898.69140625 +2382,206800.6171875 +2383,188091.6328125 +2384,237575.90234375 +2385,171344.0234375 +2386,137044.71875 +2387,138637.21484375 +2388,100130.123828125 +2389,137169.09375 +2390,170303.6484375 +2391,143349.86328125 +2392,126482.04296875 +2393,181164.34375 +2394,141520.4609375 +2395,201530.73828125 +2396,147260.25 +2397,192818.41015625 +2398,126967.69140625 +2399,71752.740234375 +2400,88116.18359375 +2401,135245.2421875 +2402,139081.44140625 +2403,140982.4609375 +2404,150457.03515625 +2405,160248.65625 +2406,134751.90234375 +2407,127025.3046875 +2408,144127.55859375 +2409,132376.36328125 +2410,177253.421875 +2411,127290.294921875 +2412,143784.10546875 +2413,133232.859375 +2414,159447.86484375 +2415,128063.23828125 +2416,122496.37890625 +2417,150459.296875 +2418,144605.09765625 +2419,126995.029296875 +2420,146554.93359375 +2421,146942.30859375 +2422,112279.611328125 +2423,115745.521484375 +2424,144138.07421875 +2425,185091.37109375 +2426,130220.9296875 +2427,123543.99609375 +2428,182393.18359375 +2429,133153.8203125 +2430,137839.6875 +2431,126065.638671875 +2432,147423.1171875 +2433,156699.21875 +2434,136657.46484375 +2435,151267.77890625 +2436,117845.833984375 +2437,129385.59375 +2438,130937.32421875 +2439,107895.029296875 +2440,120378.351171875 +2441,75613.8046875 +2442,109233.962890625 +2443,121771.830078125 +2444,144591.6328125 +2445,105779.748046875 +2446,138956.27734375 +2447,167390.02734375 +2448,139224.59765625 +2449,119751.669921875 +2450,146026.56640625 +2451,126476.6875 +2452,205798.0859375 +2453,103335.7109375 +2454,113150.279296875 +2455,106755.384765625 +2456,129332.25703125 +2457,164025.8203125 +2458,145217.7890625 +2459,121940.535546875 +2460,131929.5859375 +2461,144438.02578125 +2462,128282.453125 +2463,130436.62890625 +2464,178723.80078125 +2465,151863.99765625 +2466,134914.61328125 +2467,134576.476171875 +2468,99203.8703125 +2469,96988.8625 +2470,195825.30078125 +2471,211063.6484375 +2472,152827.2421875 +2473,114842.05859375 +2474,85490.421875 +2475,189217.77734375 +2476,119752.946875 +2477,133064.97734375 +2478,155093.6171875 +2479,118654.453125 +2480,171551.56640625 +2481,140025.46875 +2482,139194.5390625 +2483,134232.4609375 +2484,125636.642578125 +2485,146516.4 +2486,175307.56640625 +2487,184898.98359375 +2488,159944.78125 +2489,141202.03515625 +2490,150663.13671875 +2491,87185.2890625 +2492,203876.875 +2493,167813.2109375 +2494,128577.962890625 +2495,89775.51171875 +2496,253732.68359375 +2497,138133.19140625 +2498,122743.98046875 +2499,92458.779296875 +2500,133902.65234375 +2501,137136.34765625 +2502,125561.119140625 +2503,88352.951171875 +2504,210600.921875 +2505,278757.1796875 +2506,244129.16796875 +2507,259040.6515625 +2508,241788.35 +2509,223466.09375 +2510,218734.54765625 +2511,174020.50234375 +2512,210151.33203125 +2513,221922.70078125 +2514,277104.90625 +2515,159674.6015625 +2516,179563.86328125 +2517,154566.17578125 +2518,153765.49609375 +2519,249590.69140625 +2520,226987.146875 +2521,188003.12890625 +2522,228482.64453125 +2523,119880.197265625 +2524,137063.6390625 +2525,132162.537109375 +2526,141012.1875 +2527,131750.515625 +2528,147392.1640625 +2529,149422.96484375 +2530,135516.65625 +2531,241598.0921875 +2532,229653.37109375 +2533,204567.60546875 +2534,234345.625 +2535,274539.7 +2536,234428.7109375 +2537,241541.2984375 +2538,175647.69140625 +2539,183081.87109375 +2540,175981.375 +2541,184536.33203125 +2542,174762.3359375 +2543,124883.12109375 +2544,121009.39453125 +2545,128330.694921875 +2546,135094.21875 +2547,123332.96484375 +2548,137357.596875 +2549,161065.8671875 +2550,596212.421875 +2551,145292.86328125 +2552,132264.10546875 +2553,87937.8125 +2554,109816.183984375 +2555,129207.63671875 +2556,123447.42578125 +2557,116155.869140625 +2558,138139.26015625 +2559,148690.93359375 +2560,177275.99609375 +2561,163273.99609375 +2562,161057.23984375 +2563,160501.39453125 +2564,208830.828125 +2565,154610.0 +2566,173833.58984375 +2567,133210.2578125 +2568,238023.721875 +2569,265960.9609375 +2570,129744.77734375 +2571,206321.703125 +2572,138152.59375 +2573,226080.64453125 +2574,237024.48046875 +2575,141626.25390625 +2576,105407.78125 +2577,148823.5234375 +2578,108420.232421875 +2579,87971.806640625 +2580,93219.465625 +2581,107261.560546875 +2582,114594.8828125 +2583,300500.0640625 +2584,155302.32421875 +2585,205405.18125 +2586,201022.41796875 +2587,180871.54296875 +2588,133530.86328125 +2589,154682.35546875 +2590,193478.88203125 +2591,243610.54296875 +2592,203868.225 +2593,280609.6359375 +2594,177825.75 +2595,199252.2890625 +2596,282182.446875 +2597,194477.27578125 +2598,307606.4078125 +2599,352352.8265625 +2600,149845.11875 +2601,146107.4296875 +2602,97523.189453125 +2603,110113.0703125 +2604,100343.40625 +2605,96820.103515625 +2606,155476.83203125 +2607,238716.2109375 +2608,200381.83984375 +2609,169158.38671875 +2610,112395.102734375 +2611,145638.35546875 +2612,167753.33984375 +2613,135624.2578125 +2614,132188.15625 +2615,147737.78125 +2616,155106.5625 +2617,191801.234375 +2618,185568.171875 +2619,208928.66015625 +2620,177018.30859375 +2621,184719.01953125 +2622,182299.04296875 +2623,243684.17578125 +2624,323557.6078125 +2625,301678.3515625 +2626,185050.09765625 +2627,152893.87109375 +2628,540792.9375 +2629,530094.45 +2630,443486.7515625 +2631,503823.3734375 +2632,441208.6640625 +2633,332877.4765625 +2634,429929.6609375 +2635,161120.96484375 +2636,207845.95703125 +2637,179848.3671875 +2638,256369.1328125 +2639,175797.4609375 +2640,150878.21484375 +2641,131399.27734375 +2642,183108.72265625 +2643,118378.34453125 +2644,132654.484375 +2645,128034.0234375 +2646,119456.388671875 +2647,119720.640625 +2648,155093.33203125 +2649,149689.7671875 +2650,144470.9546875 +2651,155781.17578125 +2652,414219.6234375 +2653,256776.83515625 +2654,290878.346875 +2655,424813.2296875 +2656,338524.40625 +2657,366504.5171875 +2658,325040.71875 +2659,341551.5546875 +2660,385080.259375 +2661,394818.2421875 +2662,400579.634375 +2663,286611.8171875 +2664,292769.8046875 +2665,327131.303125 +2666,299363.5171875 +2667,179453.34140625 +2668,179538.93359375 +2669,170335.30234375 +2670,261871.625 +2671,176428.26171875 +2672,193020.62890625 +2673,197544.21875 +2674,204854.48203125 +2675,195791.5296875 +2676,186897.6140625 +2677,192395.88671875 +2678,227356.1015625 +2679,297685.2984375 +2680,299788.7421875 +2681,405742.321875 +2682,332563.7 +2683,505824.09375 +2684,344733.296875 +2685,359928.53125 +2686,234054.32109375 +2687,296114.39375 +2688,203924.96328125 +2689,207548.57421875 +2690,389761.7796875 +2691,211405.27734375 +2692,133209.0625 +2693,194360.0234375 +2694,140668.8203125 +2695,212600.875 +2696,201734.41796875 +2697,186624.7734375 +2698,191161.1484375 +2699,172078.26171875 +2700,160189.8828125 +2701,159798.734375 +2702,135334.66015625 +2703,116483.845703125 +2704,152970.09140625 +2705,136709.321875 +2706,134874.62109375 +2707,133297.57421875 +2708,149202.1484375 +2709,112273.213671875 +2710,134475.17578125 +2711,357468.9609375 +2712,465969.85 +2713,172419.22109375 +2714,173902.58828125 +2715,192758.8203125 +2716,167938.884375 +2717,213240.63671875 +2718,229464.2734375 +2719,178238.91796875 +2720,180637.0625 +2721,148562.02734375 +2722,156595.90625 +2723,156410.54921875 +2724,138665.7890625 +2725,146160.16796875 +2726,152350.08984375 +2727,160897.9109375 +2728,185093.40625 +2729,162615.86328125 +2730,154382.234375 +2731,148635.62578125 +2732,152885.6875 +2733,162649.01953125 +2734,149465.5234375 +2735,136458.83203125 +2736,146232.296875 +2737,136428.671875 +2738,141254.9609375 +2739,156487.359375 +2740,150558.8984375 +2741,154138.19140625 +2742,175174.19921875 +2743,181354.9140625 +2744,164539.80078125 +2745,158168.1796875 +2746,145339.3984375 +2747,160479.48828125 +2748,135109.93359375 +2749,143485.08984375 +2750,134367.27734375 +2751,149718.6796875 +2752,192066.46875 +2753,160527.0078125 +2754,202699.28046875 +2755,134861.55078125 +2756,124237.439453125 +2757,116766.354296875 +2758,117935.626953125 +2759,177810.446875 +2760,136214.953125 +2761,156281.15234375 +2762,149553.0546875 +2763,212297.7890625 +2764,168597.49609375 +2765,251653.2109375 +2766,128039.4046875 +2767,86939.984375 +2768,131961.65625 +2769,142981.96875 +2770,142627.43359375 +2771,138262.82421875 +2772,126693.3203125 +2773,210870.5546875 +2774,135298.3515625 +2775,116106.248828125 +2776,151177.43359375 +2777,137768.2265625 +2778,114106.85546875 +2779,143819.65234375 +2780,109687.724609375 +2781,111873.2734375 +2782,123228.206640625 +2783,124086.677734375 +2784,128194.259765625 +2785,162064.7421875 +2786,99447.55859375 +2787,122234.861328125 +2788,102186.567578125 +2789,177263.09765625 +2790,122195.595703125 +2791,128412.1765625 +2792,87995.072265625 +2793,126786.2890625 +2794,109620.43671875 +2795,138404.83984375 +2796,115852.265234375 +2797,179458.49609375 +2798,134689.32421875 +2799,123116.34375 +2800,94092.970703125 +2801,125686.47265625 +2802,139498.31640625 +2803,177448.33203125 +2804,130254.24609375 +2805,109317.109375 +2806,110796.581640625 +2807,180413.59375 +2808,169681.9765625 +2809,136480.53125 +2810,150383.046875 +2811,170572.23046875 +2812,188734.1875 +2813,176807.6640625 +2814,176167.9140625 +2815,86427.328125 +2816,232709.38671875 +2817,192352.3359375 +2818,147604.334375 +2819,189644.26171875 +2820,148906.23046875 +2821,114965.510546875 +2822,175533.83203125 +2823,285216.434375 +2824,191482.4578125 +2825,149537.96875 +2826,149677.67578125 +2827,137911.953125 +2828,219940.375 +2829,213620.803125 +2830,226439.6515625 +2831,187132.49609375 +2832,244419.921875 +2833,309530.5609375 +2834,228185.03125 +2835,240558.03515625 +2836,209653.30859375 +2837,190230.12109375 +2838,159205.98046875 +2839,199735.23828125 +2840,210193.703125 +2841,212320.015625 +2842,240185.5171875 +2843,155060.6484375 +2844,164528.47265625 +2845,129657.04296875 +2846,219077.890625 +2847,224796.12890625 +2848,195878.19375 +2849,216522.828125 +2850,272121.7828125 +2851,215991.95703125 +2852,242813.19921875 +2853,260059.9140625 +2854,154587.6484375 +2855,214628.47109375 +2856,193870.60859375 +2857,197845.203125 +2858,198043.5703125 +2859,137682.79296875 +2860,144162.28515625 +2861,132808.27734375 +2862,193113.921875 +2863,148883.28125 +2864,270476.225 +2865,146389.83203125 +2866,153590.86328125 +2867,123950.4765625 +2868,102475.330078125 +2869,124565.41015625 +2870,137276.85546875 +2871,97850.5234375 +2872,97429.703125 +2873,118235.990625 +2874,150723.3828125 +2875,133582.171875 +2876,174443.996875 +2877,160089.8921875 +2878,168291.48359375 +2879,135962.4296875 +2880,117344.93359375 +2881,159680.703125 +2882,213254.33984375 +2883,205053.82421875 +2884,199914.3515625 +2885,179872.809375 +2886,306427.5625 +2887,120605.546875 +2888,152377.8828125 +2889,89333.85546875 +2890,121079.2203125 +2891,155076.08203125 +2892,75617.1796875 +2893,89196.171875 +2894,87768.748046875 +2895,360934.4 +2896,290853.6171875 +2897,211561.796875 +2898,163214.59375 +2899,220754.08203125 +2900,175309.7578125 +2901,228104.4921875 +2902,214070.31640625 +2903,332939.709375 +2904,362173.4453125 +2905,92952.974609375 +2906,213437.31640625 +2907,132055.41015625 +2908,150813.0703125 +2909,169701.41796875 +2910,103054.671875 +2911,109504.7265625 +2912,161340.609375 +2913,110745.81640625 +2914,104863.45703125 +2915,108238.109375 +2916,113582.948046875 +2917,174986.57421875 +2918,120612.421875 +2919,225461.78125 diff --git a/kaggle_house_prices/submissions/NNSubmission.csv b/kaggle_house_prices/submissions/NNSubmission.csv new file mode 100644 index 0000000..ee5381b --- /dev/null +++ b/kaggle_house_prices/submissions/NNSubmission.csv @@ -0,0 +1,1460 @@ +Id,SalePrice +1461,115729.328125 +1462,148874.625 +1463,154782.96875 +1464,159385.453125 +1465,170496.734375 +1466,150260.5625 +1467,153974.21875 +1468,147497.203125 +1469,155860.75 +1470,112234.6171875 +1471,153246.78125 +1472,97864.7890625 +1473,92719.6015625 +1474,109432.359375 +1475,94331.1328125 +1476,342926.84375 +1477,265000.4375 +1478,253412.921875 +1479,282433.5 +1480,438504.875 +1481,295423.71875 +1482,208698.0625 +1483,171351.703125 +1484,148791.765625 +1485,176869.28125 +1486,176276.046875 +1487,313917.96875 +1488,207657.796875 +1489,187157.59375 +1490,237040.15625 +1491,182045.421875 +1492,93462.9296875 +1493,153038.75 +1494,305567.90625 +1495,255225.765625 +1496,231629.828125 +1497,165105.046875 +1498,172711.59375 +1499,163269.703125 +1500,163265.84375 +1501,175825.015625 +1502,144582.703125 +1503,218989.0625 +1504,246609.96875 +1505,238228.625 +1506,187475.3125 +1507,237584.90625 +1508,186650.46875 +1509,158948.1875 +1510,147496.59375 +1511,136929.625 +1512,154018.171875 +1513,124563.5234375 +1514,141563.46875 +1515,183986.046875 +1516,139928.078125 +1517,143929.59375 +1518,126686.1875 +1519,210845.6875 +1520,127603.6328125 +1521,133467.171875 +1522,174929.890625 +1523,116184.453125 +1524,118014.859375 +1525,130372.8515625 +1526,109060.4296875 +1527,104887.2890625 +1528,133813.828125 +1529,146121.65625 +1530,175120.796875 +1531,134253.21875 +1532,87035.3203125 +1533,113212.1484375 +1534,110295.9765625 +1535,129714.5546875 +1536,111765.359375 +1537,42460.05078125 +1538,159996.640625 +1539,160196.265625 +1540,97557.046875 +1541,121228.4453125 +1542,150339.828125 +1543,167894.484375 +1544,84241.96875 +1545,106840.8046875 +1546,156977.015625 +1547,136195.984375 +1548,144365.0 +1549,106881.0390625 +1550,133885.25 +1551,96563.9375 +1552,157952.328125 +1553,131947.953125 +1554,130278.484375 +1555,166420.796875 +1556,86096.734375 +1557,89770.671875 +1558,99841.125 +1559,60518.2421875 +1560,125859.6953125 +1561,121735.125 +1562,123038.125 +1563,128183.8046875 +1564,149405.515625 +1565,167597.71875 +1566,212251.96875 +1567,70738.375 +1568,212255.0 +1569,136148.0625 +1570,123216.15625 +1571,114225.75 +1572,141835.578125 +1573,246831.96875 +1574,120587.5 +1575,215063.34375 +1576,221184.046875 +1577,193984.296875 +1578,132335.890625 +1579,136071.265625 +1580,193709.3125 +1581,129386.7734375 +1582,134490.6875 +1583,273595.28125 +1584,220544.21875 +1585,133102.875 +1586,85535.984375 +1587,97433.6328125 +1588,136868.125 +1589,77732.6875 +1590,134296.5 +1591,100101.109375 +1592,90118.5625 +1593,143625.046875 +1594,108855.640625 +1595,98994.8515625 +1596,242945.21875 +1597,204547.0 +1598,205876.734375 +1599,148307.25 +1600,138545.875 +1601,81310.3984375 +1602,114142.1640625 +1603,67429.2265625 +1604,254003.671875 +1605,225822.625 +1606,155367.078125 +1607,177921.15625 +1608,216908.78125 +1609,166767.9375 +1610,141006.421875 +1611,140647.375 +1612,185432.140625 +1613,170782.671875 +1614,113972.9140625 +1615,84750.2265625 +1616,80947.9296875 +1617,95762.5703125 +1618,146095.9375 +1619,131037.1953125 +1620,146880.296875 +1621,131394.875 +1622,132125.6875 +1623,251682.96875 +1624,218111.609375 +1625,96550.5078125 +1626,170274.484375 +1627,189787.09375 +1628,277581.09375 +1629,181389.421875 +1630,353854.15625 +1631,230931.84375 +1632,240714.265625 +1633,176145.078125 +1634,182301.25 +1635,176300.40625 +1636,142737.125 +1637,182084.203125 +1638,167356.71875 +1639,175111.578125 +1640,218949.59375 +1641,176699.203125 +1642,250723.625 +1643,204072.625 +1644,246785.171875 +1645,215499.625 +1646,171543.296875 +1647,153490.8125 +1648,128564.3125 +1649,139557.34375 +1650,121427.046875 +1651,125213.9609375 +1652,101860.3515625 +1653,100090.375 +1654,139094.328125 +1655,143842.28125 +1656,144563.078125 +1657,150615.65625 +1658,146676.59375 +1659,133552.40625 +1660,132156.21875 +1661,402309.5 +1662,366016.96875 +1663,367642.0 +1664,430579.875 +1665,309565.15625 +1666,313268.40625 +1667,340702.25 +1668,347580.3125 +1669,296990.5 +1670,359415.71875 +1671,259301.796875 +1672,414847.4375 +1673,296949.28125 +1674,245827.828125 +1675,181912.0 +1676,194141.203125 +1677,205011.484375 +1678,433308.40625 +1679,391548.75 +1680,344175.03125 +1681,243528.484375 +1682,338663.84375 +1683,184158.5625 +1684,173713.609375 +1685,168583.703125 +1686,168267.59375 +1687,136708.390625 +1688,194385.0 +1689,190252.734375 +1690,204544.484375 +1691,193213.4375 +1692,268167.65625 +1693,164712.921875 +1694,182172.890625 +1695,163210.421875 +1696,234209.140625 +1697,156180.703125 +1698,356238.46875 +1699,327043.9375 +1700,271561.28125 +1701,266864.9375 +1702,234695.421875 +1703,217579.921875 +1704,278168.125 +1705,240055.125 +1706,212601.75 +1707,220176.25 +1708,210705.234375 +1709,273250.75 +1710,240247.53125 +1711,268662.1875 +1712,259250.28125 +1713,289940.40625 +1714,219905.984375 +1715,223838.78125 +1716,172544.34375 +1717,163093.21875 +1718,114883.109375 +1719,227722.859375 +1720,220698.265625 +1721,140227.8125 +1722,118351.2109375 +1723,151216.234375 +1724,195482.4375 +1725,257579.84375 +1726,175335.265625 +1727,169329.09375 +1728,161281.1875 +1729,155513.421875 +1730,145034.6875 +1731,114604.9765625 +1732,137293.453125 +1733,120585.4453125 +1734,93783.4921875 +1735,127292.3984375 +1736,111791.6875 +1737,268972.71875 +1738,270536.1875 +1739,251858.546875 +1740,218277.625 +1741,173627.03125 +1742,177903.515625 +1743,176671.09375 +1744,395957.03125 +1745,231472.53125 +1746,168191.65625 +1747,207407.453125 +1748,253511.9375 +1749,154043.796875 +1750,109796.2890625 +1751,240252.890625 +1752,114179.4921875 +1753,159562.21875 +1754,193339.3125 +1755,166087.890625 +1756,150736.171875 +1757,137022.09375 +1758,154627.546875 +1759,157018.640625 +1760,174601.484375 +1761,140637.421875 +1762,175965.78125 +1763,176888.859375 +1764,138257.828125 +1765,134722.75 +1766,195578.53125 +1767,209882.734375 +1768,141048.359375 +1769,162667.0625 +1770,139953.21875 +1771,130915.9765625 +1772,114500.9296875 +1773,127260.984375 +1774,123195.90625 +1775,155592.734375 +1776,133072.59375 +1777,120640.5234375 +1778,137943.046875 +1779,133740.0625 +1780,172766.609375 +1781,136632.71875 +1782,91290.421875 +1783,145833.4375 +1784,113300.3203125 +1785,114682.7421875 +1786,164249.1875 +1787,162390.953125 +1788,57057.3671875 +1789,64654.359375 +1790,101440.1484375 +1791,184612.875 +1792,159844.765625 +1793,86860.65625 +1794,145624.65625 +1795,132280.734375 +1796,121490.0078125 +1797,95381.078125 +1798,136853.234375 +1799,141100.328125 +1800,109217.1484375 +1801,131890.34375 +1802,120836.5703125 +1803,152642.515625 +1804,116382.9140625 +1805,149215.6875 +1806,118012.125 +1807,143169.859375 +1808,118672.0078125 +1809,115978.2890625 +1810,129178.4765625 +1811,63833.3515625 +1812,86646.2265625 +1813,142673.28125 +1814,88422.8125 +1815,57182.984375 +1816,107715.484375 +1817,107669.0078125 +1818,168373.546875 +1819,141513.375 +1820,38611.38671875 +1821,93563.078125 +1822,157226.640625 +1823,27335.615234375 +1824,107883.8046875 +1825,140824.390625 +1826,122807.8125 +1827,103942.21875 +1828,147703.03125 +1829,113080.6484375 +1830,135939.171875 +1831,129838.2421875 +1832,118330.265625 +1833,125058.7890625 +1834,143377.265625 +1835,109383.703125 +1836,123267.4453125 +1837,82276.0078125 +1838,135650.109375 +1839,115179.9375 +1840,188557.375 +1841,117446.515625 +1842,107859.28125 +1843,138773.265625 +1844,145574.125 +1845,150053.765625 +1846,150227.640625 +1847,171916.03125 +1848,47227.96875 +1849,75284.96875 +1850,119396.609375 +1851,141087.484375 +1852,146343.125 +1853,102050.5234375 +1854,125175.8515625 +1855,131933.953125 +1856,240890.875 +1857,115670.21875 +1858,132962.59375 +1859,106325.7734375 +1860,160273.875 +1861,105958.140625 +1862,344883.5 +1863,311732.375 +1864,311769.75 +1865,364202.0625 +1866,352332.75 +1867,219757.296875 +1868,294215.4375 +1869,208559.796875 +1870,225991.234375 +1871,281983.0625 +1872,169796.265625 +1873,255367.71875 +1874,126729.8359375 +1875,172651.296875 +1876,199596.40625 +1877,207135.734375 +1878,198647.890625 +1879,102727.609375 +1880,128239.671875 +1881,257010.875 +1882,240327.71875 +1883,178388.0 +1884,198431.140625 +1885,196164.53125 +1886,291551.8125 +1887,210140.078125 +1888,264376.625 +1889,178623.703125 +1890,125274.5234375 +1891,140227.234375 +1892,92638.5 +1893,105845.2265625 +1894,130740.2265625 +1895,127640.9296875 +1896,136538.484375 +1897,133366.1875 +1898,130553.6796875 +1899,182306.890625 +1900,157614.109375 +1901,219598.390625 +1902,153127.53125 +1903,250006.9375 +1904,156636.265625 +1905,197674.46875 +1906,82880.2734375 +1907,216105.15625 +1908,115211.515625 +1909,127717.171875 +1910,117634.0078125 +1911,200325.9375 +1912,306913.5 +1913,124188.40625 +1914,61194.734375 +1915,382593.0625 +1916,52680.30078125 +1917,219810.21875 +1918,136776.953125 +1919,160905.890625 +1920,124563.6328125 +1921,381778.09375 +1922,340430.125 +1923,225798.75 +1924,229912.0 +1925,190707.21875 +1926,371370.125 +1927,126547.21875 +1928,148566.765625 +1929,116070.109375 +1930,116362.484375 +1931,120857.7265625 +1932,111228.1640625 +1933,186971.65625 +1934,145674.765625 +1935,170381.5 +1936,185643.734375 +1937,190567.765625 +1938,144415.1875 +1939,233640.0 +1940,173685.34375 +1941,172731.25 +1942,177034.375 +1943,224654.03125 +1944,436243.28125 +1945,433299.65625 +1946,96252.6796875 +1947,212567.0 +1948,128470.0625 +1949,229382.703125 +1950,137990.03125 +1951,257452.34375 +1952,211383.03125 +1953,174630.828125 +1954,168484.421875 +1955,114505.21875 +1956,287022.0 +1957,146909.40625 +1958,275804.25 +1959,117230.8515625 +1960,116527.109375 +1961,124259.6953125 +1962,100292.4140625 +1963,104863.0 +1964,108811.2734375 +1965,145553.96875 +1966,125036.03125 +1967,330401.53125 +1968,439360.625 +1969,398684.53125 +1970,425214.34375 +1971,418255.25 +1972,371330.03125 +1973,287296.40625 +1974,349861.53125 +1975,485771.65625 +1976,284080.46875 +1977,392662.84375 +1978,373249.65625 +1979,332943.53125 +1980,186353.46875 +1981,364701.3125 +1982,211653.84375 +1983,196410.46875 +1984,153053.9375 +1985,229459.84375 +1986,195683.71875 +1987,172938.171875 +1988,173903.921875 +1989,186335.421875 +1990,218649.234375 +1991,217654.96875 +1992,215604.296875 +1993,166048.46875 +1994,207160.015625 +1995,175402.03125 +1996,285832.375 +1997,320479.6875 +1998,320250.1875 +1999,364504.75 +2000,329602.78125 +2001,293869.625 +2002,238707.71875 +2003,262649.28125 +2004,275802.65625 +2005,213355.3125 +2006,223813.109375 +2007,250053.4375 +2008,212819.734375 +2009,211658.734375 +2010,178911.859375 +2011,124277.1640625 +2012,170450.515625 +2013,182370.03125 +2014,179580.359375 +2015,206739.203125 +2016,199813.71875 +2017,200162.296875 +2018,124975.40625 +2019,148897.296875 +2020,98662.1015625 +2021,124926.953125 +2022,228972.84375 +2023,136700.109375 +2024,278830.625 +2025,380208.875 +2026,170521.546875 +2027,172974.625 +2028,149014.90625 +2029,169395.484375 +2030,242041.234375 +2031,192886.4375 +2032,226549.140625 +2033,227038.109375 +2034,174306.609375 +2035,220244.640625 +2036,214647.890625 +2037,233616.609375 +2038,279601.28125 +2039,247976.3125 +2040,317444.15625 +2041,332046.1875 +2042,206071.34375 +2043,164764.5 +2044,161173.921875 +2045,201246.84375 +2046,166724.0 +2047,139915.9375 +2048,124234.3984375 +2049,140763.609375 +2050,167231.359375 +2051,98540.3203125 +2052,118308.7578125 +2053,139821.578125 +2054,107525.2734375 +2055,117237.890625 +2056,139550.78125 +2057,115865.234375 +2058,205265.46875 +2059,148338.109375 +2060,155553.59375 +2061,153112.90625 +2062,130674.1484375 +2063,109785.3203125 +2064,135392.6875 +2065,106747.4375 +2066,149652.140625 +2067,91720.71875 +2068,150131.703125 +2069,76977.1640625 +2070,105007.921875 +2071,100675.296875 +2072,116471.2265625 +2073,132867.703125 +2074,171010.28125 +2075,135394.75 +2076,116215.0859375 +2077,125748.7109375 +2078,123774.0 +2079,114796.0078125 +2080,132839.5625 +2081,124497.84375 +2082,125079.71875 +2083,141050.828125 +2084,120690.03125 +2085,134056.484375 +2086,82071.609375 +2087,115581.3828125 +2088,68262.1015625 +2089,86072.953125 +2090,122519.2265625 +2091,114131.2109375 +2092,123215.296875 +2093,88119.1640625 +2094,102163.6640625 +2095,165549.703125 +2096,94070.296875 +2097,93254.2578125 +2098,144251.203125 +2099,66333.2734375 +2100,57422.96484375 +2101,118493.9921875 +2102,125956.4375 +2103,109727.0625 +2104,130294.1328125 +2105,127027.5234375 +2106,54366.49609375 +2107,193764.0 +2108,96632.078125 +2109,112401.5625 +2110,95680.875 +2111,109975.109375 +2112,143360.59375 +2113,145336.21875 +2114,143346.828125 +2115,161380.765625 +2116,119640.8671875 +2117,146518.671875 +2118,125543.703125 +2119,127667.046875 +2120,108854.109375 +2121,100097.3515625 +2122,130959.21875 +2123,79980.6875 +2124,158905.484375 +2125,111767.5390625 +2126,157639.75 +2127,158643.640625 +2128,122790.2734375 +2129,110461.1328125 +2130,131550.625 +2131,142416.359375 +2132,101938.28125 +2133,121273.65625 +2134,121723.84375 +2135,116707.703125 +2136,99251.7109375 +2137,88742.109375 +2138,118664.7578125 +2139,141231.3125 +2140,136695.578125 +2141,166015.84375 +2142,126111.109375 +2143,137914.859375 +2144,99223.8125 +2145,128667.328125 +2146,189476.234375 +2147,139970.265625 +2148,129251.4609375 +2149,142114.28125 +2150,263482.40625 +2151,117084.9453125 +2152,127411.4296875 +2153,172872.609375 +2154,87899.3984375 +2155,115393.5625 +2156,250988.421875 +2157,219034.375 +2158,252669.90625 +2159,195956.828125 +2160,168158.875 +2161,228828.65625 +2162,381218.875 +2163,326181.125 +2164,261285.625 +2165,224859.90625 +2166,142286.609375 +2167,217662.15625 +2168,200438.875 +2169,201403.65625 +2170,210626.3125 +2171,141162.015625 +2172,121134.5625 +2173,160097.640625 +2174,222783.640625 +2175,295500.34375 +2176,324975.5 +2177,244625.65625 +2178,196842.453125 +2179,133084.921875 +2180,199380.703125 +2181,190308.734375 +2182,231461.34375 +2183,195270.421875 +2184,128411.3671875 +2185,94592.3515625 +2186,124517.3359375 +2187,140122.65625 +2188,138807.125 +2189,278484.59375 +2190,64797.328125 +2191,88147.8984375 +2192,120225.234375 +2193,102946.640625 +2194,96915.7265625 +2195,105252.734375 +2196,111354.234375 +2197,123327.5625 +2198,143222.03125 +2199,169116.03125 +2200,167922.546875 +2201,155068.984375 +2202,233493.46875 +2203,138933.375 +2204,195497.0 +2205,132989.90625 +2206,124351.609375 +2207,234025.203125 +2208,268172.125 +2209,267784.75 +2210,133094.65625 +2211,127543.265625 +2212,123613.5078125 +2213,106217.1328125 +2214,86119.953125 +2215,110289.703125 +2216,145177.75 +2217,65206.97265625 +2218,69417.25 +2219,70079.2734375 +2220,85821.765625 +2221,387501.75 +2222,308050.625 +2223,283895.21875 +2224,197311.546875 +2225,102312.09375 +2226,164799.265625 +2227,165667.0625 +2228,283222.6875 +2229,237223.5625 +2230,131860.59375 +2231,191573.21875 +2232,159022.921875 +2233,194824.609375 +2234,242906.40625 +2235,222002.828125 +2236,241050.953125 +2237,307117.09375 +2238,225247.8125 +2239,106594.75 +2240,148065.640625 +2241,157094.734375 +2242,110328.9140625 +2243,119295.8125 +2244,97866.078125 +2245,96922.7890625 +2246,135604.703125 +2247,109408.1484375 +2248,119601.1953125 +2249,114945.875 +2250,133242.8125 +2251,99779.09375 +2252,171921.859375 +2253,151217.703125 +2254,194193.375 +2255,168596.40625 +2256,167518.9375 +2257,216354.6875 +2258,153037.203125 +2259,176093.59375 +2260,147701.375 +2261,189286.640625 +2262,208881.5 +2263,422204.34375 +2264,477045.5625 +2265,161287.3125 +2266,340808.5625 +2267,376173.125 +2268,412613.6875 +2269,148336.4375 +2270,195852.109375 +2271,205634.34375 +2272,238953.59375 +2273,147067.53125 +2274,177609.203125 +2275,192771.875 +2276,199633.640625 +2277,194511.515625 +2278,145407.015625 +2279,129938.5546875 +2280,109957.3046875 +2281,157711.34375 +2282,171862.578125 +2283,119930.203125 +2284,118353.5078125 +2285,139956.21875 +2286,134755.484375 +2287,408307.59375 +2288,276800.34375 +2289,365993.5625 +2290,453209.84375 +2291,360328.34375 +2292,434343.4375 +2293,514657.875 +2294,435133.375 +2295,483699.375 +2296,264703.65625 +2297,408652.21875 +2298,389053.9375 +2299,353774.9375 +2300,335451.1875 +2301,337929.5 +2302,252098.34375 +2303,242055.0 +2304,248464.171875 +2305,179837.953125 +2306,169598.046875 +2307,183580.3125 +2308,268340.03125 +2309,288260.40625 +2310,219821.078125 +2311,189265.59375 +2312,164584.953125 +2313,171413.109375 +2314,159968.53125 +2315,159687.0625 +2316,168383.640625 +2317,185833.3125 +2318,155783.28125 +2319,166924.515625 +2320,157817.828125 +2321,239897.96875 +2322,171746.203125 +2323,181136.75 +2324,192041.0625 +2325,178347.375 +2326,172598.890625 +2327,210630.03125 +2328,223334.765625 +2329,183083.6875 +2330,168014.421875 +2331,370695.71875 +2332,433988.125 +2333,345548.375 +2334,275752.34375 +2335,312741.09375 +2336,331759.6875 +2337,165830.109375 +2338,220075.640625 +2339,206182.625 +2340,372077.90625 +2341,184166.34375 +2342,227161.375 +2343,225203.3125 +2344,196054.359375 +2345,223334.546875 +2346,216106.453125 +2347,197296.703125 +2348,235586.390625 +2349,187497.25 +2350,303520.34375 +2351,260836.375 +2352,238681.046875 +2353,255947.875 +2354,126151.796875 +2355,131460.140625 +2356,151934.875 +2357,185386.953125 +2358,195730.015625 +2359,126573.984375 +2360,123027.6640625 +2361,153702.96875 +2362,241245.546875 +2363,136372.75 +2364,153125.953125 +2365,188793.8125 +2366,190863.015625 +2367,212307.28125 +2368,210636.734375 +2369,199340.484375 +2370,190433.40625 +2371,190619.84375 +2372,183852.40625 +2373,276732.40625 +2374,331789.4375 +2375,247308.46875 +2376,314661.0625 +2377,340655.5625 +2378,184862.203125 +2379,233282.984375 +2380,147417.0 +2381,168359.921875 +2382,200309.15625 +2383,185987.71875 +2384,247051.203125 +2385,168219.53125 +2386,138198.125 +2387,140050.453125 +2388,99628.3984375 +2389,134954.625 +2390,173771.53125 +2391,139683.984375 +2392,128570.640625 +2393,188256.625 +2394,137054.78125 +2395,214829.734375 +2396,143934.5 +2397,200614.546875 +2398,125096.921875 +2399,72392.8203125 +2400,93364.078125 +2401,139631.65625 +2402,140695.671875 +2403,144158.28125 +2404,148343.546875 +2405,147608.625 +2406,134547.953125 +2407,125342.90625 +2408,146085.078125 +2409,132400.984375 +2410,185087.0625 +2411,127371.2265625 +2412,133539.640625 +2413,132888.8125 +2414,171922.078125 +2415,131620.984375 +2416,124953.921875 +2417,157531.5625 +2418,148226.796875 +2419,125072.5390625 +2420,152402.828125 +2421,148410.578125 +2422,108628.6484375 +2423,121060.6953125 +2424,146930.140625 +2425,179934.828125 +2426,130964.15625 +2427,124500.328125 +2428,188147.578125 +2429,136483.59375 +2430,138225.625 +2431,120709.6015625 +2432,148331.65625 +2433,164243.125 +2434,135399.328125 +2435,157056.546875 +2436,123449.4453125 +2437,127304.125 +2438,131678.515625 +2439,102760.0390625 +2440,116387.7265625 +2441,74258.40625 +2442,110468.6171875 +2443,119788.2734375 +2444,146116.34375 +2445,112877.1640625 +2446,142349.203125 +2447,162851.703125 +2448,136170.296875 +2449,120927.2265625 +2450,153308.546875 +2451,120714.75 +2452,209143.28125 +2453,100430.78125 +2454,115248.2890625 +2455,100225.9296875 +2456,134292.109375 +2457,174053.59375 +2458,146161.21875 +2459,118858.5390625 +2460,134024.03125 +2461,153266.859375 +2462,134599.9375 +2463,137498.421875 +2464,183515.484375 +2465,155204.296875 +2466,137696.984375 +2467,126267.7265625 +2468,99094.09375 +2469,96840.75 +2470,200048.734375 +2471,222672.78125 +2472,157727.15625 +2473,112009.078125 +2474,74245.5625 +2475,195432.453125 +2476,116019.5625 +2477,133764.328125 +2478,159239.40625 +2479,116080.9375 +2480,174310.421875 +2481,140369.375 +2482,139655.21875 +2483,134828.28125 +2484,125665.5234375 +2485,150763.125 +2486,178655.921875 +2487,184757.703125 +2488,167961.375 +2489,140013.546875 +2490,155558.765625 +2491,88734.96875 +2492,202528.75 +2493,167636.78125 +2494,123856.8671875 +2495,82921.515625 +2496,256316.078125 +2497,138525.921875 +2498,121723.640625 +2499,91432.5390625 +2500,137858.953125 +2501,136246.796875 +2502,124723.9921875 +2503,92808.1015625 +2504,224964.5625 +2505,284733.40625 +2506,236658.265625 +2507,255866.84375 +2508,233716.625 +2509,224525.625 +2510,223149.921875 +2511,175920.203125 +2512,215883.234375 +2513,217182.734375 +2514,297599.875 +2515,161533.21875 +2516,184435.984375 +2517,157500.734375 +2518,147042.328125 +2519,258544.671875 +2520,226837.0625 +2521,189444.046875 +2522,233126.859375 +2523,115638.1796875 +2524,131237.71875 +2525,129317.1328125 +2526,139290.0 +2527,129909.4375 +2528,151718.71875 +2529,156831.453125 +2530,141461.375 +2531,247139.65625 +2532,231733.078125 +2533,202304.390625 +2534,236272.75 +2535,287449.625 +2536,229875.78125 +2537,240835.28125 +2538,172273.421875 +2539,183978.328125 +2540,172469.25 +2541,188577.609375 +2542,169922.28125 +2543,122954.578125 +2544,118036.359375 +2545,130081.3515625 +2546,128188.125 +2547,120366.453125 +2548,143737.9375 +2549,160398.65625 +2550,649544.3125 +2551,142242.984375 +2552,131502.140625 +2553,81109.0 +2554,111153.6953125 +2555,138726.015625 +2556,123660.484375 +2557,113161.9921875 +2558,148097.796875 +2559,151560.828125 +2560,186221.328125 +2561,173940.328125 +2562,170230.078125 +2563,168501.859375 +2564,215150.6875 +2565,155790.0 +2566,174531.453125 +2567,132387.84375 +2568,256675.6875 +2569,268732.03125 +2570,138097.203125 +2571,215096.4375 +2572,135535.125 +2573,231474.609375 +2574,229542.640625 +2575,145155.421875 +2576,115600.375 +2577,155625.53125 +2578,107391.9765625 +2579,87379.4921875 +2580,94761.6875 +2581,99983.4140625 +2582,104207.34375 +2583,302732.34375 +2584,146172.265625 +2585,200585.375 +2586,196033.640625 +2587,182837.890625 +2588,134711.984375 +2589,158828.140625 +2590,185984.984375 +2591,238672.390625 +2592,197735.875 +2593,269647.90625 +2594,182613.5 +2595,199980.96875 +2596,281447.1875 +2597,189729.609375 +2598,317202.71875 +2599,333542.71875 +2600,148215.5 +2601,138812.40625 +2602,101987.5859375 +2603,108509.09375 +2604,104120.375 +2605,101954.3046875 +2606,156567.859375 +2607,234225.78125 +2608,180092.453125 +2609,165907.015625 +2610,108584.4453125 +2611,144332.890625 +2612,166569.453125 +2613,135747.34375 +2614,131203.375 +2615,145125.375 +2616,152146.25 +2617,179950.8125 +2618,186870.0625 +2619,209687.796875 +2620,172498.578125 +2621,187565.359375 +2622,184317.890625 +2623,245772.234375 +2624,308151.71875 +2625,306337.46875 +2626,188136.796875 +2627,147799.328125 +2628,568439.875 +2629,550381.625 +2630,445241.59375 +2631,516329.03125 +2632,450341.34375 +2633,340422.46875 +2634,444495.28125 +2635,161092.953125 +2636,209188.359375 +2637,177526.15625 +2638,254083.09375 +2639,171318.28125 +2640,153542.203125 +2641,132076.328125 +2642,185158.296875 +2643,123292.984375 +2644,131289.3125 +2645,134459.53125 +2646,125534.3515625 +2647,123894.1875 +2648,159268.609375 +2649,156248.28125 +2650,154888.15625 +2651,159348.234375 +2652,407399.78125 +2653,253682.796875 +2654,284496.3125 +2655,436900.03125 +2656,335372.25 +2657,375875.40625 +2658,324027.75 +2659,346415.40625 +2660,398299.5625 +2661,376868.53125 +2662,412045.6875 +2663,294010.28125 +2664,295028.90625 +2665,346106.8125 +2666,305283.78125 +2667,178405.046875 +2668,180818.078125 +2669,167088.578125 +2670,266364.375 +2671,178147.890625 +2672,195325.171875 +2673,196527.125 +2674,204896.359375 +2675,200456.15625 +2676,188113.96875 +2677,194369.515625 +2678,226810.09375 +2679,295440.53125 +2680,310913.40625 +2681,423304.0625 +2682,318174.75 +2683,546144.625 +2684,359636.0625 +2685,386663.875 +2686,229314.953125 +2687,301578.625 +2688,195776.359375 +2689,206544.765625 +2690,396809.53125 +2691,213899.953125 +2692,132017.5 +2693,193442.90625 +2694,140600.09375 +2695,215455.25 +2696,198140.890625 +2697,184514.28125 +2698,184477.78125 +2699,174453.515625 +2700,159112.34375 +2701,162560.8125 +2702,138660.796875 +2703,116393.4609375 +2704,162328.046875 +2705,141047.4375 +2706,139920.828125 +2707,136761.765625 +2708,156644.53125 +2709,121150.8515625 +2710,134192.484375 +2711,377025.28125 +2712,486217.625 +2713,173959.328125 +2714,181452.984375 +2715,200075.09375 +2716,163819.9375 +2717,210874.265625 +2718,231394.53125 +2719,178301.890625 +2720,184750.25 +2721,152027.703125 +2722,153692.875 +2723,151459.390625 +2724,141121.46875 +2725,149299.390625 +2726,154022.203125 +2727,159253.28125 +2728,190865.375 +2729,169000.734375 +2730,160263.8125 +2731,158614.234375 +2732,156366.75 +2733,173230.359375 +2734,145929.03125 +2735,138535.109375 +2736,150133.6875 +2737,137190.3125 +2738,141999.28125 +2739,163574.8125 +2740,149866.03125 +2741,162363.421875 +2742,171419.765625 +2743,181286.96875 +2744,167788.484375 +2745,157453.40625 +2746,150191.90625 +2747,162699.734375 +2748,136949.078125 +2749,147322.203125 +2750,137570.703125 +2751,152228.03125 +2752,195603.625 +2753,159011.84375 +2754,210784.765625 +2755,137728.734375 +2756,125902.8359375 +2757,127717.5390625 +2758,127095.8359375 +2759,192577.1875 +2760,134698.6875 +2761,161985.703125 +2762,153092.40625 +2763,218951.21875 +2764,182640.828125 +2765,267872.28125 +2766,132353.78125 +2767,86518.3125 +2768,137826.375 +2769,143042.625 +2770,147927.828125 +2771,143687.515625 +2772,134006.09375 +2773,222463.65625 +2774,138599.46875 +2775,120037.3984375 +2776,154361.578125 +2777,137514.71875 +2778,116381.640625 +2779,146419.203125 +2780,110827.3828125 +2781,113633.53125 +2782,124211.7421875 +2783,127940.5703125 +2784,130618.1796875 +2785,170709.65625 +2786,97580.078125 +2787,122930.0234375 +2788,100835.6484375 +2789,184513.296875 +2790,127469.9609375 +2791,127736.21875 +2792,94980.9296875 +2793,134116.71875 +2794,114601.140625 +2795,148806.453125 +2796,118628.1953125 +2797,179831.828125 +2798,149325.765625 +2799,122690.125 +2800,95386.4609375 +2801,131330.296875 +2802,142704.421875 +2803,181956.109375 +2804,139562.328125 +2805,114210.3125 +2806,112328.3671875 +2807,186608.125 +2808,179253.46875 +2809,141288.625 +2810,156859.0625 +2811,181984.640625 +2812,197037.25 +2813,178632.71875 +2814,177114.71875 +2815,91336.4375 +2816,233548.765625 +2817,189062.28125 +2818,151525.3125 +2819,198289.015625 +2820,149946.640625 +2821,116005.6640625 +2822,168157.609375 +2823,293831.3125 +2824,189233.09375 +2825,158315.625 +2826,147970.234375 +2827,144498.4375 +2828,214815.5 +2829,228146.4375 +2830,216232.59375 +2831,183395.828125 +2832,248220.5625 +2833,315687.28125 +2834,232707.375 +2835,250754.046875 +2836,206206.953125 +2837,190126.828125 +2838,160614.640625 +2839,199700.609375 +2840,211127.4375 +2841,216159.1875 +2842,246640.78125 +2843,155056.28125 +2844,171340.046875 +2845,134434.390625 +2846,221637.8125 +2847,229230.671875 +2848,193435.125 +2849,221917.9375 +2850,274485.09375 +2851,211519.609375 +2852,244834.265625 +2853,267914.46875 +2854,159363.53125 +2855,220743.828125 +2856,192800.578125 +2857,200944.4375 +2858,201881.46875 +2859,136772.890625 +2860,147733.046875 +2861,133523.953125 +2862,193232.5625 +2863,150829.375 +2864,268930.75 +2865,146835.609375 +2866,161266.984375 +2867,124616.46875 +2868,108071.2734375 +2869,127180.546875 +2870,136416.640625 +2871,102804.03125 +2872,105960.4375 +2873,117963.3125 +2874,155095.34375 +2875,133862.0625 +2876,183602.8125 +2877,170944.65625 +2878,182176.703125 +2879,130385.53125 +2880,123179.078125 +2881,174530.9375 +2882,229409.953125 +2883,217669.265625 +2884,203512.46875 +2885,184374.5625 +2886,312811.75 +2887,128174.0625 +2888,161406.34375 +2889,88707.640625 +2890,124384.59375 +2891,161508.109375 +2892,77322.90625 +2893,92701.5625 +2894,90256.4140625 +2895,367974.25 +2896,297263.15625 +2897,207359.0625 +2898,164826.125 +2899,218862.109375 +2900,176991.34375 +2901,235930.15625 +2902,218787.921875 +2903,328792.5625 +2904,361500.21875 +2905,95206.8828125 +2906,225310.171875 +2907,133496.796875 +2908,158204.09375 +2909,168104.390625 +2910,107789.5625 +2911,113255.46875 +2912,162440.8125 +2913,117356.921875 +2914,108854.609375 +2915,113143.3125 +2916,120015.7890625 +2917,177203.765625 +2918,120854.0625 +2919,236484.875