From 48a236f1c7b10bef552b4504a160ebe30fafbcfe Mon Sep 17 00:00:00 2001
From: tsb1995 <47466105+tsb1995@users.noreply.github.com>
Date: Tue, 19 Nov 2019 15:25:53 -0800
Subject: [PATCH] Add Neural Network model as well as ensemble implementation
---
.../NeuralNetwork-checkpoint.ipynb | 1094 ++++++++++++
kaggle_house_prices/NeuralNetwork.ipynb | 1094 ++++++++++++
.../submissions/NNEnsembleSubmission.csv | 1460 +++++++++++++++++
.../submissions/NNSubmission.csv | 1460 +++++++++++++++++
4 files changed, 5108 insertions(+)
create mode 100644 kaggle_house_prices/.ipynb_checkpoints/NeuralNetwork-checkpoint.ipynb
create mode 100644 kaggle_house_prices/NeuralNetwork.ipynb
create mode 100644 kaggle_house_prices/submissions/NNEnsembleSubmission.csv
create mode 100644 kaggle_house_prices/submissions/NNSubmission.csv
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",
+ " Unnamed: 0 | \n",
+ " PCA0 | \n",
+ " PCA1 | \n",
+ " PCA2 | \n",
+ " PCA3 | \n",
+ " PCA4 | \n",
+ " PCA5 | \n",
+ " PCA6 | \n",
+ " PCA7 | \n",
+ " PCA8 | \n",
+ " ... | \n",
+ " PCA164 | \n",
+ " PCA165 | \n",
+ " PCA166 | \n",
+ " PCA167 | \n",
+ " PCA168 | \n",
+ " PCA169 | \n",
+ " PCA170 | \n",
+ " PCA171 | \n",
+ " Id | \n",
+ " SalePrice | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 0 | \n",
+ " 4.345109 | \n",
+ " 1.619386 | \n",
+ " -0.739617 | \n",
+ " -2.080179 | \n",
+ " -0.985088 | \n",
+ " 1.999117 | \n",
+ " -1.231870 | \n",
+ " -0.131782 | \n",
+ " 1.316470 | \n",
+ " ... | \n",
+ " 0.160733 | \n",
+ " 0.071333 | \n",
+ " 0.155468 | \n",
+ " 0.172801 | \n",
+ " -0.169568 | \n",
+ " -0.144326 | \n",
+ " 0.391713 | \n",
+ " -0.013357 | \n",
+ " 1 | \n",
+ " 208500 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 1 | \n",
+ " 0.019142 | \n",
+ " -3.106959 | \n",
+ " 0.168223 | \n",
+ " -0.553341 | \n",
+ " 0.940712 | \n",
+ " 0.200719 | \n",
+ " -0.468954 | \n",
+ " 0.235082 | \n",
+ " -0.838022 | \n",
+ " ... | \n",
+ " -1.063234 | \n",
+ " -0.334556 | \n",
+ " 0.361166 | \n",
+ " -1.218397 | \n",
+ " -0.346191 | \n",
+ " -0.962753 | \n",
+ " -0.138863 | \n",
+ " 1.083103 | \n",
+ " 2 | \n",
+ " 181500 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 2 | \n",
+ " 4.851149 | \n",
+ " 1.242811 | \n",
+ " -0.351815 | \n",
+ " -1.484957 | \n",
+ " -0.758200 | \n",
+ " 2.181179 | \n",
+ " -1.843949 | \n",
+ " 0.296194 | \n",
+ " 1.299142 | \n",
+ " ... | \n",
+ " 0.088334 | \n",
+ " 0.238624 | \n",
+ " 0.327280 | \n",
+ " 0.325285 | \n",
+ " -0.704900 | \n",
+ " -0.036388 | \n",
+ " -0.540516 | \n",
+ " 0.021711 | \n",
+ " 3 | \n",
+ " 223500 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 3 | \n",
+ " -1.771641 | \n",
+ " 0.039500 | \n",
+ " -1.358623 | \n",
+ " 1.920760 | \n",
+ " -2.550817 | \n",
+ " 0.209519 | \n",
+ " -0.756387 | \n",
+ " 0.700109 | \n",
+ " -1.408543 | \n",
+ " ... | \n",
+ " -0.172186 | \n",
+ " -0.518922 | \n",
+ " 0.231498 | \n",
+ " -0.074296 | \n",
+ " -0.034287 | \n",
+ " -0.877735 | \n",
+ " 0.028065 | \n",
+ " -0.321009 | \n",
+ " 4 | \n",
+ " 140000 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 4 | \n",
+ " 6.463747 | \n",
+ " 1.064473 | \n",
+ " 0.209472 | \n",
+ " 0.448906 | \n",
+ " -1.555301 | \n",
+ " 3.215822 | \n",
+ " -0.946356 | \n",
+ " -0.805204 | \n",
+ " 2.112526 | \n",
+ " ... | \n",
+ " -0.270189 | \n",
+ " 0.375297 | \n",
+ " -0.396732 | \n",
+ " -0.109084 | \n",
+ " 0.317305 | \n",
+ " -0.145975 | \n",
+ " -0.674692 | \n",
+ " -0.378458 | \n",
+ " 5 | \n",
+ " 250000 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Unnamed: 0 | \n",
+ " PCA0 | \n",
+ " PCA1 | \n",
+ " PCA2 | \n",
+ " PCA3 | \n",
+ " PCA4 | \n",
+ " PCA5 | \n",
+ " PCA6 | \n",
+ " PCA7 | \n",
+ " PCA8 | \n",
+ " ... | \n",
+ " PCA163 | \n",
+ " PCA164 | \n",
+ " PCA165 | \n",
+ " PCA166 | \n",
+ " PCA167 | \n",
+ " PCA168 | \n",
+ " PCA169 | \n",
+ " PCA170 | \n",
+ " PCA171 | \n",
+ " Id | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 0 | \n",
+ " -3.208086 | \n",
+ " -2.987338 | \n",
+ " -0.327066 | \n",
+ " -1.609206 | \n",
+ " 0.016879 | \n",
+ " -1.514939 | \n",
+ " -0.417889 | \n",
+ " -0.988173 | \n",
+ " -0.653363 | \n",
+ " ... | \n",
+ " -0.027364 | \n",
+ " 0.653222 | \n",
+ " -0.201973 | \n",
+ " -0.769946 | \n",
+ " -0.344834 | \n",
+ " 0.514257 | \n",
+ " 1.114106 | \n",
+ " 0.337765 | \n",
+ " -0.639617 | \n",
+ " 1461 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 1 | \n",
+ " -1.403753 | \n",
+ " -4.261851 | \n",
+ " 0.107527 | \n",
+ " 0.935981 | \n",
+ " 0.165777 | \n",
+ " -0.299485 | \n",
+ " -0.524918 | \n",
+ " -2.332121 | \n",
+ " 0.031044 | \n",
+ " ... | \n",
+ " 3.856117 | \n",
+ " 0.787996 | \n",
+ " 0.215221 | \n",
+ " 0.458275 | \n",
+ " 1.135109 | \n",
+ " 0.378972 | \n",
+ " 0.953559 | \n",
+ " -1.008240 | \n",
+ " 4.445435 | \n",
+ " 1462 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 2 | \n",
+ " 2.257002 | \n",
+ " 0.427951 | \n",
+ " -0.610464 | \n",
+ " -1.301125 | \n",
+ " -1.058327 | \n",
+ " 2.674177 | \n",
+ " -1.500824 | \n",
+ " -0.223999 | \n",
+ " 0.403440 | \n",
+ " ... | \n",
+ " -0.117138 | \n",
+ " -0.378473 | \n",
+ " -0.031613 | \n",
+ " 0.090593 | \n",
+ " -0.173914 | \n",
+ " -0.150098 | \n",
+ " -0.006612 | \n",
+ " 0.190780 | \n",
+ " -0.152486 | \n",
+ " 1463 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 3 | \n",
+ " 3.253618 | \n",
+ " 0.537318 | \n",
+ " -0.796079 | \n",
+ " -0.851716 | \n",
+ " -1.209643 | \n",
+ " 2.388795 | \n",
+ " -1.340676 | \n",
+ " -0.876322 | \n",
+ " 0.421183 | \n",
+ " ... | \n",
+ " -0.441586 | \n",
+ " 0.020066 | \n",
+ " -0.151709 | \n",
+ " 0.444826 | \n",
+ " 0.008218 | \n",
+ " -0.161705 | \n",
+ " -0.453482 | \n",
+ " 0.472352 | \n",
+ " 0.046141 | \n",
+ " 1464 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 4 | \n",
+ " 2.876409 | \n",
+ " -0.075909 | \n",
+ " -0.154959 | \n",
+ " -2.469870 | \n",
+ " 1.407820 | \n",
+ " 0.487532 | \n",
+ " 0.072190 | \n",
+ " 2.414446 | \n",
+ " 1.667224 | \n",
+ " ... | \n",
+ " 0.269062 | \n",
+ " 0.651172 | \n",
+ " -0.050461 | \n",
+ " -0.526448 | \n",
+ " -0.843701 | \n",
+ " 0.574770 | \n",
+ " -0.227828 | \n",
+ " 1.071423 | \n",
+ " 1.362638 | \n",
+ " 1465 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Unnamed: 0 | \n",
+ " PCA0 | \n",
+ " PCA1 | \n",
+ " PCA2 | \n",
+ " PCA3 | \n",
+ " PCA4 | \n",
+ " PCA5 | \n",
+ " PCA6 | \n",
+ " PCA7 | \n",
+ " PCA8 | \n",
+ " ... | \n",
+ " PCA162 | \n",
+ " PCA163 | \n",
+ " PCA164 | \n",
+ " PCA165 | \n",
+ " PCA166 | \n",
+ " PCA167 | \n",
+ " PCA168 | \n",
+ " PCA169 | \n",
+ " PCA170 | \n",
+ " PCA171 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 0 | \n",
+ " 4.345109 | \n",
+ " 1.619386 | \n",
+ " -0.739617 | \n",
+ " -2.080179 | \n",
+ " -0.985088 | \n",
+ " 1.999117 | \n",
+ " -1.231870 | \n",
+ " -0.131782 | \n",
+ " 1.316470 | \n",
+ " ... | \n",
+ " -0.276936 | \n",
+ " -0.128260 | \n",
+ " 0.160733 | \n",
+ " 0.071333 | \n",
+ " 0.155468 | \n",
+ " 0.172801 | \n",
+ " -0.169568 | \n",
+ " -0.144326 | \n",
+ " 0.391713 | \n",
+ " -0.013357 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 1 | \n",
+ " 0.019142 | \n",
+ " -3.106959 | \n",
+ " 0.168223 | \n",
+ " -0.553341 | \n",
+ " 0.940712 | \n",
+ " 0.200719 | \n",
+ " -0.468954 | \n",
+ " 0.235082 | \n",
+ " -0.838022 | \n",
+ " ... | \n",
+ " 0.140974 | \n",
+ " -0.224535 | \n",
+ " -1.063234 | \n",
+ " -0.334556 | \n",
+ " 0.361166 | \n",
+ " -1.218397 | \n",
+ " -0.346191 | \n",
+ " -0.962753 | \n",
+ " -0.138863 | \n",
+ " 1.083103 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 2 | \n",
+ " 4.851149 | \n",
+ " 1.242811 | \n",
+ " -0.351815 | \n",
+ " -1.484957 | \n",
+ " -0.758200 | \n",
+ " 2.181179 | \n",
+ " -1.843949 | \n",
+ " 0.296194 | \n",
+ " 1.299142 | \n",
+ " ... | \n",
+ " -0.289024 | \n",
+ " -0.282563 | \n",
+ " 0.088334 | \n",
+ " 0.238624 | \n",
+ " 0.327280 | \n",
+ " 0.325285 | \n",
+ " -0.704900 | \n",
+ " -0.036388 | \n",
+ " -0.540516 | \n",
+ " 0.021711 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 3 | \n",
+ " -1.771641 | \n",
+ " 0.039500 | \n",
+ " -1.358623 | \n",
+ " 1.920760 | \n",
+ " -2.550817 | \n",
+ " 0.209519 | \n",
+ " -0.756387 | \n",
+ " 0.700109 | \n",
+ " -1.408543 | \n",
+ " ... | \n",
+ " 0.286790 | \n",
+ " 0.672251 | \n",
+ " -0.172186 | \n",
+ " -0.518922 | \n",
+ " 0.231498 | \n",
+ " -0.074296 | \n",
+ " -0.034287 | \n",
+ " -0.877735 | \n",
+ " 0.028065 | \n",
+ " -0.321009 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 4 | \n",
+ " 6.463747 | \n",
+ " 1.064473 | \n",
+ " 0.209472 | \n",
+ " 0.448906 | \n",
+ " -1.555301 | \n",
+ " 3.215822 | \n",
+ " -0.946356 | \n",
+ " -0.805204 | \n",
+ " 2.112526 | \n",
+ " ... | \n",
+ " -0.235585 | \n",
+ " 0.019570 | \n",
+ " -0.270189 | \n",
+ " 0.375297 | \n",
+ " -0.396732 | \n",
+ " -0.109084 | \n",
+ " 0.317305 | \n",
+ " -0.145975 | \n",
+ " -0.674692 | \n",
+ " -0.378458 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Id | \n",
+ " SalePrice | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 1461 | \n",
+ " 115729.328125 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 1462 | \n",
+ " 148874.625000 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1463 | \n",
+ " 154782.968750 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1464 | \n",
+ " 159385.453125 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 1465 | \n",
+ " 170496.734375 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Id | \n",
+ " SalePrice | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 1461 | \n",
+ " 120161.371094 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 1462 | \n",
+ " 152452.843750 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1463 | \n",
+ " 162175.976562 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1464 | \n",
+ " 167157.189844 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 1465 | \n",
+ " 174259.088281 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Unnamed: 0 | \n",
+ " PCA0 | \n",
+ " PCA1 | \n",
+ " PCA2 | \n",
+ " PCA3 | \n",
+ " PCA4 | \n",
+ " PCA5 | \n",
+ " PCA6 | \n",
+ " PCA7 | \n",
+ " PCA8 | \n",
+ " ... | \n",
+ " PCA164 | \n",
+ " PCA165 | \n",
+ " PCA166 | \n",
+ " PCA167 | \n",
+ " PCA168 | \n",
+ " PCA169 | \n",
+ " PCA170 | \n",
+ " PCA171 | \n",
+ " Id | \n",
+ " SalePrice | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 0 | \n",
+ " 4.345109 | \n",
+ " 1.619386 | \n",
+ " -0.739617 | \n",
+ " -2.080179 | \n",
+ " -0.985088 | \n",
+ " 1.999117 | \n",
+ " -1.231870 | \n",
+ " -0.131782 | \n",
+ " 1.316470 | \n",
+ " ... | \n",
+ " 0.160733 | \n",
+ " 0.071333 | \n",
+ " 0.155468 | \n",
+ " 0.172801 | \n",
+ " -0.169568 | \n",
+ " -0.144326 | \n",
+ " 0.391713 | \n",
+ " -0.013357 | \n",
+ " 1 | \n",
+ " 208500 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 1 | \n",
+ " 0.019142 | \n",
+ " -3.106959 | \n",
+ " 0.168223 | \n",
+ " -0.553341 | \n",
+ " 0.940712 | \n",
+ " 0.200719 | \n",
+ " -0.468954 | \n",
+ " 0.235082 | \n",
+ " -0.838022 | \n",
+ " ... | \n",
+ " -1.063234 | \n",
+ " -0.334556 | \n",
+ " 0.361166 | \n",
+ " -1.218397 | \n",
+ " -0.346191 | \n",
+ " -0.962753 | \n",
+ " -0.138863 | \n",
+ " 1.083103 | \n",
+ " 2 | \n",
+ " 181500 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 2 | \n",
+ " 4.851149 | \n",
+ " 1.242811 | \n",
+ " -0.351815 | \n",
+ " -1.484957 | \n",
+ " -0.758200 | \n",
+ " 2.181179 | \n",
+ " -1.843949 | \n",
+ " 0.296194 | \n",
+ " 1.299142 | \n",
+ " ... | \n",
+ " 0.088334 | \n",
+ " 0.238624 | \n",
+ " 0.327280 | \n",
+ " 0.325285 | \n",
+ " -0.704900 | \n",
+ " -0.036388 | \n",
+ " -0.540516 | \n",
+ " 0.021711 | \n",
+ " 3 | \n",
+ " 223500 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 3 | \n",
+ " -1.771641 | \n",
+ " 0.039500 | \n",
+ " -1.358623 | \n",
+ " 1.920760 | \n",
+ " -2.550817 | \n",
+ " 0.209519 | \n",
+ " -0.756387 | \n",
+ " 0.700109 | \n",
+ " -1.408543 | \n",
+ " ... | \n",
+ " -0.172186 | \n",
+ " -0.518922 | \n",
+ " 0.231498 | \n",
+ " -0.074296 | \n",
+ " -0.034287 | \n",
+ " -0.877735 | \n",
+ " 0.028065 | \n",
+ " -0.321009 | \n",
+ " 4 | \n",
+ " 140000 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 4 | \n",
+ " 6.463747 | \n",
+ " 1.064473 | \n",
+ " 0.209472 | \n",
+ " 0.448906 | \n",
+ " -1.555301 | \n",
+ " 3.215822 | \n",
+ " -0.946356 | \n",
+ " -0.805204 | \n",
+ " 2.112526 | \n",
+ " ... | \n",
+ " -0.270189 | \n",
+ " 0.375297 | \n",
+ " -0.396732 | \n",
+ " -0.109084 | \n",
+ " 0.317305 | \n",
+ " -0.145975 | \n",
+ " -0.674692 | \n",
+ " -0.378458 | \n",
+ " 5 | \n",
+ " 250000 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Unnamed: 0 | \n",
+ " PCA0 | \n",
+ " PCA1 | \n",
+ " PCA2 | \n",
+ " PCA3 | \n",
+ " PCA4 | \n",
+ " PCA5 | \n",
+ " PCA6 | \n",
+ " PCA7 | \n",
+ " PCA8 | \n",
+ " ... | \n",
+ " PCA163 | \n",
+ " PCA164 | \n",
+ " PCA165 | \n",
+ " PCA166 | \n",
+ " PCA167 | \n",
+ " PCA168 | \n",
+ " PCA169 | \n",
+ " PCA170 | \n",
+ " PCA171 | \n",
+ " Id | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 0 | \n",
+ " -3.208086 | \n",
+ " -2.987338 | \n",
+ " -0.327066 | \n",
+ " -1.609206 | \n",
+ " 0.016879 | \n",
+ " -1.514939 | \n",
+ " -0.417889 | \n",
+ " -0.988173 | \n",
+ " -0.653363 | \n",
+ " ... | \n",
+ " -0.027364 | \n",
+ " 0.653222 | \n",
+ " -0.201973 | \n",
+ " -0.769946 | \n",
+ " -0.344834 | \n",
+ " 0.514257 | \n",
+ " 1.114106 | \n",
+ " 0.337765 | \n",
+ " -0.639617 | \n",
+ " 1461 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 1 | \n",
+ " -1.403753 | \n",
+ " -4.261851 | \n",
+ " 0.107527 | \n",
+ " 0.935981 | \n",
+ " 0.165777 | \n",
+ " -0.299485 | \n",
+ " -0.524918 | \n",
+ " -2.332121 | \n",
+ " 0.031044 | \n",
+ " ... | \n",
+ " 3.856117 | \n",
+ " 0.787996 | \n",
+ " 0.215221 | \n",
+ " 0.458275 | \n",
+ " 1.135109 | \n",
+ " 0.378972 | \n",
+ " 0.953559 | \n",
+ " -1.008240 | \n",
+ " 4.445435 | \n",
+ " 1462 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 2 | \n",
+ " 2.257002 | \n",
+ " 0.427951 | \n",
+ " -0.610464 | \n",
+ " -1.301125 | \n",
+ " -1.058327 | \n",
+ " 2.674177 | \n",
+ " -1.500824 | \n",
+ " -0.223999 | \n",
+ " 0.403440 | \n",
+ " ... | \n",
+ " -0.117138 | \n",
+ " -0.378473 | \n",
+ " -0.031613 | \n",
+ " 0.090593 | \n",
+ " -0.173914 | \n",
+ " -0.150098 | \n",
+ " -0.006612 | \n",
+ " 0.190780 | \n",
+ " -0.152486 | \n",
+ " 1463 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 3 | \n",
+ " 3.253618 | \n",
+ " 0.537318 | \n",
+ " -0.796079 | \n",
+ " -0.851716 | \n",
+ " -1.209643 | \n",
+ " 2.388795 | \n",
+ " -1.340676 | \n",
+ " -0.876322 | \n",
+ " 0.421183 | \n",
+ " ... | \n",
+ " -0.441586 | \n",
+ " 0.020066 | \n",
+ " -0.151709 | \n",
+ " 0.444826 | \n",
+ " 0.008218 | \n",
+ " -0.161705 | \n",
+ " -0.453482 | \n",
+ " 0.472352 | \n",
+ " 0.046141 | \n",
+ " 1464 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 4 | \n",
+ " 2.876409 | \n",
+ " -0.075909 | \n",
+ " -0.154959 | \n",
+ " -2.469870 | \n",
+ " 1.407820 | \n",
+ " 0.487532 | \n",
+ " 0.072190 | \n",
+ " 2.414446 | \n",
+ " 1.667224 | \n",
+ " ... | \n",
+ " 0.269062 | \n",
+ " 0.651172 | \n",
+ " -0.050461 | \n",
+ " -0.526448 | \n",
+ " -0.843701 | \n",
+ " 0.574770 | \n",
+ " -0.227828 | \n",
+ " 1.071423 | \n",
+ " 1.362638 | \n",
+ " 1465 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Unnamed: 0 | \n",
+ " PCA0 | \n",
+ " PCA1 | \n",
+ " PCA2 | \n",
+ " PCA3 | \n",
+ " PCA4 | \n",
+ " PCA5 | \n",
+ " PCA6 | \n",
+ " PCA7 | \n",
+ " PCA8 | \n",
+ " ... | \n",
+ " PCA162 | \n",
+ " PCA163 | \n",
+ " PCA164 | \n",
+ " PCA165 | \n",
+ " PCA166 | \n",
+ " PCA167 | \n",
+ " PCA168 | \n",
+ " PCA169 | \n",
+ " PCA170 | \n",
+ " PCA171 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 0 | \n",
+ " 4.345109 | \n",
+ " 1.619386 | \n",
+ " -0.739617 | \n",
+ " -2.080179 | \n",
+ " -0.985088 | \n",
+ " 1.999117 | \n",
+ " -1.231870 | \n",
+ " -0.131782 | \n",
+ " 1.316470 | \n",
+ " ... | \n",
+ " -0.276936 | \n",
+ " -0.128260 | \n",
+ " 0.160733 | \n",
+ " 0.071333 | \n",
+ " 0.155468 | \n",
+ " 0.172801 | \n",
+ " -0.169568 | \n",
+ " -0.144326 | \n",
+ " 0.391713 | \n",
+ " -0.013357 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 1 | \n",
+ " 0.019142 | \n",
+ " -3.106959 | \n",
+ " 0.168223 | \n",
+ " -0.553341 | \n",
+ " 0.940712 | \n",
+ " 0.200719 | \n",
+ " -0.468954 | \n",
+ " 0.235082 | \n",
+ " -0.838022 | \n",
+ " ... | \n",
+ " 0.140974 | \n",
+ " -0.224535 | \n",
+ " -1.063234 | \n",
+ " -0.334556 | \n",
+ " 0.361166 | \n",
+ " -1.218397 | \n",
+ " -0.346191 | \n",
+ " -0.962753 | \n",
+ " -0.138863 | \n",
+ " 1.083103 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 2 | \n",
+ " 4.851149 | \n",
+ " 1.242811 | \n",
+ " -0.351815 | \n",
+ " -1.484957 | \n",
+ " -0.758200 | \n",
+ " 2.181179 | \n",
+ " -1.843949 | \n",
+ " 0.296194 | \n",
+ " 1.299142 | \n",
+ " ... | \n",
+ " -0.289024 | \n",
+ " -0.282563 | \n",
+ " 0.088334 | \n",
+ " 0.238624 | \n",
+ " 0.327280 | \n",
+ " 0.325285 | \n",
+ " -0.704900 | \n",
+ " -0.036388 | \n",
+ " -0.540516 | \n",
+ " 0.021711 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 3 | \n",
+ " -1.771641 | \n",
+ " 0.039500 | \n",
+ " -1.358623 | \n",
+ " 1.920760 | \n",
+ " -2.550817 | \n",
+ " 0.209519 | \n",
+ " -0.756387 | \n",
+ " 0.700109 | \n",
+ " -1.408543 | \n",
+ " ... | \n",
+ " 0.286790 | \n",
+ " 0.672251 | \n",
+ " -0.172186 | \n",
+ " -0.518922 | \n",
+ " 0.231498 | \n",
+ " -0.074296 | \n",
+ " -0.034287 | \n",
+ " -0.877735 | \n",
+ " 0.028065 | \n",
+ " -0.321009 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 4 | \n",
+ " 6.463747 | \n",
+ " 1.064473 | \n",
+ " 0.209472 | \n",
+ " 0.448906 | \n",
+ " -1.555301 | \n",
+ " 3.215822 | \n",
+ " -0.946356 | \n",
+ " -0.805204 | \n",
+ " 2.112526 | \n",
+ " ... | \n",
+ " -0.235585 | \n",
+ " 0.019570 | \n",
+ " -0.270189 | \n",
+ " 0.375297 | \n",
+ " -0.396732 | \n",
+ " -0.109084 | \n",
+ " 0.317305 | \n",
+ " -0.145975 | \n",
+ " -0.674692 | \n",
+ " -0.378458 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Id | \n",
+ " SalePrice | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 1461 | \n",
+ " 115729.328125 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 1462 | \n",
+ " 148874.625000 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1463 | \n",
+ " 154782.968750 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1464 | \n",
+ " 159385.453125 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 1465 | \n",
+ " 170496.734375 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Id | \n",
+ " SalePrice | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 1461 | \n",
+ " 120161.371094 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 1462 | \n",
+ " 152452.843750 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1463 | \n",
+ " 162175.976562 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1464 | \n",
+ " 167157.189844 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 1465 | \n",
+ " 174259.088281 | \n",
+ "
\n",
+ " \n",
+ "
\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