├── Nov13.ipynb ├── pollution.csv ├── raw.csv └── readme.md /Nov13.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 26, 6 | "metadata": {}, 7 | "outputs": [ 8 | { 9 | "name": "stdout", 10 | "output_type": "stream", 11 | "text": [ 12 | " pollution dew temp press wnd_dir wnd_spd snow rain\n", 13 | "date \n", 14 | "2010-01-02 00:00:00 129.0 -16 -4.0 1020.0 SE 1.79 0 0\n", 15 | "2010-01-02 01:00:00 148.0 -15 -4.0 1020.0 SE 2.68 0 0\n", 16 | "2010-01-02 02:00:00 159.0 -11 -5.0 1021.0 SE 3.57 0 0\n", 17 | "2010-01-02 03:00:00 181.0 -7 -5.0 1022.0 SE 5.36 1 0\n", 18 | "2010-01-02 04:00:00 138.0 -7 -5.0 1022.0 SE 6.25 2 0\n", 19 | "2010-01-02 05:00:00 109.0 -7 -6.0 1022.0 SE 7.14 3 0\n", 20 | "2010-01-02 06:00:00 105.0 -7 -6.0 1023.0 SE 8.93 4 0\n", 21 | "2010-01-02 07:00:00 124.0 -7 -5.0 1024.0 SE 10.72 0 0\n", 22 | "2010-01-02 08:00:00 120.0 -8 -6.0 1024.0 SE 12.51 0 0\n", 23 | "2010-01-02 09:00:00 132.0 -7 -5.0 1025.0 SE 14.30 0 0\n" 24 | ] 25 | } 26 | ], 27 | "source": [ 28 | "from pandas import read_csv\n", 29 | "from datetime import datetime\n", 30 | "# load data\n", 31 | "\n", 32 | "def parse(x):\n", 33 | "\treturn datetime.strptime(x, '%Y %m %d %H')\n", 34 | "\n", 35 | "#keep raw.csv at the same folder with python scripts\n", 36 | "dataset = read_csv('raw.csv', parse_dates = [['year', 'month', 'day', 'hour']], index_col=0, date_parser=parse)\n", 37 | "\n", 38 | "dataset.drop('No', axis=1, inplace=True)\n", 39 | "\n", 40 | "# manually specify column names\n", 41 | "dataset.columns = ['pollution', 'dew', 'temp', 'press', 'wnd_dir', 'wnd_spd', 'snow', 'rain']\n", 42 | "dataset.index.name = 'date'\n", 43 | "\n", 44 | "# mark all NA values with 0\n", 45 | "dataset['pollution'].fillna(0, inplace=True)\n", 46 | "# drop the first 24 hours\n", 47 | "dataset = dataset[24:]\n", 48 | "# summarize first 10 rows\n", 49 | "print(dataset.head(10))\n", 50 | "# save to file\n", 51 | "dataset.to_csv('pollution.csv')" 52 | ] 53 | }, 54 | { 55 | "cell_type": "code", 56 | "execution_count": 27, 57 | "metadata": {}, 58 | "outputs": [ 59 | { 60 | "data": { 61 | "image/png": "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\n", 62 | "text/plain": [ 63 | "" 64 | ] 65 | }, 66 | "metadata": {}, 67 | "output_type": "display_data" 68 | } 69 | ], 70 | "source": [ 71 | "from pandas import read_csv\n", 72 | "from matplotlib import pyplot\n", 73 | "# load dataset\n", 74 | "dataset = read_csv('pollution.csv', header=0, index_col=0)\n", 75 | "values = dataset.values\n", 76 | "# specify columns to plot\n", 77 | "groups = [0, 1, 2, 3, 5, 6, 7]\n", 78 | "i = 1\n", 79 | "# plot each column\n", 80 | "pyplot.figure()\n", 81 | "for group in groups:\n", 82 | "\tpyplot.subplot(len(groups), 1, i)\n", 83 | "\tpyplot.plot(values[:, group])\n", 84 | "\tpyplot.title(dataset.columns[group], y=0.5, loc='right')\n", 85 | "\ti += 1\n", 86 | "pyplot.show()" 87 | ] 88 | }, 89 | { 90 | "cell_type": "code", 91 | "execution_count": 30, 92 | "metadata": {}, 93 | "outputs": [], 94 | "source": [ 95 | "#We will frame the supervised learning problem as predicting the pollution at the current hour (t) given the pollution measurement and weather conditions at the prior time step" 96 | ] 97 | }, 98 | { 99 | "cell_type": "code", 100 | "execution_count": 43, 101 | "metadata": { 102 | "scrolled": true 103 | }, 104 | "outputs": [ 105 | { 106 | "name": "stdout", 107 | "output_type": "stream", 108 | "text": [ 109 | " var1(t-1) var2(t-1) var3(t-1) var4(t-1) var5(t-1) var6(t-1) \\\n", 110 | "1 0.129779 0.352941 0.245902 0.527273 0.666667 0.002290 \n", 111 | "2 0.148893 0.367647 0.245902 0.527273 0.666667 0.003811 \n", 112 | "3 0.159960 0.426471 0.229508 0.545454 0.666667 0.005332 \n", 113 | "4 0.182093 0.485294 0.229508 0.563637 0.666667 0.008391 \n", 114 | "5 0.138833 0.485294 0.229508 0.563637 0.666667 0.009912 \n", 115 | "\n", 116 | " var7(t-1) var8(t-1) var1(t) \n", 117 | "1 0.000000 0.0 0.148893 \n", 118 | "2 0.000000 0.0 0.159960 \n", 119 | "3 0.000000 0.0 0.182093 \n", 120 | "4 0.037037 0.0 0.138833 \n", 121 | "5 0.074074 0.0 0.109658 \n" 122 | ] 123 | } 124 | ], 125 | "source": [ 126 | "import sklearn.preprocessing\n", 127 | "import pandas as pdd\n", 128 | "\n", 129 | "# convert series to supervised learning\n", 130 | "def series_to_supervised(data, n_in=1, n_out=1, dropnan=True):\n", 131 | "\tn_vars = 1 if type(data) is list else data.shape[1]\n", 132 | "\tdf = DataFrame(data)\n", 133 | "\tcols, names = list(), list()\n", 134 | "\t# input sequence (t-n, ... t-1)\n", 135 | "\tfor i in range(n_in, 0, -1):\n", 136 | "\t\tcols.append(df.shift(i))\n", 137 | "\t\tnames += [('var%d(t-%d)' % (j+1, i)) for j in range(n_vars)]\n", 138 | "\t# forecast sequence (t, t+1, ... t+n)\n", 139 | "\tfor i in range(0, n_out):\n", 140 | "\t\tcols.append(df.shift(-i))\n", 141 | "\t\tif i == 0:\n", 142 | "\t\t\tnames += [('var%d(t)' % (j+1)) for j in range(n_vars)]\n", 143 | "\t\telse:\n", 144 | "\t\t\tnames += [('var%d(t+%d)' % (j+1, i)) for j in range(n_vars)]\n", 145 | "\t# put it all together\n", 146 | "\tagg = pdd.concat(cols, axis=1)\n", 147 | "\tagg.columns = names\n", 148 | "\t# drop rows with NaN values\n", 149 | "\tif dropnan:\n", 150 | "\t\tagg.dropna(inplace=True)\n", 151 | "\treturn agg\n", 152 | " \n", 153 | "# load dataset\n", 154 | "dataset = read_csv('pollution.csv', header=0, index_col=0)\n", 155 | "values = dataset.values\n", 156 | "# integer encode direction\n", 157 | "encoder = LabelEncoder()\n", 158 | "values[:,4] = encoder.fit_transform(values[:,4])\n", 159 | "# ensure all data is float\n", 160 | "values = values.astype('float32')\n", 161 | "# normalize features\n", 162 | "scaler = MinMaxScaler(feature_range=(0, 1))\n", 163 | "scaled = scaler.fit_transform(values)\n", 164 | "# frame as supervised learning\n", 165 | "reframed = series_to_supervised(scaled, 1, 1)\n", 166 | "# drop columns we don't want to predict\n", 167 | "reframed.drop(reframed.columns[[9,10,11,12,13,14,15]], axis=1, inplace=True)\n", 168 | "print(reframed.head())" 169 | ] 170 | }, 171 | { 172 | "cell_type": "code", 173 | "execution_count": null, 174 | "metadata": { 175 | "collapsed": true 176 | }, 177 | "outputs": [], 178 | "source": [] 179 | } 180 | ], 181 | "metadata": { 182 | "kernelspec": { 183 | "display_name": "Python 3", 184 | "language": "python", 185 | "name": "python3" 186 | }, 187 | "language_info": { 188 | "codemirror_mode": { 189 | "name": "ipython", 190 | "version": 3 191 | }, 192 | "file_extension": ".py", 193 | "mimetype": "text/x-python", 194 | "name": "python", 195 | "nbconvert_exporter": "python", 196 | "pygments_lexer": "ipython3", 197 | "version": "3.6.3" 198 | } 199 | }, 200 | "nbformat": 4, 201 | "nbformat_minor": 2 202 | } 203 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | #Multivariate Time Series Forecasting with LSTMs in Keras 2 | 3 | > We will frame the supervised learning problem as predicting the pollution at the current hour (t) given the pollution measurement and weather conditions at the prior time step. 4 | 5 | This formulation is straightforward and just for this demonstration. Some alternate formulations you could explore include: 6 | 7 | * Predict the pollution for the next hour based on the weather conditions and pollution over the last 24 hours. 8 | * Predict the pollution for the next hour as above and given the “expected” weather conditions for the next hour. 9 | 10 | 11 | 12 | 13 | Credit: https://machinelearningmastery.com/multivariate-time-series-forecasting-lstms-keras/ 14 | --------------------------------------------------------------------------------