Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
lstm_synthetic_data.ipynb
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "lstm_synthetic_data.ipynb",
"provenance": [],
"collapsed_sections": [],
"toc_visible": true
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "dKn3ykF-5sia"
},
"source": [
"# LSTM forecasting with Synthetic Data"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "XLNcBgB51gR7"
},
"source": [
"Credits\n",
"- Keras.io [Timeseries Weather Forecasting](https://keras.io/examples/timeseries/timeseries_weather_forecasting/)\n",
"- Synthentic dataset generated for regression [scikit-learn](https://scikit-learn.org/stable/datasets/sample_generators.html#generators-for-regression)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "e3yh6UQ-iKNF"
},
"source": [
"## Dependencies\n"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "MXByWp-mQKTp",
"outputId": "622b476e-83b3-4f3f-fe1b-28552384fce4"
},
"source": [
"import datetime\n",
"import numpy as np\n",
"import os\n",
"import sys\n",
"import tensorflow as tf\n",
"from tensorflow import keras\n",
"print(tf.__version__)\n",
"print(sys.version)"
],
"execution_count": 1,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"2.7.0\n",
"3.7.12 (default, Sep 10 2021, 00:21:48) \n",
"[GCC 7.5.0]\n"
]
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "JV7jOn8pOv2Q"
},
"source": [
"### Version specific dependencies\n",
"Requires run time restart"
]
},
{
"cell_type": "code",
"metadata": {
"id": "Gkl01MkHby2x",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "c7f26856-b168-4d87-c9b4-86d36fcba544"
},
"source": [
"!pip install pandas==1.1.5 # requires Runtime restart\n",
"!pip install scikit-learn==1.0 # requires Runtime restart\n",
"import pandas as pd\n",
"assert pd.__version__ == \"1.1.5\"\n",
"pd.set_option(\"max_columns\", 100)\n",
"import sklearn\n",
"assert sklearn.__version__ == \"1.0\"\n",
"from sklearn import metrics\n",
"from sklearn.base import BaseEstimator, TransformerMixin\n",
"from sklearn.datasets import make_friedman1, make_regression\n",
"from sklearn.impute import SimpleImputer\n",
"from sklearn.pipeline import FeatureUnion, Pipeline \n",
"from sklearn.preprocessing import StandardScaler, OneHotEncoder\n",
"from sklearn.model_selection import GridSearchCV, TimeSeriesSplit"
],
"execution_count": 2,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Requirement already satisfied: pandas==1.1.5 in /usr/local/lib/python3.7/dist-packages (1.1.5)\n",
"Requirement already satisfied: numpy>=1.15.4 in /usr/local/lib/python3.7/dist-packages (from pandas==1.1.5) (1.19.5)\n",
"Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.7/dist-packages (from pandas==1.1.5) (2018.9)\n",
"Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.7/dist-packages (from pandas==1.1.5) (2.8.2)\n",
"Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.7.3->pandas==1.1.5) (1.15.0)\n",
"Requirement already satisfied: scikit-learn==1.0 in /usr/local/lib/python3.7/dist-packages (1.0)\n",
"Requirement already satisfied: joblib>=0.11 in /usr/local/lib/python3.7/dist-packages (from scikit-learn==1.0) (1.1.0)\n",
"Requirement already satisfied: numpy>=1.14.6 in /usr/local/lib/python3.7/dist-packages (from scikit-learn==1.0) (1.19.5)\n",
"Requirement already satisfied: scipy>=1.1.0 in /usr/local/lib/python3.7/dist-packages (from scikit-learn==1.0) (1.4.1)\n",
"Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.7/dist-packages (from scikit-learn==1.0) (3.0.0)\n"
]
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "Hoj7g5kxIzg4"
},
"source": [
"np.random.seed(1)"
],
"execution_count": 3,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "g9G5SF9CbNC6"
},
"source": [
"## Load Data"
]
},
{
"cell_type": "code",
"metadata": {
"id": "MiccNG-sHBOW"
},
"source": [
"forecast_steps = 7 # 7"
],
"execution_count": 4,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 416
},
"id": "vfF8qA8_51eZ",
"outputId": "91984df2-2523-4c81-ce27-37f6ea339895"
},
"source": [
"def generate_data():\n",
" df = pd.DataFrame()\n",
" start_date = datetime.datetime(year=2001, month=1, day=1)\n",
" df[\"date\"] = [start_date + datetime.timedelta(days=x+1) for x in range(365*15)]\n",
" num_features = 10 # only 5 features determine label\n",
" n_informative = 5 # determine the label, the rest is random\n",
" X, y = make_friedman1(n_samples=df.shape[0], n_features=num_features, noise=1.0)\n",
" # X, y = make_regression(n_samples=df.shape[0], n_features=num_features, n_informative=n_informative, n_targets=1)\n",
" df.loc[:, [f\"x_{i}\" for i in range(num_features)]] = X\n",
" df.loc[:, \"x_2\"] *= 20 # scale feature\n",
" df.loc[:, \"x_3\"] *= 30 # scale feature\n",
" df.loc[:, \"x_7\"] *= 70 # scale feature\n",
" df.loc[:, \"x_8\"] *= 80 # scale feature\n",
" df.loc[:, \"y\"] = y\n",
" df.loc[:, \"y\"] = (\n",
" 0.5 * df.loc[:, \"y\"] +\n",
" 0.5 * df.loc[:, \"y\"].rolling(window=3).mean()\n",
" )\n",
" df.loc[:, \"y\"] = df.loc[:, \"y\"].shift(forecast_steps)\n",
" df.rolling(2, min_periods=1).sum()\n",
" return df\n",
"df = generate_data()\n",
"df.describe(include=\"all\", datetime_is_numeric=True)"
],
"execution_count": 5,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>x_0</th>\n",
" <th>x_1</th>\n",
" <th>x_2</th>\n",
" <th>x_3</th>\n",
" <th>x_4</th>\n",
" <th>x_5</th>\n",
" <th>x_6</th>\n",
" <th>x_7</th>\n",
" <th>x_8</th>\n",
" <th>x_9</th>\n",
" <th>y</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>5475</td>\n",
" <td>5475.000000</td>\n",
" <td>5475.000000</td>\n",
" <td>5475.000000</td>\n",
" <td>5475.000000</td>\n",
" <td>5475.000000</td>\n",
" <td>5475.000000</td>\n",
" <td>5475.000000</td>\n",
" <td>5475.000000</td>\n",
" <td>5475.000000</td>\n",
" <td>5475.000000</td>\n",
" <td>5466.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>2008-07-01 00:00:00.000029184</td>\n",
" <td>0.499200</td>\n",
" <td>0.500893</td>\n",
" <td>9.947641</td>\n",
" <td>14.926298</td>\n",
" <td>0.502209</td>\n",
" <td>0.501965</td>\n",
" <td>0.491453</td>\n",
" <td>35.024637</td>\n",
" <td>39.932751</td>\n",
" <td>0.506453</td>\n",
" <td>14.366396</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>2001-01-02 00:00:00</td>\n",
" <td>0.000084</td>\n",
" <td>0.000079</td>\n",
" <td>0.002287</td>\n",
" <td>0.001414</td>\n",
" <td>0.000072</td>\n",
" <td>0.000248</td>\n",
" <td>0.000079</td>\n",
" <td>0.017472</td>\n",
" <td>0.000830</td>\n",
" <td>0.000011</td>\n",
" <td>3.783890</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>2004-10-01 12:00:00</td>\n",
" <td>0.251183</td>\n",
" <td>0.244304</td>\n",
" <td>4.976404</td>\n",
" <td>7.273625</td>\n",
" <td>0.252892</td>\n",
" <td>0.248793</td>\n",
" <td>0.239705</td>\n",
" <td>17.336051</td>\n",
" <td>20.410696</td>\n",
" <td>0.249481</td>\n",
" <td>11.948152</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>2008-07-01 00:00:00</td>\n",
" <td>0.491677</td>\n",
" <td>0.504741</td>\n",
" <td>9.950743</td>\n",
" <td>14.968018</td>\n",
" <td>0.506688</td>\n",
" <td>0.500906</td>\n",
" <td>0.492554</td>\n",
" <td>35.429179</td>\n",
" <td>39.796218</td>\n",
" <td>0.519164</td>\n",
" <td>14.439272</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>2012-03-30 12:00:00</td>\n",
" <td>0.747067</td>\n",
" <td>0.758768</td>\n",
" <td>14.887439</td>\n",
" <td>22.626872</td>\n",
" <td>0.751767</td>\n",
" <td>0.759172</td>\n",
" <td>0.737345</td>\n",
" <td>52.544612</td>\n",
" <td>59.656927</td>\n",
" <td>0.755871</td>\n",
" <td>16.754376</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>2015-12-29 00:00:00</td>\n",
" <td>0.999754</td>\n",
" <td>0.999834</td>\n",
" <td>19.995147</td>\n",
" <td>29.995535</td>\n",
" <td>0.999900</td>\n",
" <td>0.999990</td>\n",
" <td>0.999660</td>\n",
" <td>69.967756</td>\n",
" <td>79.957545</td>\n",
" <td>0.999813</td>\n",
" <td>24.853195</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>NaN</td>\n",
" <td>0.285983</td>\n",
" <td>0.291814</td>\n",
" <td>5.760796</td>\n",
" <td>8.751435</td>\n",
" <td>0.288316</td>\n",
" <td>0.289881</td>\n",
" <td>0.287323</td>\n",
" <td>20.240193</td>\n",
" <td>22.963125</td>\n",
" <td>0.289597</td>\n",
" <td>3.484810</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" date x_0 x_1 x_2 \\\n",
"count 5475 5475.000000 5475.000000 5475.000000 \n",
"mean 2008-07-01 00:00:00.000029184 0.499200 0.500893 9.947641 \n",
"min 2001-01-02 00:00:00 0.000084 0.000079 0.002287 \n",
"25% 2004-10-01 12:00:00 0.251183 0.244304 4.976404 \n",
"50% 2008-07-01 00:00:00 0.491677 0.504741 9.950743 \n",
"75% 2012-03-30 12:00:00 0.747067 0.758768 14.887439 \n",
"max 2015-12-29 00:00:00 0.999754 0.999834 19.995147 \n",
"std NaN 0.285983 0.291814 5.760796 \n",
"\n",
" x_3 x_4 x_5 x_6 x_7 \\\n",
"count 5475.000000 5475.000000 5475.000000 5475.000000 5475.000000 \n",
"mean 14.926298 0.502209 0.501965 0.491453 35.024637 \n",
"min 0.001414 0.000072 0.000248 0.000079 0.017472 \n",
"25% 7.273625 0.252892 0.248793 0.239705 17.336051 \n",
"50% 14.968018 0.506688 0.500906 0.492554 35.429179 \n",
"75% 22.626872 0.751767 0.759172 0.737345 52.544612 \n",
"max 29.995535 0.999900 0.999990 0.999660 69.967756 \n",
"std 8.751435 0.288316 0.289881 0.287323 20.240193 \n",
"\n",
" x_8 x_9 y \n",
"count 5475.000000 5475.000000 5466.000000 \n",
"mean 39.932751 0.506453 14.366396 \n",
"min 0.000830 0.000011 3.783890 \n",
"25% 20.410696 0.249481 11.948152 \n",
"50% 39.796218 0.519164 14.439272 \n",
"75% 59.656927 0.755871 16.754376 \n",
"max 79.957545 0.999813 24.853195 \n",
"std 22.963125 0.289597 3.484810 "
]
},
"metadata": {},
"execution_count": 5
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 545
},
"id": "wufer9zbIkof",
"outputId": "abba3c30-da93-49b6-94ae-2d4a5bf4237b"
},
"source": [
"df.head(10)"
],
"execution_count": 6,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>x_0</th>\n",
" <th>x_1</th>\n",
" <th>x_2</th>\n",
" <th>x_3</th>\n",
" <th>x_4</th>\n",
" <th>x_5</th>\n",
" <th>x_6</th>\n",
" <th>x_7</th>\n",
" <th>x_8</th>\n",
" <th>x_9</th>\n",
" <th>y</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2001-01-02</td>\n",
" <td>0.417022</td>\n",
" <td>0.720324</td>\n",
" <td>0.002287</td>\n",
" <td>9.069977</td>\n",
" <td>0.146756</td>\n",
" <td>0.092339</td>\n",
" <td>0.186260</td>\n",
" <td>24.189251</td>\n",
" <td>31.741398</td>\n",
" <td>0.538817</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2001-01-03</td>\n",
" <td>0.419195</td>\n",
" <td>0.685220</td>\n",
" <td>4.089045</td>\n",
" <td>26.343523</td>\n",
" <td>0.027388</td>\n",
" <td>0.670468</td>\n",
" <td>0.417305</td>\n",
" <td>39.108288</td>\n",
" <td>11.230955</td>\n",
" <td>0.198101</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2001-01-04</td>\n",
" <td>0.800745</td>\n",
" <td>0.968262</td>\n",
" <td>6.268484</td>\n",
" <td>20.769678</td>\n",
" <td>0.876389</td>\n",
" <td>0.894607</td>\n",
" <td>0.085044</td>\n",
" <td>2.733835</td>\n",
" <td>13.586434</td>\n",
" <td>0.878143</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2001-01-05</td>\n",
" <td>0.098347</td>\n",
" <td>0.421108</td>\n",
" <td>19.157791</td>\n",
" <td>15.994959</td>\n",
" <td>0.691877</td>\n",
" <td>0.315516</td>\n",
" <td>0.686501</td>\n",
" <td>58.423797</td>\n",
" <td>1.463062</td>\n",
" <td>0.750144</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2001-01-06</td>\n",
" <td>0.988861</td>\n",
" <td>0.748166</td>\n",
" <td>5.608880</td>\n",
" <td>23.678380</td>\n",
" <td>0.103226</td>\n",
" <td>0.447894</td>\n",
" <td>0.908596</td>\n",
" <td>20.552990</td>\n",
" <td>23.022027</td>\n",
" <td>0.130029</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2001-01-07</td>\n",
" <td>0.019367</td>\n",
" <td>0.678836</td>\n",
" <td>4.232562</td>\n",
" <td>7.966400</td>\n",
" <td>0.491573</td>\n",
" <td>0.053363</td>\n",
" <td>0.574118</td>\n",
" <td>10.271000</td>\n",
" <td>47.144443</td>\n",
" <td>0.699758</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2001-01-08</td>\n",
" <td>0.102334</td>\n",
" <td>0.414056</td>\n",
" <td>13.888003</td>\n",
" <td>12.425378</td>\n",
" <td>0.049953</td>\n",
" <td>0.535896</td>\n",
" <td>0.663795</td>\n",
" <td>36.042238</td>\n",
" <td>75.567580</td>\n",
" <td>0.586555</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2001-01-09</td>\n",
" <td>0.903402</td>\n",
" <td>0.137475</td>\n",
" <td>2.785527</td>\n",
" <td>24.221739</td>\n",
" <td>0.397677</td>\n",
" <td>0.165354</td>\n",
" <td>0.927509</td>\n",
" <td>24.343610</td>\n",
" <td>60.064968</td>\n",
" <td>0.725998</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2001-01-10</td>\n",
" <td>0.883306</td>\n",
" <td>0.623672</td>\n",
" <td>15.018849</td>\n",
" <td>10.466950</td>\n",
" <td>0.269928</td>\n",
" <td>0.895886</td>\n",
" <td>0.428091</td>\n",
" <td>67.538803</td>\n",
" <td>53.075320</td>\n",
" <td>0.621696</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2001-01-11</td>\n",
" <td>0.114746</td>\n",
" <td>0.949489</td>\n",
" <td>8.998243</td>\n",
" <td>17.351688</td>\n",
" <td>0.408137</td>\n",
" <td>0.237027</td>\n",
" <td>0.903380</td>\n",
" <td>40.157564</td>\n",
" <td>0.229626</td>\n",
" <td>0.617145</td>\n",
" <td>16.564334</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" date x_0 x_1 x_2 x_3 x_4 x_5 \\\n",
"0 2001-01-02 0.417022 0.720324 0.002287 9.069977 0.146756 0.092339 \n",
"1 2001-01-03 0.419195 0.685220 4.089045 26.343523 0.027388 0.670468 \n",
"2 2001-01-04 0.800745 0.968262 6.268484 20.769678 0.876389 0.894607 \n",
"3 2001-01-05 0.098347 0.421108 19.157791 15.994959 0.691877 0.315516 \n",
"4 2001-01-06 0.988861 0.748166 5.608880 23.678380 0.103226 0.447894 \n",
"5 2001-01-07 0.019367 0.678836 4.232562 7.966400 0.491573 0.053363 \n",
"6 2001-01-08 0.102334 0.414056 13.888003 12.425378 0.049953 0.535896 \n",
"7 2001-01-09 0.903402 0.137475 2.785527 24.221739 0.397677 0.165354 \n",
"8 2001-01-10 0.883306 0.623672 15.018849 10.466950 0.269928 0.895886 \n",
"9 2001-01-11 0.114746 0.949489 8.998243 17.351688 0.408137 0.237027 \n",
"\n",
" x_6 x_7 x_8 x_9 y \n",
"0 0.186260 24.189251 31.741398 0.538817 NaN \n",
"1 0.417305 39.108288 11.230955 0.198101 NaN \n",
"2 0.085044 2.733835 13.586434 0.878143 NaN \n",
"3 0.686501 58.423797 1.463062 0.750144 NaN \n",
"4 0.908596 20.552990 23.022027 0.130029 NaN \n",
"5 0.574118 10.271000 47.144443 0.699758 NaN \n",
"6 0.663795 36.042238 75.567580 0.586555 NaN \n",
"7 0.927509 24.343610 60.064968 0.725998 NaN \n",
"8 0.428091 67.538803 53.075320 0.621696 NaN \n",
"9 0.903380 40.157564 0.229626 0.617145 16.564334 "
]
},
"metadata": {},
"execution_count": 6
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 261
},
"id": "AcriNvhkbKIa",
"outputId": "5329d9fa-7379-4518-cfaf-89db3ae0a320"
},
"source": [
"df.plot(kind=\"line\", \n",
" x=\"date\", \n",
" y=\"y\", \n",
" colormap=\"coolwarm\", \n",
" figsize=(12, 3), \n",
" fontsize=12,\n",
" title=\"Sythentic data\",\n",
" xlabel=\"date\", \n",
" ylabel=\"label\")"
],
"execution_count": 7,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f869d0251d0>"
]
},
"metadata": {},
"execution_count": 7
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 438
},
"id": "kyvt83AJGAY9",
"outputId": "042d300d-162b-4f86-fb14-4ff601e5ad2d"
},
"source": [
"df_corr = df.copy(deep=True)\n",
"df_corr.loc[:, \"future_label\"] = df_corr.loc[:, \"y\"].shift(-forecast_steps)\n",
"df_corr.corr().style.background_gradient(cmap=\"coolwarm\")"
],
"execution_count": 8,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<style type=\"text/css\" >\n",
"#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col0,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col1,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col2,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col3,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col4,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col5,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col6,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col7,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col8,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col9,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col10,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col11{\n",
" background-color: #b40426;\n",
" color: #f1f1f1;\n",
" }#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col1,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col2,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col5,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col9,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col0,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col8,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col2,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col0,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col8,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col5,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col10,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col0{\n",
" background-color: #3d50c3;\n",
" color: #f1f1f1;\n",
" }#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col3,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col4,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col4,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col5,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col8,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col9,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col3,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col7,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col4,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col1,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col6,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col4,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col11,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col4,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col9{\n",
" background-color: #3f53c6;\n",
" color: #f1f1f1;\n",
" }#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col6,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col6,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col10,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col5,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col0,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col2,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col3,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col7,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col2,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col0,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col3,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col8,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col3,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col7,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col3,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col8,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col2,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col6,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col7{\n",
" background-color: #3e51c5;\n",
" color: #f1f1f1;\n",
" }#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col7,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col3,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col4,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col7,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col8,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col10,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col11,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col1,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col4,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col6,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col5,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col8,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col9,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col0,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col2,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col9,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col10,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col11,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col2,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col6,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col9,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col6,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col7,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col8,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col11{\n",
" background-color: #3b4cc0;\n",
" color: #f1f1f1;\n",
" }#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col8,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col11,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col7,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col10,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col3,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col0,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col1,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col1,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col1,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col4{\n",
" background-color: #4055c8;\n",
" color: #f1f1f1;\n",
" }#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col10,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col7,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col9,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col0,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col5,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col9,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col10,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col1,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col10,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col6{\n",
" background-color: #4257c9;\n",
" color: #f1f1f1;\n",
" }#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col11{\n",
" background-color: #afcafc;\n",
" color: #000000;\n",
" }#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col0,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col6,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col10,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col11,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col4,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col11,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col2,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col7,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col10{\n",
" background-color: #3c4ec2;\n",
" color: #f1f1f1;\n",
" }#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col2,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col0,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col9{\n",
" background-color: #445acc;\n",
" color: #f1f1f1;\n",
" }#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col11{\n",
" background-color: #b7cff9;\n",
" color: #000000;\n",
" }#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col1,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col6,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col7,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col2,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col4,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col5{\n",
" background-color: #455cce;\n",
" color: #f1f1f1;\n",
" }#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col9,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col1,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col8,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col9,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col1,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col2,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col3,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col5,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col5,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col8{\n",
" background-color: #4358cb;\n",
" color: #f1f1f1;\n",
" }#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col5{\n",
" background-color: #4a63d3;\n",
" color: #f1f1f1;\n",
" }#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col11{\n",
" background-color: #e9d5cb;\n",
" color: #000000;\n",
" }#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col6,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col5{\n",
" background-color: #485fd1;\n",
" color: #f1f1f1;\n",
" }#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col11,#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col4{\n",
" background-color: #9abbff;\n",
" color: #000000;\n",
" }#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col3{\n",
" background-color: #4b64d5;\n",
" color: #f1f1f1;\n",
" }#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col10{\n",
" background-color: #465ecf;\n",
" color: #f1f1f1;\n",
" }#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col0{\n",
" background-color: #b1cbfc;\n",
" color: #000000;\n",
" }#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col1{\n",
" background-color: #bad0f8;\n",
" color: #000000;\n",
" }#T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col3{\n",
" background-color: #ead5c9;\n",
" color: #000000;\n",
" }</style><table id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002\" class=\"dataframe\"><thead> <tr> <th class=\"blank level0\" ></th> <th class=\"col_heading level0 col0\" >x_0</th> <th class=\"col_heading level0 col1\" >x_1</th> <th class=\"col_heading level0 col2\" >x_2</th> <th class=\"col_heading level0 col3\" >x_3</th> <th class=\"col_heading level0 col4\" >x_4</th> <th class=\"col_heading level0 col5\" >x_5</th> <th class=\"col_heading level0 col6\" >x_6</th> <th class=\"col_heading level0 col7\" >x_7</th> <th class=\"col_heading level0 col8\" >x_8</th> <th class=\"col_heading level0 col9\" >x_9</th> <th class=\"col_heading level0 col10\" >y</th> <th class=\"col_heading level0 col11\" >future_label</th> </tr></thead><tbody>\n",
" <tr>\n",
" <th id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002level0_row0\" class=\"row_heading level0 row0\" >x_0</th>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col0\" class=\"data row0 col0\" >1.000000</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col1\" class=\"data row0 col1\" >-0.011230</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col2\" class=\"data row0 col2\" >-0.008236</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col3\" class=\"data row0 col3\" >-0.003817</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col4\" class=\"data row0 col4\" >0.008050</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col5\" class=\"data row0 col5\" >-0.007087</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col6\" class=\"data row0 col6\" >-0.005471</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col7\" class=\"data row0 col7\" >-0.018666</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col8\" class=\"data row0 col8\" >0.002469</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col9\" class=\"data row0 col9\" >-0.007974</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col10\" class=\"data row0 col10\" >0.013433</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row0_col11\" class=\"data row0 col11\" >0.343410</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002level0_row1\" class=\"row_heading level0 row1\" >x_1</th>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col0\" class=\"data row1 col0\" >-0.011230</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col1\" class=\"data row1 col1\" >1.000000</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col2\" class=\"data row1 col2\" >0.013938</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col3\" class=\"data row1 col3\" >-0.022951</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col4\" class=\"data row1 col4\" >0.007660</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col5\" class=\"data row1 col5\" >0.001471</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col6\" class=\"data row1 col6\" >-0.005772</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col7\" class=\"data row1 col7\" >0.007867</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col8\" class=\"data row1 col8\" >0.000011</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col9\" class=\"data row1 col9\" >-0.001630</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col10\" class=\"data row1 col10\" >-0.000411</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row1_col11\" class=\"data row1 col11\" >0.367546</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002level0_row2\" class=\"row_heading level0 row2\" >x_2</th>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col0\" class=\"data row2 col0\" >-0.008236</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col1\" class=\"data row2 col1\" >0.013938</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col2\" class=\"data row2 col2\" >1.000000</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col3\" class=\"data row2 col3\" >-0.005004</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col4\" class=\"data row2 col4\" >-0.010491</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col5\" class=\"data row2 col5\" >-0.003633</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col6\" class=\"data row2 col6\" >0.017680</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col7\" class=\"data row2 col7\" >-0.018911</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col8\" class=\"data row2 col8\" >-0.017886</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col9\" class=\"data row2 col9\" >0.010443</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col10\" class=\"data row2 col10\" >-0.012752</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row2_col11\" class=\"data row2 col11\" >-0.004859</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002level0_row3\" class=\"row_heading level0 row3\" >x_3</th>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col0\" class=\"data row3 col0\" >-0.003817</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col1\" class=\"data row3 col1\" >-0.022951</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col2\" class=\"data row3 col2\" >-0.005004</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col3\" class=\"data row3 col3\" >1.000000</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col4\" class=\"data row3 col4\" >-0.009876</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col5\" class=\"data row3 col5\" >0.036063</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col6\" class=\"data row3 col6\" >-0.010286</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col7\" class=\"data row3 col7\" >-0.002176</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col8\" class=\"data row3 col8\" >-0.009020</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col9\" class=\"data row3 col9\" >0.007870</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col10\" class=\"data row3 col10\" >-0.007557</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row3_col11\" class=\"data row3 col11\" >0.543532</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002level0_row4\" class=\"row_heading level0 row4\" >x_4</th>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col0\" class=\"data row4 col0\" >0.008050</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col1\" class=\"data row4 col1\" >0.007660</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col2\" class=\"data row4 col2\" >-0.010491</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col3\" class=\"data row4 col3\" >-0.009876</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col4\" class=\"data row4 col4\" >1.000000</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col5\" class=\"data row4 col5\" >0.007150</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col6\" class=\"data row4 col6\" >0.027339</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col7\" class=\"data row4 col7\" >-0.005743</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col8\" class=\"data row4 col8\" >0.009159</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col9\" class=\"data row4 col9\" >0.006346</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col10\" class=\"data row4 col10\" >0.011170</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row4_col11\" class=\"data row4 col11\" >0.280323</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002level0_row5\" class=\"row_heading level0 row5\" >x_5</th>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col0\" class=\"data row5 col0\" >-0.007087</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col1\" class=\"data row5 col1\" >0.001471</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col2\" class=\"data row5 col2\" >-0.003633</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col3\" class=\"data row5 col3\" >0.036063</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col4\" class=\"data row5 col4\" >0.007150</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col5\" class=\"data row5 col5\" >1.000000</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col6\" class=\"data row5 col6\" >-0.017550</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col7\" class=\"data row5 col7\" >0.018368</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col8\" class=\"data row5 col8\" >-0.009455</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col9\" class=\"data row5 col9\" >0.010404</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col10\" class=\"data row5 col10\" >0.026603</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row5_col11\" class=\"data row5 col11\" >0.013868</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002level0_row6\" class=\"row_heading level0 row6\" >x_6</th>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col0\" class=\"data row6 col0\" >-0.005471</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col1\" class=\"data row6 col1\" >-0.005772</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col2\" class=\"data row6 col2\" >0.017680</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col3\" class=\"data row6 col3\" >-0.010286</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col4\" class=\"data row6 col4\" >0.027339</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col5\" class=\"data row6 col5\" >-0.017550</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col6\" class=\"data row6 col6\" >1.000000</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col7\" class=\"data row6 col7\" >0.001568</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col8\" class=\"data row6 col8\" >-0.018141</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col9\" class=\"data row6 col9\" >-0.017902</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col10\" class=\"data row6 col10\" >0.007078</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row6_col11\" class=\"data row6 col11\" >-0.003980</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002level0_row7\" class=\"row_heading level0 row7\" >x_7</th>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col0\" class=\"data row7 col0\" >-0.018666</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col1\" class=\"data row7 col1\" >0.007867</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col2\" class=\"data row7 col2\" >-0.018911</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col3\" class=\"data row7 col3\" >-0.002176</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col4\" class=\"data row7 col4\" >-0.005743</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col5\" class=\"data row7 col5\" >0.018368</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col6\" class=\"data row7 col6\" >0.001568</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col7\" class=\"data row7 col7\" >1.000000</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col8\" class=\"data row7 col8\" >-0.006124</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col9\" class=\"data row7 col9\" >-0.016254</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col10\" class=\"data row7 col10\" >-0.014022</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row7_col11\" class=\"data row7 col11\" >-0.006538</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002level0_row8\" class=\"row_heading level0 row8\" >x_8</th>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col0\" class=\"data row8 col0\" >0.002469</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col1\" class=\"data row8 col1\" >0.000011</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col2\" class=\"data row8 col2\" >-0.017886</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col3\" class=\"data row8 col3\" >-0.009020</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col4\" class=\"data row8 col4\" >0.009159</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col5\" class=\"data row8 col5\" >-0.009455</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col6\" class=\"data row8 col6\" >-0.018141</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col7\" class=\"data row8 col7\" >-0.006124</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col8\" class=\"data row8 col8\" >1.000000</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col9\" class=\"data row8 col9\" >-0.019908</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col10\" class=\"data row8 col10\" >-0.005104</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row8_col11\" class=\"data row8 col11\" >0.009448</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002level0_row9\" class=\"row_heading level0 row9\" >x_9</th>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col0\" class=\"data row9 col0\" >-0.007974</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col1\" class=\"data row9 col1\" >-0.001630</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col2\" class=\"data row9 col2\" >0.010443</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col3\" class=\"data row9 col3\" >0.007870</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col4\" class=\"data row9 col4\" >0.006346</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col5\" class=\"data row9 col5\" >0.010404</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col6\" class=\"data row9 col6\" >-0.017902</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col7\" class=\"data row9 col7\" >-0.016254</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col8\" class=\"data row9 col8\" >-0.019908</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col9\" class=\"data row9 col9\" >1.000000</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col10\" class=\"data row9 col10\" >0.012354</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row9_col11\" class=\"data row9 col11\" >-0.002757</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002level0_row10\" class=\"row_heading level0 row10\" >y</th>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col0\" class=\"data row10 col0\" >0.013433</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col1\" class=\"data row10 col1\" >-0.000411</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col2\" class=\"data row10 col2\" >-0.012752</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col3\" class=\"data row10 col3\" >-0.007557</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col4\" class=\"data row10 col4\" >0.011170</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col5\" class=\"data row10 col5\" >0.026603</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col6\" class=\"data row10 col6\" >0.007078</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col7\" class=\"data row10 col7\" >-0.014022</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col8\" class=\"data row10 col8\" >-0.005104</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col9\" class=\"data row10 col9\" >0.012354</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col10\" class=\"data row10 col10\" >1.000000</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row10_col11\" class=\"data row10 col11\" >-0.008424</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002level0_row11\" class=\"row_heading level0 row11\" >future_label</th>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col0\" class=\"data row11 col0\" >0.343410</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col1\" class=\"data row11 col1\" >0.367546</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col2\" class=\"data row11 col2\" >-0.004859</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col3\" class=\"data row11 col3\" >0.543532</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col4\" class=\"data row11 col4\" >0.280323</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col5\" class=\"data row11 col5\" >0.013868</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col6\" class=\"data row11 col6\" >-0.003980</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col7\" class=\"data row11 col7\" >-0.006538</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col8\" class=\"data row11 col8\" >0.009448</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col9\" class=\"data row11 col9\" >-0.002757</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col10\" class=\"data row11 col10\" >-0.008424</td>\n",
" <td id=\"T_4096a512_44e4_11ec_8bbf_0242ac1c0002row11_col11\" class=\"data row11 col11\" >1.000000</td>\n",
" </tr>\n",
" </tbody></table>"
],
"text/plain": [
"<pandas.io.formats.style.Styler at 0x7f869ce74710>"
]
},
"metadata": {},
"execution_count": 8
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "CeN3Qo-UM-4g"
},
"source": [
"## Train / validation / test split"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "cl0QeRRwlSLy"
},
"source": [
"Lookback & forecast step example:\n",
"- lookback_steps = 12\n",
"- forecast_steps = 6\n",
"- features with row indexes 0:11 will be used to forecast label from row 17"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Waw6UzCnBu0H",
"outputId": "7bc897a1-4a64-4911-b830-28d8f654cfc6"
},
"source": [
"lookback_steps = 14 # length of history provided to learn label at t\n",
"end_train_idx = int(0.7 * df.shape[0])\n",
"end_validation_idx = int(0.85 * df.shape[0])\n",
"print(f\"\"\"train idx: [{df.index[0]}, {end_train_idx})\n",
"validation idx: [{end_train_idx}, {end_validation_idx})\n",
"test idx: [{end_validation_idx}-{df.shape[0]})\"\"\")"
],
"execution_count": 9,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"train idx: [0, 3832)\n",
"validation idx: [3832, 4653)\n",
"test idx: [4653-5475)\n"
]
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "UNdbDTn672IG"
},
"source": [
"## Transform"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "74BoxJn_wsJR"
},
"source": [
"Using a pipeline to ensure no train/test data leakage occurs. Accomplished by:\n",
"- train set being transformed using fit_transform\n",
"- validation & test sets are being transformed using transform only "
]
},
{
"cell_type": "code",
"metadata": {
"id": "oQdP9EXmHNAk"
},
"source": [
"# label 'y' is included as a feature because historical labels are provided as features\n",
"numerical_features = [\"y\"] + [f\"x_{i}\" for i in range(10)]"
],
"execution_count": 10,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "Mis8SywwKegI"
},
"source": [
"def get_feature_pipeline():\n",
" class FeatureSelector(BaseEstimator, TransformerMixin):\n",
" def __init__(self, feature_names):\n",
" self.feature_names = feature_names \n",
" def fit( self, X, y = None ):\n",
" return self\n",
" def transform(self, X, y=None):\n",
" return X.loc[:, self.feature_names].copy(deep=True)\n",
" numerical_pipeline = Pipeline(steps = [ \n",
" (\"num_selector\", FeatureSelector(numerical_features)),\n",
" (\"imputer\", SimpleImputer(strategy=\"median\")),\n",
" (\"std_scaler\", StandardScaler()) \n",
" ])\n",
" feature_pipeline = FeatureUnion(\n",
" n_jobs=1, \n",
" transformer_list=[ \n",
" (\"numerical_pipeline\", numerical_pipeline),\n",
" # (\"categorical_pipeline\", categorical_pipeline),\n",
" ]\n",
" )\n",
" return feature_pipeline"
],
"execution_count": 11,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "9TdSF2CvHV3u"
},
"source": [
"### Train"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 240
},
"id": "6Rt9TI41gFvF",
"outputId": "9ecb3adf-a159-4a26-8e76-6e8c2d398de5"
},
"source": [
"feature_pipeline = get_feature_pipeline()\n",
"train_df = pd.DataFrame(\n",
" feature_pipeline.fit_transform(\n",
" df.loc[:end_train_idx, :]\n",
" ), \n",
" columns=numerical_features\n",
")\n",
"# Train label is offset by the number of steps into the future we're forecasting\n",
"train_df.loc[:, \"label\"] = train_df.loc[:, \"y\"].shift(-forecast_steps)\n",
"train_df = train_df.loc[train_df[\"label\"].notna(), :]\n",
"assert 0 == train_df.isna().sum().sum()\n",
"print(train_df.shape)\n",
"train_df.head(5)"
],
"execution_count": 12,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"(3826, 12)\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>y</th>\n",
" <th>x_0</th>\n",
" <th>x_1</th>\n",
" <th>x_2</th>\n",
" <th>x_3</th>\n",
" <th>x_4</th>\n",
" <th>x_5</th>\n",
" <th>x_6</th>\n",
" <th>x_7</th>\n",
" <th>x_8</th>\n",
" <th>x_9</th>\n",
" <th>label</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.019987</td>\n",
" <td>-0.281535</td>\n",
" <td>0.743078</td>\n",
" <td>-1.732444</td>\n",
" <td>-0.670609</td>\n",
" <td>-1.240892</td>\n",
" <td>-1.392544</td>\n",
" <td>-1.048232</td>\n",
" <td>-0.518341</td>\n",
" <td>-0.363001</td>\n",
" <td>0.105768</td>\n",
" <td>0.019987</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.019987</td>\n",
" <td>-0.273918</td>\n",
" <td>0.623383</td>\n",
" <td>-1.021729</td>\n",
" <td>1.306435</td>\n",
" <td>-1.656933</td>\n",
" <td>0.605012</td>\n",
" <td>-0.244852</td>\n",
" <td>0.215292</td>\n",
" <td>-1.254779</td>\n",
" <td>-1.065334</td>\n",
" <td>0.019987</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.019987</td>\n",
" <td>1.063775</td>\n",
" <td>1.588445</td>\n",
" <td>-0.642710</td>\n",
" <td>0.668480</td>\n",
" <td>1.302139</td>\n",
" <td>1.379459</td>\n",
" <td>-1.400177</td>\n",
" <td>-1.573396</td>\n",
" <td>-1.152365</td>\n",
" <td>1.272093</td>\n",
" <td>0.638336</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.019987</td>\n",
" <td>-1.398792</td>\n",
" <td>-0.277134</td>\n",
" <td>1.598828</td>\n",
" <td>0.121990</td>\n",
" <td>0.659049</td>\n",
" <td>-0.621421</td>\n",
" <td>0.691189</td>\n",
" <td>1.165119</td>\n",
" <td>-1.679479</td>\n",
" <td>0.832140</td>\n",
" <td>0.263882</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.019987</td>\n",
" <td>1.723301</td>\n",
" <td>0.838005</td>\n",
" <td>-0.757420</td>\n",
" <td>1.001396</td>\n",
" <td>-1.392609</td>\n",
" <td>-0.164027</td>\n",
" <td>1.463449</td>\n",
" <td>-0.697151</td>\n",
" <td>-0.742112</td>\n",
" <td>-1.299313</td>\n",
" <td>1.021163</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" y x_0 x_1 x_2 x_3 x_4 x_5 \\\n",
"0 0.019987 -0.281535 0.743078 -1.732444 -0.670609 -1.240892 -1.392544 \n",
"1 0.019987 -0.273918 0.623383 -1.021729 1.306435 -1.656933 0.605012 \n",
"2 0.019987 1.063775 1.588445 -0.642710 0.668480 1.302139 1.379459 \n",
"3 0.019987 -1.398792 -0.277134 1.598828 0.121990 0.659049 -0.621421 \n",
"4 0.019987 1.723301 0.838005 -0.757420 1.001396 -1.392609 -0.164027 \n",
"\n",
" x_6 x_7 x_8 x_9 label \n",
"0 -1.048232 -0.518341 -0.363001 0.105768 0.019987 \n",
"1 -0.244852 0.215292 -1.254779 -1.065334 0.019987 \n",
"2 -1.400177 -1.573396 -1.152365 1.272093 0.638336 \n",
"3 0.691189 1.165119 -1.679479 0.832140 0.263882 \n",
"4 1.463449 -0.697151 -0.742112 -1.299313 1.021163 "
]
},
"metadata": {},
"execution_count": 12
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "gHxSW6j8vcnL",
"outputId": "f9f51221-f1a4-4d2a-98e5-ed68a0f672c8"
},
"source": [
"dataset_train = keras.preprocessing.timeseries_dataset_from_array(\n",
" data=train_df.loc[:train_df.shape[0]-lookback_steps, numerical_features],\n",
" targets=train_df.loc[lookback_steps-1:, \"label\"],\n",
" sequence_length=lookback_steps,\n",
" sequence_stride=1,\n",
" sampling_rate=1,\n",
" batch_size=256,\n",
" shuffle=False,\n",
")\n",
"for x, y in dataset_train.take(1):\n",
" print(x.shape, y.shape)"
],
"execution_count": 13,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"(256, 14, 11) (256,)\n"
]
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "0bqHeIncHYII"
},
"source": [
"### Validation"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "6ME7f5B-n7ll",
"outputId": "5d331bb6-e322-42dd-cbaf-f3d9dcdb4d54"
},
"source": [
"def df_transform_to_keras_dataset(df_idx_start, df_idx_end):\n",
" validation_df = pd.DataFrame(\n",
" feature_pipeline.transform(\n",
" df.loc[df_idx_start:df_idx_end, :]\n",
" ), \n",
" columns=numerical_features\n",
" )\n",
" validation_df.loc[:, \"label\"] = validation_df.loc[:, \"y\"].shift(-forecast_steps)\n",
" validation_df = validation_df.loc[validation_df[\"label\"].notna(), :]\n",
" assert 0 == validation_df.isna().sum().sum()\n",
" print(validation_df.shape)\n",
" dataset_validation = keras.preprocessing.timeseries_dataset_from_array(\n",
" data=validation_df.loc[:validation_df.shape[0]-lookback_steps, numerical_features],\n",
" targets=validation_df.loc[lookback_steps-1:, \"label\"],\n",
" sequence_length=lookback_steps,\n",
" batch_size=256,\n",
" shuffle=False,\n",
" )\n",
" return dataset_validation\n",
"dataset_validation = df_transform_to_keras_dataset(end_train_idx, end_validation_idx)\n",
"for x, y in dataset_validation.take(1):\n",
" print(x.shape, y.shape)"
],
"execution_count": 14,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"(815, 12)\n",
"(256, 14, 11) (256,)\n"
]
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "-rUXkRgTrNJ9"
},
"source": [
"### Verify transforms"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "9WehBz8mGVOd",
"outputId": "7c4aed69-531f-4926-d517-2bf2674f409b"
},
"source": [
"print(f\"target label: {y[0]}\")\n",
"for i in range(len(x[0])):\n",
" print(f\"y{i}: {x[0][i][0]}, x_0: {x[0][i][1]}, x_1: {x[0][i][2]}, x_-1: {x[0][i][-1]}\")"
],
"execution_count": 15,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"target label: 0.019389618274903233\n",
"y0: 0.3897786614966334, x_0: -1.1019673030768893, x_1: -0.22405404433829246, x_-1: -0.9570927677004241\n",
"y1: 0.16253865446542173, x_0: 1.2114164259589433, x_1: -1.3445111874070004, x_-1: 1.5001103110847434\n",
"y2: -1.4409742610336096, x_0: 0.9761430256738434, x_1: 0.4193617145263754, x_-1: 0.6141486952660598\n",
"y3: -0.755023105235806, x_0: -0.8440149032050653, x_1: -1.025479123155977, x_-1: 0.03353121581481265\n",
"y4: -0.2880803134443823, x_0: -1.6817742306143941, x_1: -1.4613436867621472, x_-1: -0.6023766153506032\n",
"y5: 0.15952488527276376, x_0: -1.2653908970021783, x_1: 1.0120946328845757, x_-1: 0.33908976903160976\n",
"y6: 0.4354598032438619, x_0: 0.12260467256003346, x_1: -0.24265114930045203, x_-1: -1.2539298986455685\n",
"y7: 0.5935497893926679, x_0: -1.0379963619208725, x_1: 0.7004641382053569, x_-1: 1.1098251989723393\n",
"y8: -0.3899682030593925, x_0: -0.6986635312594595, x_1: 0.7927568983351336, x_-1: 1.3245205052542632\n",
"y9: 1.2179114273241878, x_0: 0.5238443966524786, x_1: -0.4999483464680014, x_-1: 0.22896240421404235\n",
"y10: -0.08175111391879324, x_0: -1.712561742804729, x_1: -1.6360440890929577, x_-1: 0.6876443875590319\n",
"y11: -2.0715253248394574, x_0: -0.8647974467917974, x_1: 1.1455358285234243, x_-1: 1.0368044056699262\n",
"y12: -0.7749879487852037, x_0: 0.3971075977013075, x_1: -1.166809983434937, x_-1: -0.06087473037660358\n",
"y13: -0.2119881874089851, x_0: 0.9152801589653095, x_1: 0.7976423263300022, x_-1: 0.3662436780133264\n"
]
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Vmn4hff7DMFE",
"outputId": "2a87699a-fab6-44db-ab30-aa336554b7d6"
},
"source": [
"print(f\"Row idx of first label (see 'Name: x') in column 0:\")\n",
"(\n",
" pd.DataFrame(feature_pipeline.transform(\n",
" df.loc[end_train_idx:end_validation_idx, :])\n",
" ).loc[lookback_steps + forecast_steps - 1, :]\n",
")"
],
"execution_count": 16,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Row idx of first label (see 'Name: x') in column 0:\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"0 0.019390\n",
"1 -0.093626\n",
"2 -1.636704\n",
"3 0.594119\n",
"4 -0.120487\n",
"5 1.354507\n",
"6 -0.900181\n",
"7 -0.208709\n",
"8 -0.787929\n",
"9 1.055315\n",
"10 -0.603038\n",
"Name: 20, dtype: float64"
]
},
"metadata": {},
"execution_count": 16
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 240
},
"id": "iO88I3BxrFHF",
"outputId": "57666245-fa36-45ef-cbc1-579e7a44e994"
},
"source": [
"print(f\"Rows idx of dataset to learn first label: 0:{lookback_steps - 1}\")\n",
"(\n",
" pd.DataFrame(feature_pipeline.transform(\n",
" df.loc[end_train_idx:end_validation_idx, :])\n",
" ).loc[lookback_steps-5:lookback_steps-1,:]\n",
")"
],
"execution_count": 17,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Rows idx of dataset to learn first label: 0:13\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" <th>6</th>\n",
" <th>7</th>\n",
" <th>8</th>\n",
" <th>9</th>\n",
" <th>10</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>1.217911</td>\n",
" <td>0.523844</td>\n",
" <td>-0.499948</td>\n",
" <td>-0.396952</td>\n",
" <td>-0.106933</td>\n",
" <td>-0.593192</td>\n",
" <td>0.354691</td>\n",
" <td>0.977050</td>\n",
" <td>-1.455930</td>\n",
" <td>-0.195214</td>\n",
" <td>0.228962</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>-0.081751</td>\n",
" <td>-1.712562</td>\n",
" <td>-1.636044</td>\n",
" <td>-0.017625</td>\n",
" <td>-1.693798</td>\n",
" <td>-0.878965</td>\n",
" <td>-0.088157</td>\n",
" <td>1.244197</td>\n",
" <td>1.245123</td>\n",
" <td>1.138779</td>\n",
" <td>0.687644</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>-2.071525</td>\n",
" <td>-0.864797</td>\n",
" <td>1.145536</td>\n",
" <td>0.840013</td>\n",
" <td>0.320359</td>\n",
" <td>-0.920446</td>\n",
" <td>0.952525</td>\n",
" <td>0.120276</td>\n",
" <td>0.796968</td>\n",
" <td>0.406951</td>\n",
" <td>1.036804</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>-0.774988</td>\n",
" <td>0.397108</td>\n",
" <td>-1.166810</td>\n",
" <td>-1.360880</td>\n",
" <td>-0.725304</td>\n",
" <td>1.160456</td>\n",
" <td>0.122417</td>\n",
" <td>1.302718</td>\n",
" <td>-0.629019</td>\n",
" <td>-1.664261</td>\n",
" <td>-0.060875</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>-0.211988</td>\n",
" <td>0.915280</td>\n",
" <td>0.797642</td>\n",
" <td>-1.626310</td>\n",
" <td>-0.880756</td>\n",
" <td>-0.952941</td>\n",
" <td>1.273095</td>\n",
" <td>0.707316</td>\n",
" <td>0.690538</td>\n",
" <td>-1.044318</td>\n",
" <td>0.366244</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 0 1 2 3 4 5 6 \\\n",
"9 1.217911 0.523844 -0.499948 -0.396952 -0.106933 -0.593192 0.354691 \n",
"10 -0.081751 -1.712562 -1.636044 -0.017625 -1.693798 -0.878965 -0.088157 \n",
"11 -2.071525 -0.864797 1.145536 0.840013 0.320359 -0.920446 0.952525 \n",
"12 -0.774988 0.397108 -1.166810 -1.360880 -0.725304 1.160456 0.122417 \n",
"13 -0.211988 0.915280 0.797642 -1.626310 -0.880756 -0.952941 1.273095 \n",
"\n",
" 7 8 9 10 \n",
"9 0.977050 -1.455930 -0.195214 0.228962 \n",
"10 1.244197 1.245123 1.138779 0.687644 \n",
"11 0.120276 0.796968 0.406951 1.036804 \n",
"12 1.302718 -0.629019 -1.664261 -0.060875 \n",
"13 0.707316 0.690538 -1.044318 0.366244 "
]
},
"metadata": {},
"execution_count": 17
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "_-mZf6nSoSpv"
},
"source": [
"## Model"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "o9dFIdw6oTqf",
"outputId": "cfa1085f-49c5-4914-8893-969ad2902eca"
},
"source": [
"inputs = keras.layers.Input(shape=(x.shape[1], x.shape[2]))\n",
"lstm_out = keras.layers.LSTM(32)(inputs)\n",
"outputs = keras.layers.Dense(1)(lstm_out)\n",
"model = keras.Model(inputs=inputs, outputs=outputs)\n",
"model.compile(optimizer=keras.optimizers.Adam(\n",
" learning_rate=0.001), \n",
" loss=\"mse\"\n",
")\n",
"model.summary()"
],
"execution_count": 18,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Model: \"model\"\n",
"_________________________________________________________________\n",
" Layer (type) Output Shape Param # \n",
"=================================================================\n",
" input_1 (InputLayer) [(None, 14, 11)] 0 \n",
" \n",
" lstm (LSTM) (None, 32) 5632 \n",
" \n",
" dense (Dense) (None, 1) 33 \n",
" \n",
"=================================================================\n",
"Total params: 5,665\n",
"Trainable params: 5,665\n",
"Non-trainable params: 0\n",
"_________________________________________________________________\n"
]
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "m58-dWFsofvJ",
"outputId": "f5f6f55d-304f-4665-c799-6a08ffbc427b"
},
"source": [
"model_name = \"lstm_synthetic_data\"\n",
"path_checkpoint = f\"/content/drive/My Drive/Colab Notebooks/forecasting/{model_name}.h5\"\n",
"es_callback = keras.callbacks.EarlyStopping(monitor=\"val_loss\", min_delta=0, patience=5)\n",
"\n",
"modelckpt_callback = keras.callbacks.ModelCheckpoint(\n",
" monitor=\"val_loss\",\n",
" filepath=path_checkpoint,\n",
" verbose=1,\n",
" save_weights_only=True,\n",
" save_best_only=True,\n",
")\n",
"\n",
"history = model.fit(\n",
" dataset_train,\n",
" epochs=50,\n",
" validation_data=dataset_validation,\n",
" callbacks=[es_callback, modelckpt_callback],\n",
" verbose=0,\n",
")"
],
"execution_count": 19,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"\n",
"Epoch 00001: val_loss improved from inf to 1.01623, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00002: val_loss improved from 1.01623 to 0.90712, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00003: val_loss improved from 0.90712 to 0.79865, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00004: val_loss improved from 0.79865 to 0.68095, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00005: val_loss improved from 0.68095 to 0.54637, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00006: val_loss improved from 0.54637 to 0.42664, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00007: val_loss improved from 0.42664 to 0.34809, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00008: val_loss improved from 0.34809 to 0.31409, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00009: val_loss improved from 0.31409 to 0.30171, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00010: val_loss improved from 0.30171 to 0.29520, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00011: val_loss improved from 0.29520 to 0.29034, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00012: val_loss improved from 0.29034 to 0.28592, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00013: val_loss improved from 0.28592 to 0.28150, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00014: val_loss improved from 0.28150 to 0.27697, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00015: val_loss improved from 0.27697 to 0.27230, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00016: val_loss improved from 0.27230 to 0.26742, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00017: val_loss improved from 0.26742 to 0.26226, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00018: val_loss improved from 0.26226 to 0.25683, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00019: val_loss improved from 0.25683 to 0.25114, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00020: val_loss improved from 0.25114 to 0.24522, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00021: val_loss improved from 0.24522 to 0.23910, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00022: val_loss improved from 0.23910 to 0.23285, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00023: val_loss improved from 0.23285 to 0.22653, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00024: val_loss improved from 0.22653 to 0.22021, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00025: val_loss improved from 0.22021 to 0.21396, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00026: val_loss improved from 0.21396 to 0.20784, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00027: val_loss improved from 0.20784 to 0.20189, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00028: val_loss improved from 0.20189 to 0.19616, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00029: val_loss improved from 0.19616 to 0.19065, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00030: val_loss improved from 0.19065 to 0.18537, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00031: val_loss improved from 0.18537 to 0.18033, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00032: val_loss improved from 0.18033 to 0.17551, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00033: val_loss improved from 0.17551 to 0.17091, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00034: val_loss improved from 0.17091 to 0.16651, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00035: val_loss improved from 0.16651 to 0.16229, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00036: val_loss improved from 0.16229 to 0.15825, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00037: val_loss improved from 0.15825 to 0.15438, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00038: val_loss improved from 0.15438 to 0.15067, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00039: val_loss improved from 0.15067 to 0.14711, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00040: val_loss improved from 0.14711 to 0.14368, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00041: val_loss improved from 0.14368 to 0.14039, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00042: val_loss improved from 0.14039 to 0.13723, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00043: val_loss improved from 0.13723 to 0.13418, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00044: val_loss improved from 0.13418 to 0.13124, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00045: val_loss improved from 0.13124 to 0.12840, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00046: val_loss improved from 0.12840 to 0.12566, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00047: val_loss improved from 0.12566 to 0.12301, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00048: val_loss improved from 0.12301 to 0.12045, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00049: val_loss improved from 0.12045 to 0.11797, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n",
"\n",
"Epoch 00050: val_loss improved from 0.11797 to 0.11558, saving model to /content/drive/My Drive/Colab Notebooks/forecasting/lstm_synthetic_data.h5\n"
]
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 261
},
"id": "Y_dcWpvPo9N0",
"outputId": "b21f297c-7f05-4bf8-f408-2538d2e86959"
},
"source": [
"loss_df = pd.DataFrame({\n",
" \"train_loss\": history.history[\"loss\"],\n",
" \"validation_loss\": history.history[\"val_loss\"]\n",
"})\n",
"loss_df.plot(kind=\"line\", \n",
" y=[\"train_loss\", \"validation_loss\"], \n",
" colormap=\"coolwarm\", \n",
" figsize=(9, 3), \n",
" fontsize=12,\n",
" title=\"LSTM Training Loss\",\n",
" xlabel=\"epoch\", \n",
" ylabel=\"loss\")"
],
"execution_count": 27,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f8696ad2d50>"
]
},
"metadata": {},
"execution_count": 27
},
{
"output_type": "display_data",
"data": {
"image/png": "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I42MiBdsNm5L87ale+vSI2md8923ZUTSiEQCBAbxGKC+oMAiIiK7lEBg42DlvpBItNMc9QJMS5ept659s3XRjuWYN43GvNdGdCy3+G3aep+DAC8MRTqCTMQLNel+uIn4gScS6djmhZwMf1u6vz7ir+/Yf5Nt4V27h0iBRUREdmvBYBq52Wk7dbmrO+ccrQnnhZtoG9FoOy2xto3LsXai/rQl2kYs1kZLl3XRjmAU88YMVdV0tGsnGtuxQARe2IuE/cATDvgBJ81fFyASTiPcsS3sre/Y3tk+nMZBE/O3e9D3zlJgERER6WNmRjhkhENp5OYk59H/iUT7JsEnFvensY5lL9x0hBxv2k48vun2uD/f5AejWLydeNw7TizuLXe/U/pH39lfgUVERES2LRhMIzuY1meXxrako7coFtsYYgp2chzSjlBgERERkS3q2luUk5262LDrjr4RERGR3YYCi4iIiAx4CiwiIiIy4CmwiIiIyICnwCIiIiIDnrntfA31QGJmFcDqJB2+GKhM0rGlZzrn/U/nPDV03vufznn/25FzPsY5V9LThl06sCSTmS1yzk1LdR27E53z/qdznho67/1P57z/9fU51yUhERERGfAUWERERGTAU2DZsrtSXcBuSOe8/+mcp4bOe//TOe9/fXrONYZFREREBjz1sIiIiMiAp8AiIiIiA54CSzdmVmhm882sycxWm9m5qa5psDGzq8xskZnFzOy+bts+a2YfmFmzmS0wszEpKnNQMbOImd3t/5luMLO3zeykLtt13pPAzB40sw1mVm9my83s0i7bdM6TyMz2MbOomT3YZd25/v8DTWb2JzMrTGWNg4WZPe+f60b/82GXbX12zhVYNjcXiANDgfOAeWZ2QGpLGnTWA7cA93RdaWbFwJPA94BCYBHwSL9XNzgFgTXAMUAecCPwqJmN1XlPqp8AY51zucAXgFvMbKrOeb+YC7zRseD/Pf5b4AK8v9+bgV+nprRB6SrnXLb/2Rf6/pxr0G0XZpYF1AAHOueW++seANY552antLhByMxuAUY552b5y5cBs5xzR/jLWXhPSTzIOfdBygodpMxsKXAzUITOe9KZ2b7A88A1QD4650ljZucApwPvAXs75843sx/jhcdz/TZ7Ae8DRc65htRVu+szs+eBB51z/9dtfZ+ec/WwbGo8kOgIK74lgHpY+scBeOcbAOdcE7ASnf8+Z2ZD8f68L0PnPanM7Ndm1gx8AGwAnkHnPGnMLBeYA3yr26bu53wlXm/6+P6rblD7iZlVmtkrZnasv65Pz7kCy6aygfpu6+qAnBTUsjvKxjvfXen89zEzCwF/AH7v/2te5z2JnHNX4J3Lo/AuA8XQOU+mHwJ3O+fWdluvc548NwB7AiPxnr3yF783pU/PuQLLphqB3G7rcgF1F/YPnf8kM7M04AG8f+Vc5a/WeU8y51ybc+5lYBRwOTrnSWFmU4DPAbf3sFnnPEmcc6875xqcczHn3O+BV4AZ9PE5D+5cmYPOciBoZvs451b46ybjdZtL8i0DLupY8K/r74XOf58wMwPuxhv8NsM51+pv0nnvP0E2nlud8753LDAW+NT74042EDCz/YG/4/19DoCZ7QlE8P7el77lAMP789xn51w9LF3415GfBOaYWZaZTQdOxfsXqfQRMwuaWToQwPvLJN3MgsB84EAz+5K//fvAUg1C7DPzgAnAKc65li7rdd6TwMyGmNk5ZpZtZgEz+zzwZeA5dM6T5S684DfF//wGeBr4PN5l0FPM7Cg/IM4BntSA251jZvlm9vmOv8fN7DzgaLyA2Lfn3DmnT5cP3i2GfwKagE+Bc1Nd02D7ADfhJfCun5v8bZ/DG5zYgndHxdhU1zsYPsAY/zxH8bppOz7n6bwn7ZyXAC8AtXhj494Bvtplu8558v8b3IR390rH8rn+3+tNwJ+BwlTXuKt//D/nb+Bd5qkFXgOOT8Y5123NIiIiMuDpkpCIiIgMeAosIiIiMuApsIiIiMiAp8AiIiIiA54Ci4iIiAx4CiwiIiIy4CmwiMigYGbHmtlfU12HiCSHAouIiIgMeAosItKvzOx8M1toZm+b2W/9x9Y3mtntZrbMzJ4zsxK/7RQze83MlprZfDMr8NfvbWb/MrMlZvam/2ZYgGwze9zMPjCzP/jvTxKRQUCBRUT6jZlNAM4GpjvnpgBtwHlAFrDIOXcA3uPsf+Dvcj9wg3NuEt6j7TvW/wGY65ybDBwBbPDXHwR8E9gf73X305P+Q4lIv9DbmkWkP30WmAq84Xd+ZADlQDvwiN/mQeBJM8sD8p1zL/jrfw88ZmY5wEjn3HwA51wUwD/eQufcWn/5bbw3976c/B9LRJJNgUVE+pMBv3fOfWeTlWbf69ZuR19yFusy34b+jhMZNHRJSET603PAGWY2BMDMCs1sDN7fRWf4bc4FXnbO1QE1ZnaUv/4C4AXnvZp+rZmd5h8jYmaZ/fpTiEi/078+RKTfOOfeM7MbgX+YWRrQClyJ9+r5Q/1t5XjjXAAuAn7jB5KPgYv99RcAvzWzOf4xzuzHH0NEUsCc29GeVxGRvmFmjc657FTXISIDly4JiYiIyICnHhYREREZ8NTDIiIiIgOeAouIiIgMeAosIiIiMuApsIiIiMiAp8AiIiIiA54Ci4iIiAx4/x+76gYiczQDZQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 648x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "s54aHrsmMa3W"
},
"source": [
"## Predictions - validation"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "HZCp2Lo2MZeV",
"outputId": "f1c25285-e969-479d-9ff0-23f1ceb49747"
},
"source": [
"for x_validation, y_validation in dataset_validation.take(1):\n",
" print(x_validation.shape, y_validation.shape)"
],
"execution_count": 21,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"(256, 14, 11) (256,)\n"
]
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 261
},
"id": "vp0tYKV1qHFL",
"outputId": "9d2e1e82-2fbb-472f-d676-bc35ef146d06"
},
"source": [
"validation_diff = pd.DataFrame({\n",
" \"y_pred\": model.predict(x_validation).flatten(),\n",
" \"y_true\": y_validation.numpy()\n",
"})\n",
"val_mse = round(metrics.mean_squared_error(\n",
" y_true=validation_diff[\"y_true\"],\n",
" y_pred=validation_diff[\"y_pred\"],\n",
"), 3)\n",
"validation_diff.plot(kind=\"line\", \n",
" y=[\"y_true\", \"y_pred\"], \n",
" colormap=\"coolwarm\", \n",
" figsize=(12, 3), \n",
" fontsize=12,\n",
" title=f\"Validation predictions. neg_mean_squared_error = {val_mse}\",\n",
" xlabel=\"index\", \n",
" ylabel=\"value\")"
],
"execution_count": 22,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f8698381950>"
]
},
"metadata": {},
"execution_count": 22
},
{
"output_type": "display_data",
"data": {
"image/png": "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