From 152b0c4afd77bb3f96d61a023042faabeb235336 Mon Sep 17 00:00:00 2001 From: wassname Date: Tue, 20 Oct 2020 06:49:31 +0800 Subject: [PATCH] working --- notebooks/RNN_Timeseries_Seq2Seq.ipynb | 3264 ------------------------ notebooks/RNN_Timeseries_Seq2Seq.py | 457 ---- 2 files changed, 3721 deletions(-) delete mode 100644 notebooks/RNN_Timeseries_Seq2Seq.ipynb delete mode 100644 notebooks/RNN_Timeseries_Seq2Seq.py diff --git a/notebooks/RNN_Timeseries_Seq2Seq.ipynb b/notebooks/RNN_Timeseries_Seq2Seq.ipynb deleted file mode 100644 index f59bf4e..0000000 --- a/notebooks/RNN_Timeseries_Seq2Seq.ipynb +++ /dev/null @@ -1,3264 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-10T01:25:12.788851Z", - "start_time": "2020-10-10T01:25:12.783398Z" - } - }, - "source": [ - "# Sequence to Sequence Models for Timeseries Regression\n", - "\n", - "\n", - "In this notebook we are going to tackle a harder problem: \n", - "- predicting the future on a timeseries\n", - "- using an LSTM\n", - "- with rough uncertainty (uncalibrated)\n", - "- outputing sequence of predictions\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "- [ ] TODO mike autocorrelation baseline\n", - "- [x] TODO mike acorn data\n", - "- [ ] TODO mike handle multiple houses. Multiindex" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:27:09.448780Z", - "start_time": "2020-10-18T07:27:09.018747Z" - } - }, - "outputs": [], - "source": [ - "# OPTIONAL: Load the \"autoreload\" extension so that code can change. But blacklist large modules\n", - "%load_ext autoreload\n", - "%autoreload 2\n", - "%aimport -pandas\n", - "%aimport -torch\n", - "%aimport -numpy\n", - "%aimport -matplotlib\n", - "%aimport -dask\n", - "%aimport -tqdm\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:31:56.528476Z", - "start_time": "2020-10-18T07:31:56.478567Z" - } - }, - "outputs": [], - "source": [ - "# Imports\n", - "import torch\n", - "from torch import nn, optim\n", - "from torch.nn import functional as F\n", - "from torch.autograd import Variable\n", - "import torch\n", - "import torch.utils.data\n", - "\n", - "import pandas as pd\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "plt.rcParams['figure.figsize'] = (12.0, 4.0)\n", - "plt.style.use('ggplot')\n", - "\n", - "from pathlib import Path\n", - "from tqdm.auto import tqdm\n", - "\n", - "import pytorch_lightning as pl" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:27:10.589899Z", - "start_time": "2020-10-18T07:27:10.503402Z" - } - }, - "outputs": [], - "source": [ - "from seq2seq_time.data.dataset import Seq2SeqDataSet, Seq2SeqDataSets\n", - "from seq2seq_time.predict import predict" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:27:10.619540Z", - "start_time": "2020-10-18T07:27:10.592972Z" - } - }, - "outputs": [], - "source": [ - "import logging, sys\n", - "# logging.basicConfig(stream=sys.stdout, level=logging.INFO)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-10T01:28:32.492160Z", - "start_time": "2020-10-10T01:28:32.488140Z" - } - }, - "source": [ - "## Parameters" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:27:10.661223Z", - "start_time": "2020-10-18T07:27:10.621920Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "using cuda\n" - ] - } - ], - "source": [ - "device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n", - "print(f'using {device}')\n", - "\n", - "columns_target=['energy(kWh/hh)']\n", - "window_past = 48*4\n", - "window_future = 48*4\n", - "batch_size = 64\n", - "num_workers = 0\n", - "freq = '30T'\n", - "max_rows = 1e5" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Load data" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:27:10.702018Z", - "start_time": "2020-10-18T07:27:10.663465Z" - }, - "lines_to_next_cell": 0 - }, - "outputs": [], - "source": [ - "\n", - "def get_smartmeter_df(indir=Path('../data/raw/smart-meters-in-london'), max_files=1):\n", - " \"\"\"\n", - " Data loading and cleanding is always messy, so understand this code is optional.\n", - " \"\"\"\n", - " \n", - " # Load csv files\n", - " csv_files = sorted((indir/'halfhourly_dataset').glob('*.csv'))[:max_files]\n", - " \n", - " # concatendate them\n", - " df = pd.concat([pd.read_csv(f, parse_dates=[1], na_values=['Null']) for f in csv_files])\n", - " \n", - " # Add ACORN categories\n", - " df_households = pd.read_csv(indir/'informations_households.csv')\n", - " df_households = df_households[['LCLid', 'stdorToU', 'Acorn_grouped']]\n", - " df = pd.merge(df, df_households, on='LCLid')\n", - " \n", - " df = df.set_index('tstp')\n", - " \n", - " # Drop nan and 0's\n", - " df = df[df['energy(kWh/hh)']!=0]\n", - " df = df.dropna()\n", - " \n", - " # Add time features \n", - " time = df.index.to_series()\n", - " df[\"month\"] = time.dt.month\n", - " df['day'] = time.dt.day\n", - " df['week'] = time.dt.week\n", - " df['hour'] = time.dt.hour\n", - " df['minute'] = time.dt.minute\n", - " df['dayofweek'] = time.dt.dayofweek\n", - " \n", - " # Load weather data\n", - " df_weather = pd.read_csv(indir/'weather_hourly_darksky.csv', parse_dates=[3])\n", - " use_cols = ['visibility', 'windBearing', 'temperature', 'time', 'dewPoint',\n", - " 'pressure', 'apparentTemperature', 'windSpeed', \n", - " 'humidity']\n", - " df_weather = df_weather[use_cols].set_index('time')\n", - " df_weather = df_weather.resample(freq).first().ffill() # Resample to match energy data \n", - " \n", - " # Join weather and energy data\n", - " df = pd.merge(df, df_weather, how='inner', left_index=True, right_index=True, sort=True)\n", - " \n", - " # Holidays\n", - " df_hols = pd.read_csv(indir/'uk_bank_holidays.csv', parse_dates=[0])\n", - " holidays = set(df_hols['Bank holidays'].dt.round('D')) \n", - " def is_holiday(dt):\n", - " return dt in holidays\n", - " days = df.index.floor('D')\n", - " holiday_mapping = days.unique().to_series().apply(is_holiday).astype(int).to_dict()\n", - " df['holiday'] = days.to_series().map(holiday_mapping).values\n", - "\n", - " # Loop over houses\n", - " for name, df_h in df.groupby('LCLid'):\n", - "\n", - " yield df_h" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Our dataset is the london smartmeter data. But at half hour intervals" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:27:14.677877Z", - "start_time": "2020-10-18T07:27:10.704252Z" - }, - "scrolled": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/wassname/anaconda/envs/seq2seq-time/lib/python3.7/site-packages/ipykernel_launcher.py:27: FutureWarning: Series.dt.weekofyear and Series.dt.week have been deprecated. Please use Series.dt.isocalendar().week instead.\n" - ] - } - ], - "source": [ - "dfs = get_smartmeter_df()\n", - "\n", - "# Just get the first one for now\n", - "dfs = list(dfs)\n", - "\n", - "# df = df.resample(freq).first().dropna() # Where empty we will backfill, this will respect causality, and mostly maintain the mean\n", - "\n", - "# df = df.tail(int(max_rows)).copy() # Just use last X rows\n", - "df = pd.concat(dfs[:6], 0)\n", - "# df = dfs[0]" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:27:14.722131Z", - "start_time": "2020-10-18T07:27:14.681417Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "array(['MAC000002', 'MAC000246', 'MAC000450', 'MAC001074', 'MAC003223',\n", - " 'MAC003239'], dtype=object)" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.LCLid.unique()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:15:20.702022Z", - "start_time": "2020-10-18T07:15:20.646916Z" - } - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:27:14.905468Z", - "start_time": "2020-10-18T07:27:14.724956Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
energy(kWh/hh)monthdayweekhourminutedayofweekvisibilitywindBearingtemperaturedewPointpressureapparentTemperaturewindSpeedhumidityholiday
count144861.000000144861.000000144861.000000144861.000000144861.000000144861.000000144861.000000144861.000000144861.000000144861.000000144861.000000144861.000000144861.000000144861.00000144861.000000144861.000000
mean0.4804756.70266015.80376427.25062611.50525714.9994822.99733511.223563194.10606010.4083246.4998791012.8883149.1230043.931980.7836050.021869
std0.6085993.6735588.77666715.9935106.92227415.0000522.0001093.04192691.4036675.9333145.17518711.0719217.1436472.038070.1408420.146257
min0.0140001.0000001.0000001.0000000.0000000.0000000.0000000.2700000.000000-5.640000-9.980000975.740000-8.8800000.040000.2300000.000000
25%0.0960003.0000008.00000013.0000006.0000000.0000001.00000010.220000117.0000006.2600002.6700001006.4600003.5900002.440000.7000000.000000
50%0.2180007.00000016.00000028.00000012.0000000.0000003.00000012.260000215.0000009.8700006.6100001013.6600008.9900003.700000.8100000.000000
75%0.64000010.00000023.00000042.00000018.00000030.0000005.00000013.080000255.00000014.44000010.4600001020.34000014.4400005.130000.8900000.000000
max5.25000012.00000031.00000052.00000023.00000030.0000006.00000016.090000359.00000032.40000019.8800001043.32000032.42000014.800001.0000001.000000
\n", - "
" - ], - "text/plain": [ - " energy(kWh/hh) month day week \\\n", - "count 144861.000000 144861.000000 144861.000000 144861.000000 \n", - "mean 0.480475 6.702660 15.803764 27.250626 \n", - "std 0.608599 3.673558 8.776667 15.993510 \n", - "min 0.014000 1.000000 1.000000 1.000000 \n", - "25% 0.096000 3.000000 8.000000 13.000000 \n", - "50% 0.218000 7.000000 16.000000 28.000000 \n", - "75% 0.640000 10.000000 23.000000 42.000000 \n", - "max 5.250000 12.000000 31.000000 52.000000 \n", - "\n", - " hour minute dayofweek visibility \\\n", - "count 144861.000000 144861.000000 144861.000000 144861.000000 \n", - "mean 11.505257 14.999482 2.997335 11.223563 \n", - "std 6.922274 15.000052 2.000109 3.041926 \n", - "min 0.000000 0.000000 0.000000 0.270000 \n", - "25% 6.000000 0.000000 1.000000 10.220000 \n", - "50% 12.000000 0.000000 3.000000 12.260000 \n", - "75% 18.000000 30.000000 5.000000 13.080000 \n", - "max 23.000000 30.000000 6.000000 16.090000 \n", - "\n", - " windBearing temperature dewPoint pressure \\\n", - "count 144861.000000 144861.000000 144861.000000 144861.000000 \n", - "mean 194.106060 10.408324 6.499879 1012.888314 \n", - "std 91.403667 5.933314 5.175187 11.071921 \n", - "min 0.000000 -5.640000 -9.980000 975.740000 \n", - "25% 117.000000 6.260000 2.670000 1006.460000 \n", - "50% 215.000000 9.870000 6.610000 1013.660000 \n", - "75% 255.000000 14.440000 10.460000 1020.340000 \n", - "max 359.000000 32.400000 19.880000 1043.320000 \n", - "\n", - " apparentTemperature windSpeed humidity holiday \n", - "count 144861.000000 144861.00000 144861.000000 144861.000000 \n", - "mean 9.123004 3.93198 0.783605 0.021869 \n", - "std 7.143647 2.03807 0.140842 0.146257 \n", - "min -8.880000 0.04000 0.230000 0.000000 \n", - "25% 3.590000 2.44000 0.700000 0.000000 \n", - "50% 8.990000 3.70000 0.810000 0.000000 \n", - "75% 14.440000 5.13000 0.890000 0.000000 \n", - "max 32.420000 14.80000 1.000000 1.000000 " - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.describe()" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:28:31.172955Z", - "start_time": "2020-10-18T07:28:30.773541Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
energy(kWh/hh)monthdayweekhourminutedayofweekvisibilitywindBearingtemperaturedewPointpressureapparentTemperaturewindSpeedhumidityholidaystdorToULCLidAcorn_grouped
2012-10-12 11:30:00-0.5545130.897591-0.4333970.859688-0.0729901.0000350.5013070.7549310.7974970.367701-0.390302-0.5092460.4853271.485734-1.445630-0.1495270.00.01.0
2012-10-12 12:00:000.2999110.897591-0.4333970.8596880.071471-0.9999650.5013070.7549310.7209140.581747-0.421219-0.4984080.6631081.466108-1.800639-0.1495270.00.01.0
2012-10-12 12:30:00-0.3688400.897591-0.4333970.8596880.0714711.0000350.5013070.7549310.7209140.581747-0.421219-0.4984080.6631081.466108-1.800639-0.1495270.00.01.0
2012-10-12 13:00:00-0.5347950.897591-0.4333970.8596880.215933-0.9999650.5013070.7549310.6443300.603657-0.390302-0.4830540.6813061.505361-1.800639-0.1495270.00.01.0
2012-10-12 13:30:00-0.4624980.897591-0.4333970.8596880.2159331.0000350.5013070.7549310.6443300.603657-0.390302-0.4830540.6813061.505361-1.800639-0.1495270.00.01.0
............................................................
2014-02-27 22:00:00-0.521650-1.2801421.275686-1.1411311.516088-0.9999650.0013320.9127260.239531-1.063208-0.939076-0.651950-1.079705-0.4474740.400416-0.1495270.05.01.0
2014-02-27 22:30:00-0.120728-1.2801421.275686-1.1411311.5160881.0000350.0013320.9127260.239531-1.063208-0.939076-0.651950-1.079705-0.4474740.400416-0.1495270.05.01.0
2014-02-27 23:00:00-0.653100-1.2801421.275686-1.1411311.660550-0.9999650.0013320.9225890.064483-1.091860-0.944873-0.746785-1.078305-0.5799530.471418-0.1495270.05.01.0
2014-02-27 23:30:00-0.692535-1.2801421.275686-1.1411311.6605501.0000350.0013320.9225890.064483-1.091860-0.944873-0.746785-1.078305-0.5799530.471418-0.1495270.05.01.0
2014-02-28 00:00:00-0.643242-1.2801421.389625-1.141131-1.662069-0.9999650.5013070.462352-0.044922-1.112085-0.960332-0.841620-1.071306-0.6878980.471418-0.1495270.05.01.0
\n", - "

144861 rows × 19 columns

\n", - "
" - ], - "text/plain": [ - " energy(kWh/hh) month day week hour \\\n", - "2012-10-12 11:30:00 -0.554513 0.897591 -0.433397 0.859688 -0.072990 \n", - "2012-10-12 12:00:00 0.299911 0.897591 -0.433397 0.859688 0.071471 \n", - "2012-10-12 12:30:00 -0.368840 0.897591 -0.433397 0.859688 0.071471 \n", - "2012-10-12 13:00:00 -0.534795 0.897591 -0.433397 0.859688 0.215933 \n", - "2012-10-12 13:30:00 -0.462498 0.897591 -0.433397 0.859688 0.215933 \n", - "... ... ... ... ... ... \n", - "2014-02-27 22:00:00 -0.521650 -1.280142 1.275686 -1.141131 1.516088 \n", - "2014-02-27 22:30:00 -0.120728 -1.280142 1.275686 -1.141131 1.516088 \n", - "2014-02-27 23:00:00 -0.653100 -1.280142 1.275686 -1.141131 1.660550 \n", - "2014-02-27 23:30:00 -0.692535 -1.280142 1.275686 -1.141131 1.660550 \n", - "2014-02-28 00:00:00 -0.643242 -1.280142 1.389625 -1.141131 -1.662069 \n", - "\n", - " minute dayofweek visibility windBearing \\\n", - "2012-10-12 11:30:00 1.000035 0.501307 0.754931 0.797497 \n", - "2012-10-12 12:00:00 -0.999965 0.501307 0.754931 0.720914 \n", - "2012-10-12 12:30:00 1.000035 0.501307 0.754931 0.720914 \n", - "2012-10-12 13:00:00 -0.999965 0.501307 0.754931 0.644330 \n", - "2012-10-12 13:30:00 1.000035 0.501307 0.754931 0.644330 \n", - "... ... ... ... ... \n", - "2014-02-27 22:00:00 -0.999965 0.001332 0.912726 0.239531 \n", - "2014-02-27 22:30:00 1.000035 0.001332 0.912726 0.239531 \n", - "2014-02-27 23:00:00 -0.999965 0.001332 0.922589 0.064483 \n", - "2014-02-27 23:30:00 1.000035 0.001332 0.922589 0.064483 \n", - "2014-02-28 00:00:00 -0.999965 0.501307 0.462352 -0.044922 \n", - "\n", - " temperature dewPoint pressure apparentTemperature \\\n", - "2012-10-12 11:30:00 0.367701 -0.390302 -0.509246 0.485327 \n", - "2012-10-12 12:00:00 0.581747 -0.421219 -0.498408 0.663108 \n", - "2012-10-12 12:30:00 0.581747 -0.421219 -0.498408 0.663108 \n", - "2012-10-12 13:00:00 0.603657 -0.390302 -0.483054 0.681306 \n", - "2012-10-12 13:30:00 0.603657 -0.390302 -0.483054 0.681306 \n", - "... ... ... ... ... \n", - "2014-02-27 22:00:00 -1.063208 -0.939076 -0.651950 -1.079705 \n", - "2014-02-27 22:30:00 -1.063208 -0.939076 -0.651950 -1.079705 \n", - "2014-02-27 23:00:00 -1.091860 -0.944873 -0.746785 -1.078305 \n", - "2014-02-27 23:30:00 -1.091860 -0.944873 -0.746785 -1.078305 \n", - "2014-02-28 00:00:00 -1.112085 -0.960332 -0.841620 -1.071306 \n", - "\n", - " windSpeed humidity holiday stdorToU LCLid \\\n", - "2012-10-12 11:30:00 1.485734 -1.445630 -0.149527 0.0 0.0 \n", - "2012-10-12 12:00:00 1.466108 -1.800639 -0.149527 0.0 0.0 \n", - "2012-10-12 12:30:00 1.466108 -1.800639 -0.149527 0.0 0.0 \n", - "2012-10-12 13:00:00 1.505361 -1.800639 -0.149527 0.0 0.0 \n", - "2012-10-12 13:30:00 1.505361 -1.800639 -0.149527 0.0 0.0 \n", - "... ... ... ... ... ... \n", - "2014-02-27 22:00:00 -0.447474 0.400416 -0.149527 0.0 5.0 \n", - "2014-02-27 22:30:00 -0.447474 0.400416 -0.149527 0.0 5.0 \n", - "2014-02-27 23:00:00 -0.579953 0.471418 -0.149527 0.0 5.0 \n", - "2014-02-27 23:30:00 -0.579953 0.471418 -0.149527 0.0 5.0 \n", - "2014-02-28 00:00:00 -0.687898 0.471418 -0.149527 0.0 5.0 \n", - "\n", - " Acorn_grouped \n", - "2012-10-12 11:30:00 1.0 \n", - "2012-10-12 12:00:00 1.0 \n", - "2012-10-12 12:30:00 1.0 \n", - "2012-10-12 13:00:00 1.0 \n", - "2012-10-12 13:30:00 1.0 \n", - "... ... \n", - "2014-02-27 22:00:00 1.0 \n", - "2014-02-27 22:30:00 1.0 \n", - "2014-02-27 23:00:00 1.0 \n", - "2014-02-27 23:30:00 1.0 \n", - "2014-02-28 00:00:00 1.0 \n", - "\n", - "[144861 rows x 19 columns]" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import sklearn\n", - "from sklearn.preprocessing import StandardScaler, OrdinalEncoder\n", - "from sklearn_pandas import DataFrameMapper\n", - "\n", - "columns_input_numeric = list(df.drop(columns=columns_target)._get_numeric_data().columns)\n", - "columns_categorical = list(set(df.columns)-set(columns_input_numeric)-set(columns_target))\n", - "\n", - "output_scalers = [([n], StandardScaler()) for n in columns_target]\n", - "transformers=output_scalers + \\\n", - "[([n], StandardScaler()) for n in columns_input_numeric] + \\\n", - "[([n], OrdinalEncoder()) for n in columns_categorical]\n", - "scaler = DataFrameMapper(transformers, df_out=True)\n", - "df_norm = scaler.fit_transform(df)\n", - "df_norm" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:28:31.210067Z", - "start_time": "2020-10-18T07:28:31.174849Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "StandardScaler()" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "output_scaler = next(filter(lambda r:r[0][0] in columns_target, scaler.features))[-1]\n", - "output_scaler" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:28:36.430829Z", - "start_time": "2020-10-18T07:28:36.250590Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "6" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dfs_norm = [d.resample(freq).first().ffill().dropna() for _, d in df_norm.groupby('LCLid')]\n", - "len(dfs_norm)" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:28:37.155841Z", - "start_time": "2020-10-18T07:28:36.474491Z" - }, - "lines_to_next_cell": 0 - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# split data, with the test in the future\n", - "n_split = -int(len(dfs_norm)*0.2)\n", - "df_train = dfs_norm[:n_split]\n", - "df_test = dfs_norm[n_split:]\n", - "\n", - "# Show split\n", - "pd.concat(df_train)['energy(kWh/hh)'].plot(label='train')\n", - "pd.concat(df_test)['energy(kWh/hh)'].plot(label='test')\n", - "plt.ylabel('energy(kWh/hh)')\n", - "plt.legend()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:21:38.239847Z", - "start_time": "2020-10-18T07:21:37.709627Z" - }, - "lines_to_next_cell": 2 - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Dataset" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:28:37.972005Z", - "start_time": "2020-10-18T07:28:37.922547Z" - } - }, - "outputs": [], - "source": [ - "# These are the columns that we wont know in the future\n", - "# We need to blank them out in x_future\n", - "columns_blank=['visibility',\n", - " 'windBearing', 'temperature', 'dewPoint', 'pressure',\n", - " 'apparentTemperature', 'windSpeed', 'humidity']" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:28:38.223683Z", - "start_time": "2020-10-18T07:28:38.086585Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - ", , , , ])>\n", - "])>\n" - ] - } - ], - "source": [ - "ds_train = Seq2SeqDataSets(df_train,\n", - " window_past=window_past,\n", - " window_future=window_future,\n", - " columns_blank=columns_blank)\n", - "ds_test = Seq2SeqDataSets(df_test,\n", - " window_past=window_past,\n", - " window_future=window_future,\n", - " columns_blank=columns_blank)\n", - "print(ds_train)\n", - "print(ds_test)" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:28:38.291525Z", - "start_time": "2020-10-18T07:28:38.244447Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "[array([[-1.2801421 , 0.4781144 , -1.2036566 , ..., 1. ,\n", - " -4. , 1. ],\n", - " [-1.2801421 , 0.4781144 , -1.2036566 , ..., 1. ,\n", - " -3.9791667 , 1. ],\n", - " [-1.2801421 , 0.4781144 , -1.2036566 , ..., 1. ,\n", - " -3.9583333 , 1. ],\n", - " ...,\n", - " [-1.2801421 , 0.819931 , -1.2036566 , ..., 1. ,\n", - " -0.0625 , 1. ],\n", - " [-1.2801421 , 0.93386984, -1.1411309 , ..., 1. ,\n", - " -0.04166667, 1. ],\n", - " [-1.2801421 , 0.93386984, -1.1411309 , ..., 1. ,\n", - " -0.02083333, 1. ]], dtype=float32),\n", - " array([[-0.28339753],\n", - " [-0.55615604],\n", - " [-0.59887725],\n", - " [-0.6366691 ],\n", - " [-0.5808029 ],\n", - " [-0.6563866 ],\n", - " [-0.57423043],\n", - " [-0.6629591 ],\n", - " [-0.5775167 ],\n", - " [-0.6465278 ],\n", - " [-0.59723413],\n", - " [-0.6268104 ],\n", - " [-0.61859477],\n", - " [-0.608736 ],\n", - " [-0.6383122 ],\n", - " [-0.5890185 ],\n", - " [-0.57258725],\n", - " [ 0.04851345],\n", - " [-0.4279924 ],\n", - " [-0.22917444],\n", - " [-0.2686094 ],\n", - " [ 0.16353211],\n", - " [-0.32776186],\n", - " [-0.5890185 ],\n", - " [-0.5808029 ],\n", - " [-0.66624534],\n", - " [-0.5775167 ],\n", - " [-0.6465278 ],\n", - " [-0.595591 ],\n", - " [-0.6268104 ],\n", - " [-0.61695164],\n", - " [-0.60709286],\n", - " [-0.6366691 ],\n", - " [-0.4904311 ],\n", - " [-0.5265798 ],\n", - " [-0.25382128],\n", - " [-0.08622269],\n", - " [ 0.46422374],\n", - " [ 0.33441696],\n", - " [-0.04185835],\n", - " [-0.10429705],\n", - " [-0.07307769],\n", - " [-0.08293644],\n", - " [-0.04350147],\n", - " [ 0.01236473],\n", - " [-0.03692898],\n", - " [-0.02214086],\n", - " [-0.12565765],\n", - " [-0.29982877],\n", - " [-0.61859477],\n", - " [-0.5808029 ],\n", - " [-0.63338286],\n", - " [-0.60544974],\n", - " [-0.6120222 ],\n", - " [-0.4477099 ],\n", - " [-0.5282229 ],\n", - " [-0.621881 ],\n", - " [-0.608736 ],\n", - " [-0.6202379 ],\n", - " [-0.61695164],\n", - " [-0.61695164],\n", - " [-0.61366534],\n", - " [-0.6300966 ],\n", - " [-0.53315234],\n", - " [-0.6120222 ],\n", - " [-0.08293644],\n", - " [-0.33597746],\n", - " [-0.4904311 ],\n", - " [-0.621881 ],\n", - " [-0.56437165],\n", - " [-0.6383122 ],\n", - " [-0.5808029 ],\n", - " [-0.60709286],\n", - " [ 0.2801939 ],\n", - " [-0.11579891],\n", - " [-0.0385721 ],\n", - " [-0.17330824],\n", - " [-0.27189565],\n", - " [-0.22260195],\n", - " [-0.23081757],\n", - " [-0.27025253],\n", - " [-0.4279924 ],\n", - " [-0.47235674],\n", - " [-0.5528698 ],\n", - " [-0.20617071],\n", - " [-0.30475813],\n", - " [ 1.1017557 ],\n", - " [-0.36719683],\n", - " [-0.17988074],\n", - " [ 0.01236473],\n", - " [-0.04021522],\n", - " [ 0.02222347],\n", - " [-0.0665052 ],\n", - " [-0.0040665 ],\n", - " [-0.07965019],\n", - " [-0.01885462],\n", - " [-0.06486208],\n", - " [-0.3655537 ],\n", - " [-0.5857323 ],\n", - " [-0.61859477],\n", - " [-0.5890185 ],\n", - " [-0.6514572 ],\n", - " [-0.57587355],\n", - " [-0.6629591 ],\n", - " [-0.5775167 ],\n", - " [-0.64981407],\n", - " [-0.5939479 ],\n", - " [-0.63173974],\n", - " [-0.6153085 ],\n", - " [-0.61366534],\n", - " [-0.6366691 ],\n", - " [-0.57587355],\n", - " [-0.59066164],\n", - " [-0.449353 ],\n", - " [-0.16509262],\n", - " [-0.19631197],\n", - " [-0.20288447],\n", - " [-0.24231943],\n", - " [-0.20124134],\n", - " [-0.38198495],\n", - " [-0.569301 ],\n", - " [-0.6103791 ],\n", - " [-0.5857323 ],\n", - " [-0.635026 ],\n", - " [-0.5462973 ],\n", - " [-0.11251266],\n", - " [-0.5134348 ],\n", - " [-0.4772861 ],\n", - " [-0.3737693 ],\n", - " [-0.59230477],\n", - " [-0.18809634],\n", - " [-0.16837887],\n", - " [ 0.00907848],\n", - " [-0.04350147],\n", - " [ 0.9949527 ],\n", - " [-0.3524087 ],\n", - " [-0.31461686],\n", - " [-0.07800706],\n", - " [-0.04185835],\n", - " [-0.09608143],\n", - " [-0.03528585],\n", - " [-0.10429705],\n", - " [-0.02871336],\n", - " [-0.16837887],\n", - " [-0.06486208],\n", - " [-0.28504065],\n", - " [-0.52329355],\n", - " [-0.61859477],\n", - " [-0.46742737],\n", - " [-0.52986604],\n", - " [-0.61859477],\n", - " [-0.60544974],\n", - " [-0.6021635 ],\n", - " [-0.62516725],\n", - " [-0.59723413],\n", - " [-0.63338286],\n", - " [-0.595591 ],\n", - " [-0.63338286],\n", - " [-0.59723413],\n", - " [-0.63338286],\n", - " [-0.6038066 ],\n", - " [-0.63173974],\n", - " [-0.53315234],\n", - " [-0.59723413],\n", - " [ 0.09780716],\n", - " [-0.29982877],\n", - " [-0.23903318],\n", - " [-0.25875068],\n", - " [ 0.3179857 ],\n", - " [ 0.95716083],\n", - " [ 0.32455823],\n", - " [-0.41320428],\n", - " [-0.23246069],\n", - " [-0.20288447],\n", - " [-0.15194763],\n", - " [-0.20288447],\n", - " [-0.31297374],\n", - " [-0.43127865],\n", - " [-0.45263925],\n", - " [-0.10922641],\n", - " [-0.23574694],\n", - " [-0.13715951],\n", - " [ 0.52830553],\n", - " [ 0.14545774],\n", - " [-0.50850546],\n", - " [-0.28997 ],\n", - " [-0.17166512],\n", - " [ 0.04029783],\n", - " [-0.04350147],\n", - " [ 0.04029783],\n", - " [-0.04185835],\n", - " [-0.00735275]], dtype=float32),\n", - " array([[-1.2801421 , 0.93386984, -1.1411309 , ..., 1. ,\n", - " 0. , 0. ],\n", - " [-1.2801421 , 0.93386984, -1.1411309 , ..., 1. ,\n", - " 0.02083333, 0. ],\n", - " [-1.2801421 , 0.93386984, -1.1411309 , ..., 1. ,\n", - " 0.04166667, 0. ],\n", - " ...,\n", - " [-1.2801421 , 1.2756865 , -1.1411309 , ..., 1. ,\n", - " 3.9166667 , 0. ],\n", - " [-1.2801421 , 1.2756865 , -1.1411309 , ..., 1. ,\n", - " 3.9375 , 0. ],\n", - " [-1.2801421 , 1.3896253 , -1.1411309 , ..., 1. ,\n", - " 3.9583333 , 0. ]], dtype=float32),\n", - " array([[-6.32189587e-02],\n", - " [-9.11520571e-02],\n", - " [-5.47940433e-01],\n", - " [-5.84089160e-01],\n", - " [-6.26810372e-01],\n", - " [-5.93947887e-01],\n", - " [-6.20237887e-01],\n", - " [-6.03806615e-01],\n", - " [-6.15308523e-01],\n", - " [-6.12022221e-01],\n", - " [-6.12022221e-01],\n", - " [-6.21881008e-01],\n", - " [-6.03806615e-01],\n", - " [-6.35025978e-01],\n", - " [-5.93947887e-01],\n", - " [-5.69301009e-01],\n", - " [-5.49583554e-01],\n", - " [-1.04297049e-01],\n", - " [-5.59442282e-01],\n", - " [-6.64602220e-01],\n", - " [-5.75873554e-01],\n", - " [-6.46527827e-01],\n", - " [-5.98877251e-01],\n", - " [-5.36438584e-01],\n", - " [-4.06650454e-03],\n", - " [-5.67657888e-01],\n", - " [-6.44884706e-01],\n", - " [-5.77516675e-01],\n", - " [-6.66245341e-01],\n", - " [-5.77516675e-01],\n", - " [-6.44884706e-01],\n", - " [-6.02163494e-01],\n", - " [-5.85732281e-01],\n", - " [-3.78698707e-01],\n", - " [-9.77245495e-02],\n", - " [-1.89739481e-01],\n", - " [-1.30587026e-01],\n", - " [ 6.31822348e-01],\n", - " [ 6.74543560e-01],\n", - " [ 7.43536092e-03],\n", - " [-6.15758300e-02],\n", - " [ 2.05803495e-02],\n", - " [-3.69289778e-02],\n", - " [-6.97914511e-02],\n", - " [ 6.98740557e-02],\n", - " [ 8.62866524e-04],\n", - " [-5.70962811e-03],\n", - " [-1.33873269e-01],\n", - " [-4.03345555e-01],\n", - " [-6.36669099e-01],\n", - " [-5.49583554e-01],\n", - " [-6.62959099e-01],\n", - " [-5.61085403e-01],\n", - " [-6.64602220e-01],\n", - " [-5.64371645e-01],\n", - " [-6.64602220e-01],\n", - " [-5.66014767e-01],\n", - " [-6.66245341e-01],\n", - " [-5.70944130e-01],\n", - " [-6.58029735e-01],\n", - " [-5.82446039e-01],\n", - " [-6.44884706e-01],\n", - " [-5.93947887e-01],\n", - " [-6.38312221e-01],\n", - " [-6.03806615e-01],\n", - " [-5.44654191e-01],\n", - " [-1.04297049e-01],\n", - " [-2.25888193e-01],\n", - " [-4.41137403e-01],\n", - " [-1.19085155e-01],\n", - " [ 1.84892714e-01],\n", - " [-1.04297049e-01],\n", - " [-4.27992404e-01],\n", - " [-2.42319435e-01],\n", - " [-2.16029450e-01],\n", - " [-5.05219221e-01],\n", - " [-5.70944130e-01],\n", - " [-6.44884706e-01],\n", - " [-5.36438584e-01],\n", - " [-6.16951644e-01],\n", - " [-5.79159796e-01],\n", - " [-6.07092857e-01],\n", - " [-4.39494252e-01],\n", - " [-3.45836222e-01],\n", - " [-4.13204283e-01],\n", - " [-3.11330616e-01],\n", - " [ 5.28305531e-01],\n", - " [ 5.01565747e-02],\n", - " [-3.77055556e-01],\n", - " [-2.43962556e-01],\n", - " [-7.14345723e-02],\n", - " [-8.45795646e-02],\n", - " [-1.24014527e-01],\n", - " [ 4.19409573e-02],\n", - " [-5.00739664e-02],\n", - " [ 3.37253399e-02],\n", - " [-6.48620799e-02],\n", - " [-2.87133586e-02],\n", - " [-4.50996131e-01],\n", - " [-6.16951644e-01],\n", - " [-5.75873554e-01],\n", - " [-6.64602220e-01],\n", - " [-5.77516675e-01],\n", - " [-6.41598463e-01],\n", - " [-6.02163494e-01],\n", - " [-6.15308523e-01],\n", - " [-6.31739736e-01],\n", - " [-5.89018524e-01],\n", - " [-6.61315978e-01],\n", - " [-5.87375402e-01],\n", - " [-6.56386614e-01],\n", - " [-5.47940433e-01],\n", - " [-5.85732281e-01],\n", - " [-7.80070648e-02],\n", - " [-3.75412434e-01],\n", - " [-2.58750677e-01],\n", - " [-1.99598223e-01],\n", - " [-2.42319435e-01],\n", - " [ 2.83480138e-01],\n", - " [-5.72587252e-01],\n", - " [-5.84089160e-01],\n", - " [-6.03806615e-01],\n", - " [-6.05449736e-01],\n", - " [-6.43241584e-01],\n", - " [-5.33152342e-01],\n", - " [-6.59672856e-01],\n", - " [-5.87375402e-01],\n", - " [-5.74230433e-01],\n", - " [-6.25167251e-01],\n", - " [-5.51226676e-01],\n", - " [-4.06631798e-01],\n", - " [-2.71895647e-01],\n", - " [-5.70962811e-03],\n", - " [ 8.99651468e-01],\n", - " [ 2.16112062e-01],\n", - " [-3.86914313e-01],\n", - " [-3.95129919e-01],\n", - " [ 6.33015633e-02],\n", - " [-5.50033376e-02],\n", - " [-2.06170708e-01],\n", - " [-2.86683768e-01],\n", - " [-2.78468162e-01],\n", - " [ 1.14940608e+00],\n", - " [ 1.10339880e+00],\n", - " [ 8.22424710e-01],\n", - " [-2.06170708e-01],\n", - " [-4.64141130e-01],\n", - " [-5.57799160e-01],\n", - " [-6.28453493e-01],\n", - " [-5.97234130e-01],\n", - " [-6.16951644e-01],\n", - " [-6.15308523e-01],\n", - " [-6.07092857e-01],\n", - " [-6.30096614e-01],\n", - " [-5.93947887e-01],\n", - " [-6.43241584e-01],\n", - " [-5.87375402e-01],\n", - " [-6.54743433e-01],\n", - " [-5.52869797e-01],\n", - " [ 2.27613926e-01],\n", - " [ 1.83249593e-01],\n", - " [ 9.28777903e-02],\n", - " [ 1.86535835e-01],\n", - " [ 5.16803682e-01],\n", - " [-3.98416162e-01],\n", - " [-3.01471889e-01],\n", - " [-5.93947887e-01],\n", - " [ 1.55316487e-01],\n", - " [-6.25167251e-01],\n", - " [-5.72587252e-01],\n", - " [-6.56386614e-01],\n", - " [-5.72587252e-01],\n", - " [-6.58029735e-01],\n", - " [-5.72587252e-01],\n", - " [-6.48170948e-01],\n", - " [-5.82446039e-01],\n", - " [-6.33382857e-01],\n", - " [-5.70944130e-01],\n", - " [-3.68839949e-01],\n", - " [-1.14155784e-01],\n", - " [ 2.35829547e-01],\n", - " [ 9.78521407e-01],\n", - " [ 1.34000862e+00],\n", - " [ 7.92848468e-01],\n", - " [ 6.00153171e-02],\n", - " [ 4.14911378e-03],\n", - " [-1.05940171e-01],\n", - " [ 1.42873728e+00],\n", - " [ 1.25949562e+00],\n", - " [ 1.21184516e+00],\n", - " [ 1.48953283e+00]], dtype=float32)]" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# we can treat it like an array\n", - "ds_train[0]\n", - "len(ds_train)\n", - "ds_train[-1]" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:28:38.848911Z", - "start_time": "2020-10-18T07:28:38.405411Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
monthdayweekhourminutedayofweekvisibilitywindBearingtemperaturedewPointpressureapparentTemperaturewindSpeedhumidityholidaystdorToULCLidAcorn_groupedtsp_daysis_past
2014-02-23 17:00:00-1.2801420.819931-1.2036570.793780-0.9999651.5012560.2979820.1082450.168823-0.056013-0.2726110.3201452.045089-0.593609-0.1495270.00.01.0-0.1041671.0
2014-02-23 17:30:00-1.2801420.819931-1.2036570.7937801.0000351.5012560.2979820.1082450.168823-0.056013-0.2726110.3201452.045089-0.593609-0.1495270.00.01.0-0.0833331.0
2014-02-23 18:00:00-1.2801420.819931-1.2036570.938242-0.9999651.5012560.2979820.0207210.098036-0.096592-0.2409990.2613511.902797-0.522607-0.1495270.00.01.0-0.0625001.0
2014-02-23 18:30:00-1.2801420.819931-1.2036570.9382421.0000351.5012560.2979820.0207210.098036-0.096592-0.2409990.2613511.902797-0.522607-0.1495270.00.01.0-0.0416671.0
2014-02-23 19:00:00-1.2801420.819931-1.2036571.082703-0.9999651.5012560.590561-0.0777440.059272-0.092727-0.2166130.2291551.201150-0.451605-0.1495270.00.01.0-0.0208331.0
\n", - "
" - ], - "text/plain": [ - " month day week hour minute \\\n", - "2014-02-23 17:00:00 -1.280142 0.819931 -1.203657 0.793780 -0.999965 \n", - "2014-02-23 17:30:00 -1.280142 0.819931 -1.203657 0.793780 1.000035 \n", - "2014-02-23 18:00:00 -1.280142 0.819931 -1.203657 0.938242 -0.999965 \n", - "2014-02-23 18:30:00 -1.280142 0.819931 -1.203657 0.938242 1.000035 \n", - "2014-02-23 19:00:00 -1.280142 0.819931 -1.203657 1.082703 -0.999965 \n", - "\n", - " dayofweek visibility windBearing temperature \\\n", - "2014-02-23 17:00:00 1.501256 0.297982 0.108245 0.168823 \n", - "2014-02-23 17:30:00 1.501256 0.297982 0.108245 0.168823 \n", - "2014-02-23 18:00:00 1.501256 0.297982 0.020721 0.098036 \n", - "2014-02-23 18:30:00 1.501256 0.297982 0.020721 0.098036 \n", - "2014-02-23 19:00:00 1.501256 0.590561 -0.077744 0.059272 \n", - "\n", - " dewPoint pressure apparentTemperature windSpeed \\\n", - "2014-02-23 17:00:00 -0.056013 -0.272611 0.320145 2.045089 \n", - "2014-02-23 17:30:00 -0.056013 -0.272611 0.320145 2.045089 \n", - "2014-02-23 18:00:00 -0.096592 -0.240999 0.261351 1.902797 \n", - "2014-02-23 18:30:00 -0.096592 -0.240999 0.261351 1.902797 \n", - "2014-02-23 19:00:00 -0.092727 -0.216613 0.229155 1.201150 \n", - "\n", - " humidity holiday stdorToU LCLid Acorn_grouped \\\n", - "2014-02-23 17:00:00 -0.593609 -0.149527 0.0 0.0 1.0 \n", - "2014-02-23 17:30:00 -0.593609 -0.149527 0.0 0.0 1.0 \n", - "2014-02-23 18:00:00 -0.522607 -0.149527 0.0 0.0 1.0 \n", - "2014-02-23 18:30:00 -0.522607 -0.149527 0.0 0.0 1.0 \n", - "2014-02-23 19:00:00 -0.451605 -0.149527 0.0 0.0 1.0 \n", - "\n", - " tsp_days is_past \n", - "2014-02-23 17:00:00 -0.104167 1.0 \n", - "2014-02-23 17:30:00 -0.083333 1.0 \n", - "2014-02-23 18:00:00 -0.062500 1.0 \n", - "2014-02-23 18:30:00 -0.041667 1.0 \n", - "2014-02-23 19:00:00 -0.020833 1.0 " - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# We can get rows\n", - "x_past, y_past, x_future, y_future = ds_train.get_rows(10)\n", - "\n", - "# Plot one instance, this is what the model sees\n", - "y_past['energy(kWh/hh)'].plot(label='past')\n", - "y_future['energy(kWh/hh)'].plot(ax=plt.gca(), label='future')\n", - "plt.legend()\n", - "plt.ylabel('energy(kWh/hh)')\n", - "\n", - "# Notice we've added on two new columns tsp (time since present) and is_past\n", - "x_past.tail()" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:28:38.930034Z", - "start_time": "2020-10-18T07:28:38.851766Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
monthdayweekhourminutedayofweekvisibilitywindBearingtemperaturedewPointpressureapparentTemperaturewindSpeedhumidityholidaystdorToULCLidAcorn_groupedtsp_daysis_past
2014-02-27 17:00:00-1.2801421.275686-1.1411310.793780-0.9999650.0013320.00.00.00.00.00.00.00.0-0.1495270.00.01.03.8958330.0
2014-02-27 17:30:00-1.2801421.275686-1.1411310.7937801.0000350.0013320.00.00.00.00.00.00.00.0-0.1495270.00.01.03.9166670.0
2014-02-27 18:00:00-1.2801421.275686-1.1411310.938242-0.9999650.0013320.00.00.00.00.00.00.00.0-0.1495270.00.01.03.9375000.0
2014-02-27 18:30:00-1.2801421.275686-1.1411310.9382421.0000350.0013320.00.00.00.00.00.00.00.0-0.1495270.00.01.03.9583330.0
2014-02-27 19:00:00-1.2801421.275686-1.1411311.082703-0.9999650.0013320.00.00.00.00.00.00.00.0-0.1495270.00.01.03.9791670.0
\n", - "
" - ], - "text/plain": [ - " month day week hour minute \\\n", - "2014-02-27 17:00:00 -1.280142 1.275686 -1.141131 0.793780 -0.999965 \n", - "2014-02-27 17:30:00 -1.280142 1.275686 -1.141131 0.793780 1.000035 \n", - "2014-02-27 18:00:00 -1.280142 1.275686 -1.141131 0.938242 -0.999965 \n", - "2014-02-27 18:30:00 -1.280142 1.275686 -1.141131 0.938242 1.000035 \n", - "2014-02-27 19:00:00 -1.280142 1.275686 -1.141131 1.082703 -0.999965 \n", - "\n", - " dayofweek visibility windBearing temperature \\\n", - "2014-02-27 17:00:00 0.001332 0.0 0.0 0.0 \n", - "2014-02-27 17:30:00 0.001332 0.0 0.0 0.0 \n", - "2014-02-27 18:00:00 0.001332 0.0 0.0 0.0 \n", - "2014-02-27 18:30:00 0.001332 0.0 0.0 0.0 \n", - "2014-02-27 19:00:00 0.001332 0.0 0.0 0.0 \n", - "\n", - " dewPoint pressure apparentTemperature windSpeed \\\n", - "2014-02-27 17:00:00 0.0 0.0 0.0 0.0 \n", - "2014-02-27 17:30:00 0.0 0.0 0.0 0.0 \n", - "2014-02-27 18:00:00 0.0 0.0 0.0 0.0 \n", - "2014-02-27 18:30:00 0.0 0.0 0.0 0.0 \n", - "2014-02-27 19:00:00 0.0 0.0 0.0 0.0 \n", - "\n", - " humidity holiday stdorToU LCLid Acorn_grouped \\\n", - "2014-02-27 17:00:00 0.0 -0.149527 0.0 0.0 1.0 \n", - "2014-02-27 17:30:00 0.0 -0.149527 0.0 0.0 1.0 \n", - "2014-02-27 18:00:00 0.0 -0.149527 0.0 0.0 1.0 \n", - "2014-02-27 18:30:00 0.0 -0.149527 0.0 0.0 1.0 \n", - "2014-02-27 19:00:00 0.0 -0.149527 0.0 0.0 1.0 \n", - "\n", - " tsp_days is_past \n", - "2014-02-27 17:00:00 3.895833 0.0 \n", - "2014-02-27 17:30:00 3.916667 0.0 \n", - "2014-02-27 18:00:00 3.937500 0.0 \n", - "2014-02-27 18:30:00 3.958333 0.0 \n", - "2014-02-27 19:00:00 3.979167 0.0 " - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Notice we've hidden some future columns to prevent cheating\n", - "x_future.tail()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Model" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:28:38.992920Z", - "start_time": "2020-10-18T07:28:38.933297Z" - }, - "lines_to_end_of_cell_marker": 2, - "lines_to_next_cell": 0 - }, - "outputs": [], - "source": [ - "\n", - "class Seq2SeqLSTMDecoder(nn.Module):\n", - " def __init__(self, input_size, input_size_decoder, output_size, hidden_size=32, lstm_layers=2, lstm_dropout=0, _min_std = 0.05):\n", - " super().__init__()\n", - " self._min_std = _min_std\n", - "\n", - " self.encoder = nn.LSTM(\n", - " input_size=input_size + output_size,\n", - " hidden_size=hidden_size,\n", - " batch_first=True,\n", - " num_layers=lstm_layers,\n", - " dropout=lstm_dropout,\n", - " )\n", - " self.decoder = nn.LSTM(\n", - " input_size=input_size_decoder,\n", - " hidden_size=hidden_size,\n", - " batch_first=True,\n", - " num_layers=lstm_layers,\n", - " dropout=lstm_dropout,\n", - " )\n", - " self.mean = nn.Linear(hidden_size, output_size)\n", - " self.std = nn.Linear(hidden_size, output_size)\n", - "\n", - " def forward(self, context_x, context_y, target_x, target_y=None):\n", - " x = torch.cat([context_x, context_y], -1)\n", - " _, (h_out, cell) = self.encoder(x)\n", - " \n", - " # output = [batch size, seq len, hid dim * n directions]\n", - " outputs, (_, _) = self.decoder(target_x, (h_out, cell))\n", - " \n", - " # outputs: [B, T, num_direction * H]\n", - " mean = self.mean(outputs)\n", - " log_sigma = self.std(outputs)\n", - " log_sigma = torch.clamp(log_sigma, np.log(self._min_std), -np.log(self._min_std))\n", - "\n", - " sigma = torch.exp(log_sigma)\n", - " y_dist = torch.distributions.Normal(mean, sigma)\n", - " return y_dist" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Lightning" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:28:39.258866Z", - "start_time": "2020-10-18T07:28:39.199738Z" - } - }, - "outputs": [], - "source": [ - "import pytorch_lightning as pl\n", - "\n", - "class PL_Seq2Seq(pl.LightningModule):\n", - " def __init__(self, **hparams):\n", - " super().__init__()\n", - " self._model = Seq2SeqLSTMDecoder(**hparams)\n", - "\n", - " def forward(self, x_past, y_past, x_future, y_future=None):\n", - " \"\"\"Eval/Predict\"\"\"\n", - " y_dist = self._model(x_past, y_past, x_future)\n", - " return y_dist\n", - "\n", - " def training_step(self, batch, batch_idx):\n", - " x_past, y_past, x_future, y_future = batch\n", - " y_dist = self.forward(*batch)\n", - " loss = -y_dist.log_prob(y_future).mean()\n", - " self.log_dict({'loss/train':loss})\n", - " return loss\n", - "\n", - " def validation_step(self, batch, batch_idx):\n", - " x_past, y_past, x_future, y_future = batch\n", - " y_dist = self.forward(*batch)\n", - " loss = -y_dist.log_prob(y_future).mean()\n", - " self.log_dict({'loss/val':loss})\n", - " return loss\n", - "\n", - " def configure_optimizers(self):\n", - " return torch.optim.Adam(self.parameters(), lr=1e-4)" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:28:40.424963Z", - "start_time": "2020-10-18T07:28:40.377865Z" - }, - "lines_to_next_cell": 2 - }, - "outputs": [], - "source": [ - "from torch.utils.data import DataLoader, random_split\n", - "from pytorch_lightning.loggers import CSVLogger\n", - "from pl_bolts.callbacks import PrintTableMetricsCallback\n" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:29:53.561973Z", - "start_time": "2020-10-18T07:28:41.332815Z" - }, - "lines_to_next_cell": 0 - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "GPU available: True, used: True\n", - "TPU available: False, using: 0 TPU cores\n", - "LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]\n", - "\n", - " | Name | Type | Params\n", - "----------------------------------------------\n", - "0 | _model | Seq2SeqLSTMDecoder | 30 K \n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(HTML(value='Validation sanity check'), FloatProgress(value=1.0, bar_style='info', layout=Layout…" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "fd5a790f632e45c98ae2df0a1229054d", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(HTML(value='Training'), FloatProgress(value=1.0, bar_style='info', layout=Layout(flex='2'), max…" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/wassname/anaconda/envs/seq2seq-time/lib/python3.7/site-packages/pytorch_lightning/utilities/distributed.py:45: UserWarning: Detected KeyboardInterrupt, attempting graceful shutdown...\n", - " warnings.warn(*args, **kwargs)\n" - ] - }, - { - "data": { - "text/plain": [ - "1" - ] - }, - "execution_count": 40, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "input_size = x_past.shape[-1]\n", - "output_size = y_future.shape[-1]\n", - "\n", - "model = PL_Seq2Seq(input_size=input_size,\n", - " input_size_decoder=input_size,\n", - " output_size=output_size,\n", - " hidden_size=32,\n", - " lstm_layers=2,\n", - " lstm_dropout=0.25).to(device)\n", - "\n", - "logger = CSVLogger(\"logs\", name=\"seq2seq\")\n", - "trainer = pl.Trainer(gpus=1,\n", - " logger=logger)\n", - "dl_train = DataLoader(ds_train,\n", - " batch_size=batch_size,\n", - " shuffle=True,\n", - " num_workers=8)\n", - "dl_test = DataLoader(ds_test, batch_size=batch_size, num_workers=4)\n", - "trainer.fit(model, dl_train, dl_test)" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:29:53.629832Z", - "start_time": "2020-10-18T07:29:53.564330Z" - } - }, - "outputs": [ - { - "ename": "KeyError", - "evalue": "\"['loss/val'] not in index\"", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mdf_hist\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'epoch'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdf_hist\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'epoch'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mffill\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mdf_histe\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdf_hist\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_index\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'epoch'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgroupby\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'epoch'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmean\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mdf_histe\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'loss/train'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'loss/val'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0mdf_histe\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda/envs/seq2seq-time/lib/python3.7/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 2906\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_iterator\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2907\u001b[0m \u001b[0mkey\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2908\u001b[0;31m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_listlike_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mraise_missing\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2909\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2910\u001b[0m \u001b[0;31m# take() does not accept boolean indexers\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda/envs/seq2seq-time/lib/python3.7/site-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_get_listlike_indexer\u001b[0;34m(self, key, axis, raise_missing)\u001b[0m\n\u001b[1;32m 1252\u001b[0m \u001b[0mkeyarr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnew_indexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_reindex_non_unique\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkeyarr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1253\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1254\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_read_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkeyarr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mraise_missing\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mraise_missing\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1255\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mkeyarr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexer\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1256\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda/envs/seq2seq-time/lib/python3.7/site-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_validate_read_indexer\u001b[0;34m(self, key, indexer, axis, raise_missing)\u001b[0m\n\u001b[1;32m 1302\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mraise_missing\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1303\u001b[0m \u001b[0mnot_found\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1304\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"{not_found} not in index\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1305\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1306\u001b[0m \u001b[0;31m# we skip the warning on Categorical\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mKeyError\u001b[0m: \"['loss/val'] not in index\"" - ] - } - ], - "source": [ - "df_hist = pd.read_csv(trainer.logger.experiment.metrics_file_path)\n", - "df_hist['epoch'] = df_hist['epoch'].ffill()\n", - "df_histe = df_hist.set_index('epoch').groupby('epoch').mean()\n", - "df_histe[['loss/train', 'loss/val']].plot()\n", - "df_histe" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Predict\n" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:30:35.288889Z", - "start_time": "2020-10-18T07:30:19.895439Z" - } - }, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "a1a27b53e8ee46c89dfc751782392132", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(HTML(value='predict'), FloatProgress(value=0.0, max=390.0), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
<xarray.Dataset>\n",
-       "Dimensions:        (t_ahead: 192, t_behind: 192, t_source: 24943)\n",
-       "Coordinates:\n",
-       "  * t_source       (t_source) datetime64[ns] 2012-09-18T09:00:00 ... 2012-09-...\n",
-       "  * t_ahead        (t_ahead) timedelta64[ns] 00:00:00 ... 3 days 23:30:00\n",
-       "  * t_behind       (t_behind) timedelta64[ns] -4 days +00:00:00 ... -1 days +...\n",
-       "    t_target       (t_source, t_ahead) datetime64[ns] 2012-09-18T09:00:00 ......\n",
-       "    t_past         (t_source, t_behind) datetime64[ns] 2012-09-14T09:00:00 .....\n",
-       "    t_ahead_hours  (t_ahead) float64 0.0 0.0 1.0 1.0 2.0 ... 94.0 94.0 95.0 95.0\n",
-       "Data variables:\n",
-       "    y_past         (t_source, t_behind) float32 0.061000023 ... 0.12699997\n",
-       "    nll            (t_source, t_ahead) float32 0.44390392 ... 0.79414505\n",
-       "    y_pred         (t_source, t_ahead) float32 0.33915406 ... 0.37555674\n",
-       "    y_pred_std     (t_source, t_ahead) float64 0.3371 0.332 ... 0.3789 0.379\n",
-       "    y_true         (t_source, t_ahead) float32 0.17700002 ... 0.05900002
" - ], - "text/plain": [ - "\n", - "Dimensions: (t_ahead: 192, t_behind: 192, t_source: 24943)\n", - "Coordinates:\n", - " * t_source (t_source) datetime64[ns] 2012-09-18T09:00:00 ... 2012-09-...\n", - " * t_ahead (t_ahead) timedelta64[ns] 00:00:00 ... 3 days 23:30:00\n", - " * t_behind (t_behind) timedelta64[ns] -4 days +00:00:00 ... -1 days +...\n", - " t_target (t_source, t_ahead) datetime64[ns] 2012-09-18T09:00:00 ......\n", - " t_past (t_source, t_behind) datetime64[ns] 2012-09-14T09:00:00 .....\n", - " t_ahead_hours (t_ahead) float64 0.0 0.0 1.0 1.0 2.0 ... 94.0 94.0 95.0 95.0\n", - "Data variables:\n", - " y_past (t_source, t_behind) float32 0.061000023 ... 0.12699997\n", - " nll (t_source, t_ahead) float32 0.44390392 ... 0.79414505\n", - " y_pred (t_source, t_ahead) float32 0.33915406 ... 0.37555674\n", - " y_pred_std (t_source, t_ahead) float64 0.3371 0.332 ... 0.3789 0.379\n", - " y_true (t_source, t_ahead) float32 0.17700002 ... 0.05900002" - ] - }, - "execution_count": 43, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ds_preds = predict(model.to(device), ds_test.datasets[0], batch_size, device=device, scaler=output_scaler)\n", - "ds_preds" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:30:35.342452Z", - "start_time": "2020-10-18T07:30:35.292433Z" - } - }, - "outputs": [], - "source": [ - "# TODO Metrics... smape etc" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:32:00.258755Z", - "start_time": "2020-10-18T07:31:59.385632Z" - } - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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lBaTuJa4+7zWXqNxm/R6PQaD4bjnuFoHHRsby+OPP87tt9/OjTfe2MYWH2/w4MHk5OS0uM327dvp0aMHXbt2BSA/P79B7//Ro0db7MVPTk5Gp9M57zAAdOrUiaSkpOPeu0uXLnTp0oX+/fszdOhQkpOTWbFiRYPSEiGEaIn0TAshglJUVBR9+vQhNTX1uES6KSNGjADg4MGDx/WU9u7dG7AngseOHXP2VIO91nb37t3Nvu6gQYOIjIxk+fLlzW4THh7eam/o4MGD2bZtG4WFhc7fHT16lN27dzN48OBW90+N6667jj59+pCRkeHR1wV7mcfGjRtb/M9R5jFixAjn4FAHm81GZmYm48ePb/Y90tPTURSlwedUVFREYWEhqampzT7PccFRW1vbxr0UQoQS6ZkWQgjscz1Pnz6dG264gWeeeYaxY8dSVVXFunXrOHbsGPfeey+nn346Q4cO5corr+Tll18mPDyce++9t8WyhJiYGO68804effRRoqKimDJlCiaTiaVLlzqT1V69evHLL79w8OBBoqOj6dChw3Gv8/e//53HHnuMyy67jGeffRZFUbjrrrvo1q0bl112mUdjYTAYeP755znjjDMIDw8/7vHi4mI2btzY4HdxcXGkpaUB9p7kxo8nJSXRvXt3evbs6XI74uLiuPnmm7n//vvp2rUrvXr14tlnn8VkMnHTTTc5t3PUi7/77ruAvQ76iSee4LrrruOll14iLCyMe++9lz59+nDWWWcB9kGKVVVVDB8+nNjYWPbs2cMjjzxC9+7dmTRpksttFEIISaaFEOJPb7zxBs8//zxPPPEE+/btIy4ujsGDBzsHDup0Or788ktuvPFGJkyYQFJSEnfffXerPZmPP/44HTt2ZN68ecyePZuEhAQmTJjgfHzOnDncdNNN9O/fn5qaGvbv33/ca0RFRfHdd98xe/Zs53NPO+00vv322yYT3raaMmUKZ599Nt98881xj33xxRd88cUXDX53xhlnOAfvzZ8/n/nz5zd4/KabbmpxOrvmPPvss4SHh3P99ddTWlrKiBEjWLFihbMEBDhulo7o6GgyMzO5/fbbOe2004iMjOS0004jMzPTWdoTERHBs88+y86dO6mpqaFbt25MnTqVjz76yDlIVQghXKFTFEXxdyOEEEIIIYQIRFIzLYQQQgghhJskmRZCCCGEEMJNkkwL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s3xLLl6Et8jxpH06nb13escO79wDVhTYvDmMd95px+HDBi64oJqzzjIFXN1vfd27W4mKsrF7t5FTT/VMMm21wgcfRPPVV9GMHVvLdddVEh9/sUdeWwsiIuDEE82sWxfOtddWuVWuUlSk5/nn7YninXdWeHUGGm9wp756yhQTX34ZxSefRPPgg+Utbrt+fRjz5sVitcLs2YGXSIMk0x4lvVm+pebiRRJvIQKLKyfwgQMtrFkToWo5dFeUlel48cVYtm0L98uS6d5iMNhjtmlTOIriXmJYX/1lwKdONXHddVUBc1tejREjzKxbF8HhwwZSUtTVN2/cGMZLL8VSV6cLyB5XcK++OioKzj/fxH//247t243NjivIyopg/vwYevSwMnt2uU/HP3iSJNMe1FSSJkmc96i5eJG7Bk2T41NolSsncEfd9PbtYZxyimeSlF27jLz0UiylpXquv76SSZNqAmIAlKtGjDCzfn2MW4lhfTk5BubMicdmgxkzKpgwwTdzavvD8OH242zt2nBSUlyvAV63Loxnn42je3crd9xR3uoy6Vrlbn31GWeY+PbbSObNi2Xu3NIGF7zHjul57712/PZbBIMG1XHvveUBNf6gMUmmvczdJM7dJCeUkiM1+yd3DZoWShcZofTdCAaunMDT0izExtpYuza8zcm0yQSvvx7DL79E0qGDlcceK6NPH+3Oa+uuESPMLFgA69apSwzr273byFNPxWE0KsyZUxawvYmuSky0MXiwfSDi2WebWq11VhRYvjySd95pR8+eFh56qNync7V7eto7d18jMhLuuaechx5qz7/+Fc+kSTXExSkcPGjgm2+i0OngkkuqmTatOuAHqkoy7WXuJnHuJjmhlBypIclT00LpIkO+G4HFlRO4wQAnn2zm11/D2zR1WUmJjqeeiuPAASMXX1zN3/5Wrek5ttsiMdFGr14W1q4NZ9o09cn0119H8t//tiMx0cZDDwV/Iu1w2WXVPPxwe5Yti2oxbrW18NJLsaxZE+FciMXXix55c9o7tXr1spdvLFwYw9tvxzh/f8opNVx5ZTVJScFx/Egy7WXuJnHuJjmhlByJtguliwz5bgSnMWNq+f77SDZvDmfkSHW9045lwN95px1ms4577ilnxIjAr41uzahRtXzySTRlZTri411P9D77LIqPPmrH6NG13HJLpU9XefS3gQMt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li1j9uzZ3HHHHfTs2ZNPPvmEVatWUVVV5e/maZLZbOaXX35h5syZPPDAA4wYMYLdu3eTlZUlf8OacODAAV599VU6d+7M//73P7Zv3+7vJmnarl27ePfdd7n55pt56KGHSExM5O233wakh7o527dv5+233+bmm2/m3nvvJSEhgQMHDgCBF7OQTKa7du1KVFQUO3fuxGKx8Nxzz/H666/z9NNPs379ekl2GnHEo7KyktLSUmw2G88//zwrVqzg008/5fPPP6esrMzPrdQOq9VKdXU1M2bMoFevXtTW1mI2m9m6dSsQeH8kfCE6OprIyEhyc3Opqqpi8+bN/Pjjj8yfP5/MzEy51dxIdHQ0RqOR8vJyAM477zwSExPJy8tj//79gFy0NabX66murnaerCdPnszAgQMpKChwJooSs7906tSJ//u//+Pyyy9n2LBhfPXVV5JQN0NRFCwWCxdffDF9+/YF4O9//7ufW6V90dHR3HzzzfTv35/i4mJ27drFt99+y7///W/Wr18fUKV+IZlMt2/fnueff57Fixdz1VVXccopp3DvvfcydOhQli9fTm1trb+bqCmO5O+0005jx44dvPTSS0yaNIk77riDs88+m+rqagoKCvzcSu0wGAyMGDGCfv36YbPZiI+P5+yzz2bp0qXOWk3RUFhYGOPGjeP777/nySef5KyzzuKuu+4iPT2dHTt2OJNGYafX6xk8eDAbNmxg1apVfPTRR7Rv35727duzfPlyQC7aGjMajZxzzjnk5OSwa9cuAEaPHk3nzp35/vvvAYmZg6IoREdHM2HCBOLi4hg7diwjR45kyZIlbNu2DYDi4mKsVqufW6oNOp2OwYMHM2TIEOfvFEXhyJEjzrsecsfoeKmpqQwcOBCr1crPP//Mueeey+23306fPn1YtmxZQOViIZNM5+TkcOjQIefPHTp04JlnnuGqq65yTjZ+7rnnAlBYWOiXNmpN45h17NiRU089lSNHjjiT5379+mGxWMjPz/dXMzUjJyfHWcphMBgAe9KjKAqDBg1i3Lhx5OTkAATUFbe31D++9Ho9Y8eO5c4776Rv3750794dgLFjx2KxWDh8+LA/m6oJ9eMVFhbGsGHD6NatG9u2baOqqopbb72VadOmYTAYpDTmT5s3b2bhwoV89NFH7N69m8GDB5OQkMD69eudCfWZZ56JzWbjyJEj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CCGEcJMk00IIIYQQQrhJkmkhhBBCCCHcJMm0EEIIIYQQbvL5oi1CCBGq6urqePPNN9myZQuVlZV06dKFK664gmHDhgGwZcsWFi5cSGFhIX379uXWW2+lY8eOAGzdupXPPvuMffv2ERMTw/z5852vW1ZWxqJFi9ixYwc1NTX06NGDq6++mr59+zbbloKCAl599VX27NlDUlIS06dPZ8iQIYB9uqwvvviCFStWUF1dzbBhw7jxxhubXWa4pKSEN954g3379lFSUsIrr7xCp06dnI8XFxfz5ptvsmPHDiIiIrjwwguZOnVqm+MphBBaID3TQgjhI1arlcTERB599FHefvttLrvsMl588UUKCgooLy/nueee47LLLuOtt94iLS2Nf//7387nRkZGMnHiRK666qrjXrempoY+ffrw1FNPsWjRIk499VSeeuopampqmm3LSy+9RGpqKm+99RaXX345L7zwAuXl5QD89NNPrFq1iscff5zXX38ds9nMW2+91exr6XQ6TjrpJO68884mH3/55Zfp1KkTCxYs4L777uPDDz9k69atLkZNCCG0TZJpIYTwkcjISC699FI6deqEXq9nxIgRdOrUiX379vHHH3+QkpLC2LFjCQ8P55JLLuHAgQMcOXIEgD59+jBhwoQGPb4OnTt35txzzyUhIQG9Xs/kyZOxWCzk5uY22Y7c3Fz279/PpZdeSnh4OGPGjKFHjx78/vvvAKxbt45JkyaRlJREZGQk559/Pr/99hu1tbVNvl779u0544wz6N2793GP1dTUsG3bNi688EKMRiOpqamMGTOGlStXuhtGIYTQFEmmhRDCT0pLS8nLyyMlJYVDhw7Rs2dP52ORkZF06dKFQ4cOqX7dAwcOYLFY6NKlS5OPHz58mM6dOxMVFeX8Xc+ePTl8+DBgL/Oov56XoijU1dWRl5enui2O12n8eu7slxBCaJEk00II4QcWi4WXX36ZU089lW7dulFTU3NcTXJ0dHSLpRpNqa6u5uWXX+biiy9utsa5ufcymUwADBs2jB9++IGCggKqq6tZsmQJAGazWVVbAKKioujfvz+fffYZZrOZffv2sXr16mZ7uYUQItDIAEQhhPAxm83GK6+8gtFoZPr06YC9J9qRzDpUV1cTGRnp8uuazWaefvpp+vbtywUXXOD8/R133MGxY8cAuP/++4mMjKS6urrBc00mk7OneuLEiRQVFTFnzhysVivnnnsu69ato0OHDuzYsYMnn3wSgI4dO/LCCy+02q5Zs2axcOFCbrnlFjp37kx6erqzF1wIIQKdJNNCCOFDiqLw2muvUVZWRkZGBkaj/c9wSkoKP/30k3O7mpoajh49SkpKikuvW1dXx7PPPkuHDh248cYbGzzWOOHNzc2loKCgQQKdk5PDKaecAoBer+fSSy/l0ksvBWDTpk106NCBDh06kJSUxHvvvadqnzt27Mh9993n/Pmll16iT58+ql5DCCG0Sso8hBDChxYsWMCRI0e49957CQ8Pd/7+5JNP5uDBg/z++++YzWY+/fRTevbsSbdu3QB7b7bZbMZqtaIoCmazGYvFAthLRp5//nnCwsKYMWMGen3Lf9qTk5NJTU3lk08+wWw288cff5CTk8OYMWMAqKysJD8/H0VROHz4MO+++y4XX3xxi69rNpupq6tztqd+Scjhw4cxmUxYLBZWrVrF5s2bOffcc90LoBBCaIxOqT8qRAghhNccO3aM2267jbCwsAaJ6Y033kh6ejqbN2/mrbfe4tixY855ph2zd2zbto05c+Y0eL1Bgwbx6KOPsn37dh599FHCw8PR6XTOx++//34GDhzYZFsKCgr4z3/+45xn+rrrrnPOM52bm8vTTz9NUVERcXFxnH322a0mv45e7Po+/vhjAL755hs+//xzzGYzqamp/OMf/2hy5g8hhAhEkkwLIYQQQgjhJinzEEIIIYQQwk2STAshhBBCCOEmSaaFEEIIIYRwkyTTQgghhBBCuEmSaSGEEEIIIdwkybQQQgghhBBukmRaCCGEEEIIN0kyLYQQQgghhJskmRZCCCGEEMJN/w8XQ3ygNR/QtgAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "def plot_prediction(ds_preds, i):\n", - " \"\"\"Plot a prediction into the future, at a single point in time.\"\"\"\n", - " d = ds_preds.isel(t_source=i)\n", - "\n", - " # Get arrays\n", - " xf = d.t_target\n", - " yp = d.y_pred\n", - " s = d.y_pred_std\n", - " yt = d.y_true\n", - " now = d.t_source.squeeze()\n", - " \n", - " \n", - " plt.figure(figsize=(12, 4))\n", - " \n", - " plt.scatter(xf, yt, label='true', c='k', s=6)\n", - " ylim = plt.ylim()\n", - "\n", - " # plot prediction\n", - " plt.fill_between(xf, yp-2*s, yp+2*s, alpha=0.25,\n", - " facecolor=\"b\",\n", - " interpolate=True,\n", - " label=\"2 std\",)\n", - " plt.plot(xf, yp, label='pred', c='b')\n", - "\n", - " # plot true\n", - " plt.scatter(\n", - " d.t_past,\n", - " d.y_past,\n", - " c='k',\n", - " s=6\n", - " )\n", - " \n", - " # plot a red line for now\n", - " plt.vlines(x=now, ymin=0, ymax=1, label='now', color='r')\n", - " plt.ylim(*ylim)\n", - "\n", - " now=pd.Timestamp(now.values)\n", - " plt.title(f'Prediction NLL={d.nll.mean().item():2.2g}')\n", - " plt.xlabel(f'{now.date()}')\n", - " plt.ylabel('energy(kWh/hh)')\n", - " plt.legend()\n", - " plt.xticks(rotation=45)\n", - " plt.show()\n", - " \n", - "# plot_prediction(ds_preds, 0) \n", - "# plot_prediction(ds_preds, 12) # 6 hours later\n", - "plot_prediction(ds_preds, 24) # 12 hours later\n", - "plot_prediction(ds_preds, 48) # 12 hours later" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-10T02:54:21.496689Z", - "start_time": "2020-10-10T02:53:39.916Z" - } - }, - "source": [ - "## Error vs time ahead" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-11T10:17:55.322055Z", - "start_time": "2020-10-11T10:17:55.250658Z" - } - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 53, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:32:01.574900Z", - "start_time": "2020-10-18T07:32:01.183728Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'NLL vs time (no. samples=24943)')" - ] - }, - "execution_count": 53, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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pEZ+fj5cXV119nF0dIRcLodcLkdQUBCuX7+Oq1ev4vTp0zh79iwqKytRVlaGVatWYerUqTrXiYyMRGRkpOZ9Xl6e6T6UAe7u7ma5LlkGjr914/hbN44/8R6wTt7e3ga3iQq0jx07hjZt2sDX1xeZmZn45JNPYGNjg1deeQU+Pj61Hh8QEICsrCzk5OTAzc0Nx48f1wmUQ0NDsWnTJqhUKiiVSmRkZODpp59Gz549MWLECADVVUn27NmjN8gmIiIiIrIkogLtbdu2YeHChQCALVu2ICAgAHK5HBs3bsS8efNqPV4qlSImJgaLFi2CWq1G//794efnh3379gEABg4cCF9fX3Tt2hUzZ86EjY0NBgwYgFatWj3ARyMiIiIiMh9RgfatW7fg4uKCyspKXLp0CTNmzIBUKsU//vEP0RcKCQlBSEiIVtvAgQO13g8ZMgRDhgwxeI6OHTuiY8eOoq9JRERERGQuogJtJycnZGdn48aNGwgICECzZs1QUVFh6r4RERERETVaogLtF154AbNnz4aNjQ2mT58OADh37hxat25t0s4RERERETVWogLtfv36oWfPngAAOzs7AEBgYCDefPNNk3WMiIiIiKgxMxhoC4KgqXWtVqvRrFkzzWsAcHR0bIDuERERERE1TgYD7XHjxmHz5s0AgOHDhxs8wbZt2+q/V0REREREjZzBQHv58uWa12vWrGmQzhARERERNRUGA+27lxD18PBokM4QERERETUVNubuABERERFRU8RAm4iIiIjIBBhoExERERGZQK2BtlqtxhtvvIGqqqqG6A8RERERUZNQa6BtY2MDGxsbBtpERERERHUgamXIwYMHY+XKlXjuuefg5uamWcgGADw9PU3WOSIiIiKixkpUoL1p0yYAwC+//KKzjQvWEBERERHpEhVoM5gmIiIiIqqbOlUdycvLw2+//WaqvhARERERNRmiZrTz8vLw0Ucf4dq1awCATz/9FCdPnkRqaipef/11U/aPiIiIiKhREjWj/e9//xvdunXD5s2bIZNVx+adO3fWm7NNREREREQiA+2MjAxERUXBxubv3e3t7VFaWmqyjhERERERNWaiAm1nZ2dkZ2drtd28eRPu7u4m6RQRERERUWMnKkf72WefxZIlSxAVFQW1Wo1jx47hq6++QlRUlIm7R0RERETUOIkKtAcMGIAWLVpg//79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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "ds_preds.mean('t_source').plot.scatter('t_ahead_hours', 'nll') # Mean over all predictions\n", - "\n", - "# Tidy the graph\n", - "n = len(ds_preds.t_source)\n", - "plt.ylabel('Negative Log Likelihood (lower is better)')\n", - "plt.xlabel('Hours ahead')\n", - "plt.title(f'NLL vs time (no. samples={n})')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-11T09:32:13.207661Z", - "start_time": "2020-10-11T09:32:11.921740Z" - } - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 54, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:32:04.262783Z", - "start_time": "2020-10-18T07:32:01.966295Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "1" - ] - }, - "execution_count": 54, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAuIAAAFBCAYAAAAyg8riAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABjaUlEQVR4nO3deXyU1dn/8c/MZIdAIAkZA2EV2QooUlDqihTXik9rH2wRpZZqVVARqKigIKJWxQVBbR9Qq6WK2iqtS8sPN6SooKwGE0A2kYSEhLBmnfv8/hhmzDKTBZJZv+/Xy5dk5p6Zc18Mk2vOfZ3r2IwxBhERERERCSh7sAcgIiIiIhKNlIiLiIiIiASBEnERERERkSBQIi4iIiIiEgRKxEVEREREgkCJuIiIiIhIECgRFxEREREJAiXiIiJB8vHHH2Oz2dizZ0/QxrBnzx5SU1O9Y9i5cyc2m42VK1cGbUxN0Rzj7dq1Kw8++GAzjqrluFwu+vbtyzvvvBPsoYhIM1AiLiItYty4cdhsNiZNmlTnPpvNxl//+lfvzw0lQrWPD0cxMTG89NJLNW4bNmwYeXl5ZGZmBmdQwN133821115Lp06dgjaGk5GVlUVeXh5Dhw4N9lB8/h3/9a9/xWazNdtrOBwOZs6cyeTJk7Esq9meV0SCQ4m4iLSYxMREFixYwJYtW4I9lICwLAuXy9Xo4+Pi4nA6ndjtwfkozsvLY8mSJdx4441Bef2mqKio8Hm7w+HA6XQSGxsb4BEFnicG//M//0NRURHvvfdekEckIidLibiItJhhw4Zx5plnMnXq1IC+rjGGxx9/nO7duxMXF0ePHj146qmnvPffe++99OrVq87jbr75Zs466yzvz1999RUjR46kdevWpKen8/Of/5xdu3Z57585cyannnoqS5YsoXfv3sTFxfHNN9/Ued6uXbvicrn4zW9+g81m886Q1i5N8fz83nvvcfbZZ5OYmMiZZ55JdnY22dnZnHPOOSQlJTFkyBA2b95c4zUaGqsvS5YsoWvXrvTr16/e43Jzc7n88stp3bo1rVu35mc/+xnbtm3z3p+VlcXChQu9P19//fXYbLYax3Tp0oVnn33W+/Nrr73G6aefTkJCAl27duXOO+/k6NGj3vsvuOACfvvb3zJjxgxOOeUUOnbs6HNsvkpTHnroIbp37058fDzp6elcfPHFlJaW1nuOpaWljB8/njZt2pCWlsZdd91VY8a5qqqKmTNn0q1bNxISEujXrx9/+tOfvPf7+jv++OOPGTt2LID3tnHjxnkf88wzz9C7d28SEhLo2bMnc+bMoaqqqsZzTp8+nVtuuYXU1FR+8pOfABAbG8vll18e9leJRAQwIiIt4PrrrzcXXXSR+eyzz4zNZjMffvih9z7AvPLKK96fu3TpYmbPnu33uWof35D58+ebhIQE86c//cls2bLFPPfccyY+Pt4sXLjQGGNMbm6uAcyqVau8jykvLzft27c3zz77rDHGmOzsbNOqVStz3333mW+++cZs3LjRXH311aZnz56mtLTUGGPM/fffbxITE815551nPvvsM5Obm2sOHTpUZzwFBQXG4XCYp556yuTl5Zm8vDxjjDEfffSRAcx3331X4+fTTz/dfPDBByY7O9ucddZZpn///ubcc881y5cvN5s3bzY/+clPzJAhQ7zP35ix+nLVVVeZMWPG1Lhtx44dBjCffvqpMcaYY8eOmc6dO5vhw4ebL7/80nz55ZfmggsuMD169DDl5eXGGGPGjh1rrrnmGu9zZGVlmfT0dPP8888bY4zZtm2bAcw333xjjDHmxRdfNCkpKebll1823377rfnkk09M//79zbXXXut9jvPPP9+0bt3a3HTTTSY7O9ts3LjR5znUHu/f//53k5ycbP75z3+aXbt2mXXr1pknn3zSHDt2zG8cunTpYpKTk82MGTNMTk6Oefnll01SUpKZO3eu95jrr7/e9O/f3/znP/8x27dvN6+99ppp27at9z3l6++4vLzczJ8/3wDe20pKSowx7vdO586dzT/+8Q+zfft28+6775qsrCwzffr0OuO6//77TW5ursnOzvbet2DBAtOhQwe/5yQi4UGJuIi0CE8ibowx11xzjTn99NONy+UyxrR8It6pUyczderUGrfdcccdplu3bt6fhw4dan7/+997f/773/9u4uLiTFFRkXf8o0ePrvEcZWVlJjEx0bz11lvGGHcyZbPZzK5duxock8PhMC+++GKN2/wl4p7nN8aY119/3QDmzTff9N72j3/8wwDm8OHDjR6rLwMHDjR/+MMfatxWO7FduHChSUxMNIWFhd5j8vPzTUJCgvnLX/5ijHEn1p6kcMuWLSYxMdE88MAD5pe//KUxxpg///nP5pRTTvE+vkuXLua5556r8bqffPKJAUxxcbExxp2I9+zZ0/ue8af2eJ944gnTs2dPU1FRUe/jquvSpYs555xzatx29913m44dOxpjjNm+fbux2WzeLxIes2bNMgMHDvT+7Ovv+JVXXjG157yOHj1qEhMTzfvvv1/j9r/85S+mbdu2NcY1fPhwn2NeunSpAcyRI0cac4oiEqJUmiIiLe6RRx4hJyenzkK2lnDo0CH27NnDeeedV+P2888/n507d3Ls2DEArrvuOpYsWeKtu33llVf42c9+Rvv27QFYs2YNb731lrcco3Xr1qSmplJWVsbWrVu9z5uRkUHnzp2b9RwGDhzo/bPT6QRgwIABdW4rKCho0lhrKy0tJSEhod6xZGdn07dvX9LS0ry3ZWRk0KtXL7KzswG46KKLKCgo4Ouvv+bDDz/knHPO4ZJLLuGjjz7CGMOHH37I8OHDASgsLGTXrl3ceeedNcZ76aWXAtQoZznzzDObXD//v//7v1RWVtKlSxfGjRvHK6+8wuHDhxt83Nlnn13j55/85Cd8//33HDp0iC+//BJjDIMHD64x5oceeqje+PqTnZ1NaWkpv/jFL2o830033cTBgwcpLCz0HjtkyBCfz+H5e2uo5EZEQltMsAcgIpGvS5cuTJo0ienTp/O///u/AXnN2p0qjDE1fr7mmmuYNGkS//rXv7jwwgt57733eOONN7z3W5bF2LFjmTZtWp3nTk1N9f65VatWzTxyaiw89JyHr9s8NcyNHWtt6enpFBcXNzgeX10/jDHe27OysujRowcffPABq1atYvjw4Zx55plUVVWxceNGPvroIx566KEaY3766ae58MIL6zxv9e4tJxLbjh07kpOTw0cffcSHH37I7Nmzueuuu/jiiy/Iyspq9PNUf794xrxq1SqSkpJqHHciHVE8z/fGG29w2mmn1bnf82UQ/MeguLgYh8NR41gRCT9KxEUkIO6++25eeOEF/vjHP7bo67Rp04ZOnTrxySefcPnll3tvX7FiBd26dfMmUu3bt+eKK67g5ZdfZt++fbRt29Y7KwswePBgNm7cSI8ePZql/VxcXFyTOqo0xYmOddCgQXz99df1HtOvXz+ef/559u/f750V37dvH1u2bGHKlCne44YPH84HH3zAF198wZQpU7Db7Zx33nk888wz7Nu3zzsjnpGRQVZWFrm5ufzud787gbNtWHx8PJdccgmXXHIJs2fPJiMjg7fffpuJEyf6fcznn39e4+fPPvuMzMxM2rRpw5lnngnA7t27ueKKK/w+h6+/47i4OMDd/9vhcADumCYkJLB9+3Yuu+yyEzrHTZs2ccYZZwSt446INA8l4iISEMnJycyePZvbb7/d5/35+fmsX7++xm1paWneGdLdu3fXuT8zM5MOHTrUea67776byZMn07NnTy644AI+/PBDnnvuORYsWFDjuOuvv56rr76ab7/9ll/96lc1Zp3vuecehgwZwrXXXsvtt99Oeno6O3fu5O233+b222+ne/fuTTr/bt268dFHH3HppZcSFxdXo9TjZJ3oWC+77DJeeOEFSktLSUxM9HnMr3/9ax544AFGjx7NY489hjGGKVOm0LFjR0aPHu09bvjw4YwdO5ZWrVoxaNAg721TpkyhW7dudO3a1XvsnDlz+O1vf0tKSgpXXXUVsbGxfPPNN7z//vs1OpGciEWLFmFZFkOGDCElJYUPPviAw4cP07dv33oft379embOnMmvf/1rvvzyS55++mlmzpwJwKmnnsoNN9zA7373Ox599FHOPvtsjh49yldffUVhYSF33XUX4PvvuFu3bgD885//5JxzziExMZHWrVtzzz33cM899wDw05/+lKqqKjZt2sS6desa9WX1448/rvFFU0TCVDAL1EUkclVfrOnhcrnMgAEDfC7WBOr8d9NNNxljjM/7APPwww/7fG3Lssyjjz5qunbtamJiYky3bt3Mk08+Wee4iooKk56ebgDz5Zdf1rl/48aN5sorrzQpKSkmISHB9OjRw/zud7/zLui8//77TY8ePRoVj/fff9/07t3bxMXFeRfv+Vus6fnZGGM+/fRTA5gdO3Z4b/vss88MYLZu3drosfricrlM9+7dzeLFi7231V78aIwxOTk55tJLLzWtWrUyrVq1MpdffnmN1zbGmH379hmbzWauvPLKGmMCzG9/+9s6r/3WW2+Zs846yyQmJprk5GQzcOBAM2vWLO/9559/vs/H1eara8rZZ59tUlJSTGJiounXr5+3s4k/Xbp0Mffcc48ZN26cSU5ONu3atTNTpkwxVVVV3mOqqqrMH//4R9OrVy8TGxtrUlNTzXnnnWdef/117zG+/o6NMeb22283HTp0MDabzVx//fXe2xcuXGgGDhxo4uPjTUpKihkyZIi3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5cuj4lJ9UlISMTExHDp0CICf/exnpKamkpeXx44dO4DI/4dnt9s5duyYN+kYMWIEffr0oaCgwJuURnIMOnTowJgxY7jmmms444wz+Oc//xlVybgxhqqqKq6++mp69uwJwK9//esgjyrwkpKS+P3vf0+vXr0oLi4mNzeXf//73zz11FOsXbs2Ksr2PF840tPTOXr0KN26dWPPnj289tpr/OMf/8AYE/FxOOWUU0hISCAnJ4eqqioef/xx/vSnP/HHP/6RtWvXRvRnoefcDh8+TElJCZZlMXfuXP7f//t/vPnmm/zjH//g4MGDQR5ly3K5XBw7dowJEybQrVs3ysvLqaio4Ouvvwai50t5YmIi8fHxJ50fKhFvQGxsLMOGDeODDz7goYce4tJLL2XKlCmce+65fPPNN97kNJLZ7Xb69evHunXrWLFiBa+99hopKSmkpKTwn//8B4j8f3gxMTFcfvnl7Nq1i9zcXACGDh1KRkYGH3zwARC5MTDGkJSUxHnnnUebNm04++yzGTx4MEuXLiU7OxuA4uJiXC5XkEfacmw2G/369WPAgAHe24wxfP/9994ZsGi4OtS1a1f69OmDy+Vi5cqVXHHFFdxxxx2ceuqpvP/++5SXlwd7iAHTvXt3WrduzTnnnENSUhL/+te/OHLkCDabLaJnxi3LIiUlhccff5wlS5YwduxYfvKTn3DXXXcxcOBA/vOf/0T0+8DzOX/BBRewefNmnn76aYYPH86dd97JZZddxrFjxygoKAjyKFuWw+FgyJAhnHbaabhcLtq2bctll13Ge++9511DFQ0SEhIYNmwYy5cvP6n8UDXiPuzatQu73U5WVhZ2u52zzz6bM888k9dff51OnToBcPbZZ/Ppp5+yZ88eOnToEOQRN7/qMYiNjeWMM85g69atZGdnExcXxy233ALAU089RWVlJbGxsUEecfPbuHEja9asoVWrVgwaNIh+/fqxbds21q5dC0CvXr245JJL+Oqrr/j+++/p2LFjkEfcvKqf/+mnn07v3r0BaN26NUOGDAHg//2//8dnn31GSUkJEyZMwOFwBHPIza72e+C0004D3J0SYmNjiYmJoXXr1qxYsYKcnBx+85vfRNy/heoxOOOMM+jVqxcOh4PLLruMmBj3r5ArrriCTZs2UVhYSOfOnYM84ubnKwaZmZl88sknfPrpp6xYsYKLL76YsrIyPvnkE84///xgD7nZVY/BgAED6Nu3L3/84x/5/PPPvRuheN4H+/fv9/6ujBTVz3/gwIH06dOH888/n6VLl5KZmQnAaaedxrJly8jPz/deOYskGzduZPXq1bRu3dr7O8GzNqJv374MGzaMXbt20b1794hdL1H9fTB48GDOO+88zjzzTN54440Tzg8jL0onad26dfzhD39g2bJl3m92MTExJCUl0b9/f7Zu3cqGDRtYs2YNBQUFEflLx1cMsrKyGD58ODfffDO//e1vAfjoo48oKiqKyJnQtWvX8vLLL9OxY0eSkpJ49dVXOXr0KGeddRbx8fF89NFHvPfee3z66acUFBSQnJwc7CE3q9rnv2TJEvLz8733t2nThhEjRmCM4YsvvuDqq68mISEhiCNufr7eA54YxMTEkJycTFZWFm+99Rbvv/8+F198ccQl4bVj8Nprr9WIgceqVasoKSmJyEXsvmKwd+9e4uPjAXjttdf47W9/y3XXXceAAQNqXDWJFLVj8MYbb/D999/Tvn17LrvsMu9xq1at4sCBA7Rp0yaIo21+tc//9ddfZ//+/ZxxxhlcfPHF5Obm8s4777By5Up27dpFr169gj3kZueJQadOnWr8TrDb7d6EOzMzk6VLl1JZWRmRSXjt98HixYvJy8ujVatWJ5Ufaka8moqKCr799lt+9atfcezYMT777DPAfQkS3HWyO3fu5J133sHlcjFx4kTS0tKCOeRm11AMPD788EPefPNNpk2bFnEJ2MGDB/n444/5zW9+Q79+/SgtLSUvL4/i4mK6d+9OUlIS+/bt47333iMxMZE77rgjon7x+Dr//Px8jh07VuO4DRs2sGXLFmbMmBFxX0gbioGnBnjDhg1s2rSJGTNmeGfFIkVj3gfl5eV89tln/POf/4zIblL+YlBWVkZMTAw/+clPOP/8872zn0OGDIm4BMRfDKqXn1iWxcqVK3nrrbe48847I/7zMC8vj0OHDpGWlsYFF1xAv379+Pe//01xcTETJkyIuKvkDX0WeDomXXDBBeTm5nLgwIGoiYGnbWNGRsYJ54dKxKuJi4vjvPPOo0OHDhw8eJA333yTzz//HGMMPXr0ICsri6ysLMrKyqiqqorItnUNxcDDc2nulFNOCeJoW0ZycjLDhw/3nm9iYiLGGDZs2ED37t1p37497du39/7yrT4z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BhC5MQi5RLw6h8NBQkICqamp/O1vf+Pdd9/lkksuCenVr81NMVAMov38QTEAxQAUA1AMov38QTGAyIpByJWmVGeMweVykZOTQ1VVFffddx+nnHJKsIcVUIqBYhDt5w+KASgGoBiAYhDt5w+KAURWDEJusaYvH3/8MT169PDWBkUjxUAxiPbzB8UAFANQDEAxiPbzB8UAIiMGYZGIG2NCvv1MS1MMFINoP39QDEAxAMUAFINoP39QDCAyYhAWibiIiIiISKQJ6cWaIiIiIiKRSom4iIiIiEgQKBEXEREREQkCJeIiIiIiIkGgRFxEREREJAiUiIuIiIiIBIEScRGRMHHrrbeycePGYA9DRESaiRJxERFpEpfLFewhiIhEBG3oIyISBp555hlWrlxJTEwMdrudq6++mlGjRtU5rqKigueff57169djWRannHIKd911FykpKRQXF/N///d/5OTk0Lp1a0aNGsWIESMAWLBgAampqVxzzTUAZGdn88wzz/D8888D7tn4n/70p6xcuZK9e/fyyiuvsHXrVv7617+yZ88eEhMTGT16NBdccAGVlZW8+uqrfPbZZ1RVVfHjH/+YcePGERcXF7iAiYiEgZhgD0BERBo2ceJEcnJyuOmmmxgwYIDf4z755BOOHTvGc889R2xsLDt37vQmwE8//TRZWVn86U9/Yu/evcyePZuMjAz69+/fqDH897//Zdq0abRp04YDBw7w0EMPceONN3LWWWdRWlpKUVERAIsXL2bfvn089thjOBwOnn76ad58801+/etfn3wgREQiiEpTREQiiMPh4MiRI+Tn52O32+nevTtJSUns37+fnJwcxowZQ1xcHF27duWiiy5ixYoVjX7uSy+9lLS0NOLi4vj000/p378/55xzDjExMSQnJ9O1a1eMMXzwwQdcf/31tG7dmsTERH7+85/z3//+twXPWkQkPGlGXEQkgpx33nkUFRXx1FNPcezYMc4991yuueYaDhw44E2MPdLS0vj2228b/dxpaWnePxcVFZGRkVHnmEOHDlFeXs60adO8txljsCzrBM9IRCRyKREXEYkgMTEx/PKXv+SXv/wlBQUFPPzww2RmZjJgwACOHDlCaWmpNxnfv38/7du3ByA+Pp7y8nLv85SUlNT7OqmpqWzbtq3O7cnJycTFxfHEE094n1tERHxTaYqISJhISUmhoKCg3mO+/vprdu/ejWVZJCUleRd3pqWl0atXL/72t79RUVHBrl27+Oijjzj33HMB6Nq1K+vWrePIkSOUlJTw3nvv1fs65557Lps2bWLVqlW4XC4OHz7Mzp07sdvtXHTRRbz00kscPHgQgOLiYtavX98sMRARiSTqmiIiEibWrFnDCy+8QGlpKT//+c+58sor6xyzcuVK3njjDYqLi0lISODss8/m+uuvx+FwUFRUxP/93/+Rm5tL69at+dnPfsbIkSMBd7eVBQsWsH79etLT07ngggt45513anRNqb1Q9JtvvuGVV17h+++/Jykpyds1paKigjfffJNVq1Zx+PBh2rdvz09/+lMuu+yywARKRCRMKBEXEREREQkClaaIiIiIiASBFmuKiISZTz/9lD//+c91bk9PT+eJJ54IwohEROREqDRFRERERCQIVJoiIiIiIhIESsRFRERERIJAibiIiIiISBAoERcRERERCQIl4iIiIiIiQfD/AccBpIuO9E0KAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Make a plot of the NLL over time. Does this solution get worse with time?\n", - "d = ds_preds.mean('t_ahead').groupby('t_source').mean().plot.scatter('t_source', 'nll')\n", - "plt.xticks(rotation=45)\n", - "plt.title('NLL over time (lower is better)')\n", - "1" - ] - }, - { - "cell_type": "code", - "execution_count": 55, - "metadata": { - "ExecuteTime": { - "end_time": "2020-10-18T07:32:06.259237Z", - "start_time": "2020-10-18T07:32:04.265934Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 55, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# A scatter plot is easy with xarray\n", - "ds_preds.plot.scatter('y_true', 'y_pred', s=.01)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "jupytext": { - "encoding": "# -*- coding: utf-8 -*-", - "formats": "ipynb,py:light" - }, - "kernelspec": { - "display_name": "seq2seq-time", - "language": "python", - "name": "seq2seq-time" - }, - "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.8" - }, - "toc": { - "base_numbering": 1, - "nav_menu": {}, - "number_sections": true, - "sideBar": true, - "skip_h1_title": false, - "title_cell": "Table of Contents", - "title_sidebar": "Contents", - "toc_cell": false, - "toc_position": { - "height": "calc(100% - 180px)", - "left": "10px", - "top": "150px", - "width": "307.2px" - }, - "toc_section_display": true, - "toc_window_display": true - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/notebooks/RNN_Timeseries_Seq2Seq.py b/notebooks/RNN_Timeseries_Seq2Seq.py deleted file mode 100644 index aa58bbb..0000000 --- a/notebooks/RNN_Timeseries_Seq2Seq.py +++ /dev/null @@ -1,457 +0,0 @@ -# -*- coding: utf-8 -*- -# --- -# jupyter: -# jupytext: -# formats: ipynb,py:light -# text_representation: -# extension: .py -# format_name: light -# format_version: '1.5' -# jupytext_version: 1.6.0 -# kernelspec: -# display_name: seq2seq-time -# language: python -# name: seq2seq-time -# --- - -# # Sequence to Sequence Models for Timeseries Regression -# -# -# In this notebook we are going to tackle a harder problem: -# - predicting the future on a timeseries -# - using an LSTM -# - with rough uncertainty (uncalibrated) -# - outputing sequence of predictions -# -# -# -# - -# -# - [ ] TODO mike autocorrelation baseline -# - [x] TODO mike acorn data -# - [ ] TODO mike handle multiple houses. Multiindex - -# OPTIONAL: Load the "autoreload" extension so that code can change. But blacklist large modules -# %load_ext autoreload -# %autoreload 2 -# %aimport -pandas -# %aimport -torch -# %aimport -numpy -# %aimport -matplotlib -# %aimport -dask -# %aimport -tqdm -# %matplotlib inline - -# + -# Imports -import torch -from torch import nn, optim -from torch.nn import functional as F -from torch.autograd import Variable -import torch -import torch.utils.data - -import pandas as pd -import numpy as np -import matplotlib.pyplot as plt -plt.rcParams['figure.figsize'] = (12.0, 4.0) -plt.style.use('ggplot') - -from pathlib import Path -from tqdm.auto import tqdm - -import pytorch_lightning as pl -# - - -from seq2seq_time.data.dataset import Seq2SeqDataSet, Seq2SeqDataSets -from seq2seq_time.predict import predict - -import logging, sys -# logging.basicConfig(stream=sys.stdout, level=logging.INFO) - -# ## Parameters - -# + -device = "cuda" if torch.cuda.is_available() else "cpu" -print(f'using {device}') - -columns_target=['energy(kWh/hh)'] -window_past = 48*4 -window_future = 48*4 -batch_size = 64 -num_workers = 0 -freq = '30T' -max_rows = 1e5 - - -# - - -# ## Load data - -# + - -def get_smartmeter_df(indir=Path('../data/raw/smart-meters-in-london'), max_files=1): - """ - Data loading and cleanding is always messy, so understand this code is optional. - """ - - # Load csv files - csv_files = sorted((indir/'halfhourly_dataset').glob('*.csv'))[:max_files] - - # concatendate them - df = pd.concat([pd.read_csv(f, parse_dates=[1], na_values=['Null']) for f in csv_files]) - - # Add ACORN categories - df_households = pd.read_csv(indir/'informations_households.csv') - df_households = df_households[['LCLid', 'stdorToU', 'Acorn_grouped']] - df = pd.merge(df, df_households, on='LCLid') - - df = df.set_index('tstp') - - # Drop nan and 0's - df = df[df['energy(kWh/hh)']!=0] - df = df.dropna() - - # Add time features - time = df.index.to_series() - df["month"] = time.dt.month - df['day'] = time.dt.day - df['week'] = time.dt.week - df['hour'] = time.dt.hour - df['minute'] = time.dt.minute - df['dayofweek'] = time.dt.dayofweek - - # Load weather data - df_weather = pd.read_csv(indir/'weather_hourly_darksky.csv', parse_dates=[3]) - use_cols = ['visibility', 'windBearing', 'temperature', 'time', 'dewPoint', - 'pressure', 'apparentTemperature', 'windSpeed', - 'humidity'] - df_weather = df_weather[use_cols].set_index('time') - df_weather = df_weather.resample(freq).first().ffill() # Resample to match energy data - - # Join weather and energy data - df = pd.merge(df, df_weather, how='inner', left_index=True, right_index=True, sort=True) - - # Holidays - df_hols = pd.read_csv(indir/'uk_bank_holidays.csv', parse_dates=[0]) - holidays = set(df_hols['Bank holidays'].dt.round('D')) - def is_holiday(dt): - return dt in holidays - days = df.index.floor('D') - holiday_mapping = days.unique().to_series().apply(is_holiday).astype(int).to_dict() - df['holiday'] = days.to_series().map(holiday_mapping).values - - # Loop over houses - for name, df_h in df.groupby('LCLid'): - - yield df_h - - -# - -# Our dataset is the london smartmeter data. But at half hour intervals - -# + -dfs = get_smartmeter_df() - -# Just get the first one for now -dfs = list(dfs) - -# df = df.resample(freq).first().dropna() # Where empty we will backfill, this will respect causality, and mostly maintain the mean - -# df = df.tail(int(max_rows)).copy() # Just use last X rows -df = pd.concat(dfs[:6], 0) -# df = dfs[0] -# - - -df.LCLid.unique() - - - -df.describe() - -# + -import sklearn -from sklearn.preprocessing import StandardScaler, OrdinalEncoder -from sklearn_pandas import DataFrameMapper - -columns_input_numeric = list(df.drop(columns=columns_target)._get_numeric_data().columns) -columns_categorical = list(set(df.columns)-set(columns_input_numeric)-set(columns_target)) - -output_scalers = [([n], StandardScaler()) for n in columns_target] -transformers=output_scalers + \ -[([n], StandardScaler()) for n in columns_input_numeric] + \ -[([n], OrdinalEncoder()) for n in columns_categorical] -scaler = DataFrameMapper(transformers, df_out=True) -df_norm = scaler.fit_transform(df) -df_norm -# - - -output_scaler = next(filter(lambda r:r[0][0] in columns_target, scaler.features))[-1] -output_scaler - -dfs_norm = [d.resample(freq).first().ffill().dropna() for _, d in df_norm.groupby('LCLid')] -len(dfs_norm) - -# + -# split data, with the test in the future -n_split = -int(len(dfs_norm)*0.2) -df_train = dfs_norm[:n_split] -df_test = dfs_norm[n_split:] - -# Show split -pd.concat(df_train)['energy(kWh/hh)'].plot(label='train') -pd.concat(df_test)['energy(kWh/hh)'].plot(label='test') -plt.ylabel('energy(kWh/hh)') -plt.legend() -# - - - - -# ### Dataset - -# These are the columns that we wont know in the future -# We need to blank them out in x_future -columns_blank=['visibility', - 'windBearing', 'temperature', 'dewPoint', 'pressure', - 'apparentTemperature', 'windSpeed', 'humidity'] - -ds_train = Seq2SeqDataSets(df_train, - window_past=window_past, - window_future=window_future, - columns_blank=columns_blank) -ds_test = Seq2SeqDataSets(df_test, - window_past=window_past, - window_future=window_future, - columns_blank=columns_blank) -print(ds_train) -print(ds_test) - -# we can treat it like an array -ds_train[0] -len(ds_train) -ds_train[-1] - -# + -# We can get rows -x_past, y_past, x_future, y_future = ds_train.get_rows(10) - -# Plot one instance, this is what the model sees -y_past['energy(kWh/hh)'].plot(label='past') -y_future['energy(kWh/hh)'].plot(ax=plt.gca(), label='future') -plt.legend() -plt.ylabel('energy(kWh/hh)') - -# Notice we've added on two new columns tsp (time since present) and is_past -x_past.tail() -# - - -# Notice we've hidden some future columns to prevent cheating -x_future.tail() - - -# ## Model - -# + - -class Seq2SeqLSTMDecoder(nn.Module): - def __init__(self, input_size, input_size_decoder, output_size, hidden_size=32, lstm_layers=2, lstm_dropout=0, _min_std = 0.05): - super().__init__() - self._min_std = _min_std - - self.encoder = nn.LSTM( - input_size=input_size + output_size, - hidden_size=hidden_size, - batch_first=True, - num_layers=lstm_layers, - dropout=lstm_dropout, - ) - self.decoder = nn.LSTM( - input_size=input_size_decoder, - hidden_size=hidden_size, - batch_first=True, - num_layers=lstm_layers, - dropout=lstm_dropout, - ) - self.mean = nn.Linear(hidden_size, output_size) - self.std = nn.Linear(hidden_size, output_size) - - def forward(self, context_x, context_y, target_x, target_y=None): - x = torch.cat([context_x, context_y], -1) - _, (h_out, cell) = self.encoder(x) - - # output = [batch size, seq len, hid dim * n directions] - outputs, (_, _) = self.decoder(target_x, (h_out, cell)) - - # outputs: [B, T, num_direction * H] - mean = self.mean(outputs) - log_sigma = self.std(outputs) - log_sigma = torch.clamp(log_sigma, np.log(self._min_std), -np.log(self._min_std)) - - sigma = torch.exp(log_sigma) - y_dist = torch.distributions.Normal(mean, sigma) - return y_dist - - -# - -# ## Lightning - -# + -import pytorch_lightning as pl - -class PL_Seq2Seq(pl.LightningModule): - def __init__(self, **hparams): - super().__init__() - self._model = Seq2SeqLSTMDecoder(**hparams) - - def forward(self, x_past, y_past, x_future, y_future=None): - """Eval/Predict""" - y_dist = self._model(x_past, y_past, x_future) - return y_dist - - def training_step(self, batch, batch_idx): - x_past, y_past, x_future, y_future = batch - y_dist = self.forward(*batch) - loss = -y_dist.log_prob(y_future).mean() - self.log_dict({'loss/train':loss}) - return loss - - def validation_step(self, batch, batch_idx): - x_past, y_past, x_future, y_future = batch - y_dist = self.forward(*batch) - loss = -y_dist.log_prob(y_future).mean() - self.log_dict({'loss/val':loss}) - return loss - - def configure_optimizers(self): - return torch.optim.Adam(self.parameters(), lr=1e-4) - - -# - - -from torch.utils.data import DataLoader, random_split -from pytorch_lightning.loggers import CSVLogger -from pl_bolts.callbacks import PrintTableMetricsCallback - - - -# + -input_size = x_past.shape[-1] -output_size = y_future.shape[-1] - -model = PL_Seq2Seq(input_size=input_size, - input_size_decoder=input_size, - output_size=output_size, - hidden_size=32, - lstm_layers=2, - lstm_dropout=0.25).to(device) - -logger = CSVLogger("logs", name="seq2seq") -trainer = pl.Trainer(gpus=1, - logger=logger) -dl_train = DataLoader(ds_train, - batch_size=batch_size, - shuffle=True, - num_workers=8) -dl_test = DataLoader(ds_test, batch_size=batch_size, num_workers=4) -trainer.fit(model, dl_train, dl_test) -# - -df_hist = pd.read_csv(trainer.logger.experiment.metrics_file_path) -df_hist['epoch'] = df_hist['epoch'].ffill() -df_histe = df_hist.set_index('epoch').groupby('epoch').mean() -df_histe[['loss/train', 'loss/val']].plot() -df_histe - -# ## Predict -# - -ds_preds = predict(model.to(device), ds_test.datasets[0], batch_size, device=device, scaler=output_scaler) -ds_preds - - -# + -# TODO Metrics... smape etc - -# + -def plot_prediction(ds_preds, i): - """Plot a prediction into the future, at a single point in time.""" - d = ds_preds.isel(t_source=i) - - # Get arrays - xf = d.t_target - yp = d.y_pred - s = d.y_pred_std - yt = d.y_true - now = d.t_source.squeeze() - - - plt.figure(figsize=(12, 4)) - - plt.scatter(xf, yt, label='true', c='k', s=6) - ylim = plt.ylim() - - # plot prediction - plt.fill_between(xf, yp-2*s, yp+2*s, alpha=0.25, - facecolor="b", - interpolate=True, - label="2 std",) - plt.plot(xf, yp, label='pred', c='b') - - # plot true - plt.scatter( - d.t_past, - d.y_past, - c='k', - s=6 - ) - - # plot a red line for now - plt.vlines(x=now, ymin=0, ymax=1, label='now', color='r') - plt.ylim(*ylim) - - now=pd.Timestamp(now.values) - plt.title(f'Prediction NLL={d.nll.mean().item():2.2g}') - plt.xlabel(f'{now.date()}') - plt.ylabel('energy(kWh/hh)') - plt.legend() - plt.xticks(rotation=45) - plt.show() - -# plot_prediction(ds_preds, 0) -# plot_prediction(ds_preds, 12) # 6 hours later -plot_prediction(ds_preds, 24) # 12 hours later -plot_prediction(ds_preds, 48) # 12 hours later -# - - -# ## Error vs time ahead - - - -# + -ds_preds.mean('t_source').plot.scatter('t_ahead_hours', 'nll') # Mean over all predictions - -# Tidy the graph -n = len(ds_preds.t_source) -plt.ylabel('Negative Log Likelihood (lower is better)') -plt.xlabel('Hours ahead') -plt.title(f'NLL vs time (no. samples={n})') -# - - - - -# Make a plot of the NLL over time. Does this solution get worse with time? -d = ds_preds.mean('t_ahead').groupby('t_source').mean().plot.scatter('t_source', 'nll') -plt.xticks(rotation=45) -plt.title('NLL over time (lower is better)') -1 - -# A scatter plot is easy with xarray -ds_preds.plot.scatter('y_true', 'y_pred', s=.01) - - - - - - - -