{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Predicción de Series Temporales NN - Multivariate" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "El artículo completo con la explicación detallada en el blog: http://www.aprendemachinelearning.com/" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Usaremos Keras y Tensorflow" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Importamos las Librerías que vamos a utilizar" ] }, { "cell_type": "code", "execution_count": 161, "metadata": { "ExecuteTime": { "end_time": "2019-03-09T11:38:08.477422Z", "start_time": "2019-03-09T11:38:08.469434Z" } }, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pylab as plt\n", "%matplotlib inline\n", "plt.rcParams['figure.figsize'] = (16, 9)\n", "plt.style.use('fast')\n", "\n", "from keras.models import Sequential\n", "from keras.layers import Dense,Activation,Flatten\n", "from sklearn.preprocessing import MinMaxScaler" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Cargamos nuestro Dataset" ] }, { "cell_type": "code", "execution_count": 162, "metadata": { "ExecuteTime": { "end_time": "2019-03-09T11:38:08.498936Z", "start_time": "2019-03-09T11:38:08.481129Z" } }, "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", "
unidades
fecha
2017-01-02236
2017-01-03237
2017-01-04290
2017-01-05221
2017-01-07128
\n", "
" ], "text/plain": [ " unidades\n", "fecha \n", "2017-01-02 236\n", "2017-01-03 237\n", "2017-01-04 290\n", "2017-01-05 221\n", "2017-01-07 128" ] }, "execution_count": 162, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_csv('time_series.csv', parse_dates=[0], header=None,index_col=0, names=['fecha','unidades'])\n", "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Cargamos Datos Categóricos: Día y Mes" ] }, { "cell_type": "code", "execution_count": 163, "metadata": { "ExecuteTime": { "end_time": "2019-03-09T11:38:08.520760Z", "start_time": "2019-03-09T11:38:08.503032Z" } }, "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", "
unidadesweekdaymonth
fecha
2017-01-0223601
2017-01-0323711
2017-01-0429021
2017-01-0522131
2017-01-0712851
\n", "
" ], "text/plain": [ " unidades weekday month\n", "fecha \n", "2017-01-02 236 0 1\n", "2017-01-03 237 1 1\n", "2017-01-04 290 2 1\n", "2017-01-05 221 3 1\n", "2017-01-07 128 5 1" ] }, "execution_count": 163, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['weekday']=[x.weekday() for x in df.index]\n", "df['month']=[x.month for x in df.index]\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 164, "metadata": { "ExecuteTime": { "end_time": "2019-03-09T11:38:08.545066Z", "start_time": "2019-03-09T11:38:08.523852Z" } }, "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", "
unidadesweekdaymonth
count604.000000604.000000604.000000
mean215.9354302.6440406.304636
std75.0503041.8186743.312359
min51.0000000.0000001.000000
25%171.0000001.0000003.000000
50%214.0000003.0000006.000000
75%261.2500004.0000009.000000
max591.0000006.00000012.000000
\n", "
" ], "text/plain": [ " unidades weekday month\n", "count 604.000000 604.000000 604.000000\n", "mean 215.935430 2.644040 6.304636\n", "std 75.050304 1.818674 3.312359\n", "min 51.000000 0.000000 1.000000\n", "25% 171.000000 1.000000 3.000000\n", "50% 214.000000 3.000000 6.000000\n", "75% 261.250000 4.000000 9.000000\n", "max 591.000000 6.000000 12.000000" ] }, "execution_count": 164, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Preprocesado de los datos" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n", "# convert series to supervised learning\n", "def series_to_supervised(data, n_in=1, n_out=1, dropnan=True):\n", " n_vars = 1 if type(data) is list else data.shape[1]\n", " df = pd.DataFrame(data)\n", " cols, names = list(), list()\n", " # input sequence (t-n, ... t-1)\n", " for i in range(n_in, 0, -1):\n", " cols.append(df.shift(i))\n", " names += [('var%d(t-%d)' % (j+1, i)) for j in range(n_vars)]\n", " # forecast sequence (t, t+1, ... t+n)\n", " for i in range(0, n_out):\n", " cols.append(df.shift(-i))\n", " if i == 0:\n", " names += [('var%d(t)' % (j+1)) for j in range(n_vars)]\n", " else:\n", " names += [('var%d(t+%d)' % (j+1, i)) for j in range(n_vars)]\n", " # put it all together\n", " agg = pd.concat(cols, axis=1)\n", " agg.columns = names\n", " # drop rows with NaN values\n", " if dropnan:\n", " agg.dropna(inplace=True)\n", " return agg\n", " " ] }, { "cell_type": "code", "execution_count": 165, "metadata": { "ExecuteTime": { "end_time": "2019-03-09T11:38:08.595658Z", "start_time": "2019-03-09T11:38:08.548198Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0. 1. -0.31481487]\n", " [ 1. 1. -0.31111115]\n", " [ 2. 1. -0.11481488]\n", " ...\n", " [ 2. 11. -0.51111114]\n", " [ 3. 11. -0.25925928]\n", " [ 4. 11. -0.48888892]]\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
var1(t-7)var2(t-7)var3(t-7)var1(t-6)var2(t-6)var3(t-6)var1(t-5)var2(t-5)var3(t-5)var1(t-4)...var3(t-3)var1(t-2)var2(t-2)var3(t-2)var1(t-1)var2(t-1)var3(t-1)var1(t)var2(t)var3(t)
fecha
2017-01-110.01.0-0.3148151.01.0-0.3111112.01.0-0.1148153.0...-0.7148150.01.0-0.1037041.01.0-0.22592621-0.433333
2017-01-121.01.0-0.3111112.01.0-0.1148153.01.0-0.3703705.0...-0.1037041.01.0-0.2259262.01.0-0.43333331-0.607407
2017-01-132.01.0-0.1148153.01.0-0.3703705.01.0-0.7148150.0...-0.2259262.01.0-0.4333333.01.0-0.60740741-0.522222
2017-01-143.01.0-0.3703705.01.0-0.7148150.01.0-0.1037041.0...-0.4333333.01.0-0.6074074.01.0-0.52222251-0.644444
2017-01-165.01.0-0.7148150.01.0-0.1037041.01.0-0.2259262.0...-0.6074074.01.0-0.5222225.01.0-0.64444401-0.344444
\n", "

5 rows × 24 columns

\n", "
" ], "text/plain": [ " var1(t-7) var2(t-7) var3(t-7) var1(t-6) var2(t-6) var3(t-6) \\\n", "fecha \n", "2017-01-11 0.0 1.0 -0.314815 1.0 1.0 -0.311111 \n", "2017-01-12 1.0 1.0 -0.311111 2.0 1.0 -0.114815 \n", "2017-01-13 2.0 1.0 -0.114815 3.0 1.0 -0.370370 \n", "2017-01-14 3.0 1.0 -0.370370 5.0 1.0 -0.714815 \n", "2017-01-16 5.0 1.0 -0.714815 0.0 1.0 -0.103704 \n", "\n", " var1(t-5) var2(t-5) var3(t-5) var1(t-4) ... var3(t-3) \\\n", "fecha ... \n", "2017-01-11 2.0 1.0 -0.114815 3.0 ... -0.714815 \n", "2017-01-12 3.0 1.0 -0.370370 5.0 ... -0.103704 \n", "2017-01-13 5.0 1.0 -0.714815 0.0 ... -0.225926 \n", "2017-01-14 0.0 1.0 -0.103704 1.0 ... -0.433333 \n", "2017-01-16 1.0 1.0 -0.225926 2.0 ... -0.607407 \n", "\n", " var1(t-2) var2(t-2) var3(t-2) var1(t-1) var2(t-1) var3(t-1) \\\n", "fecha \n", "2017-01-11 0.0 1.0 -0.103704 1.0 1.0 -0.225926 \n", "2017-01-12 1.0 1.0 -0.225926 2.0 1.0 -0.433333 \n", "2017-01-13 2.0 1.0 -0.433333 3.0 1.0 -0.607407 \n", "2017-01-14 3.0 1.0 -0.607407 4.0 1.0 -0.522222 \n", "2017-01-16 4.0 1.0 -0.522222 5.0 1.0 -0.644444 \n", "\n", " var1(t) var2(t) var3(t) \n", "fecha \n", "2017-01-11 2 1 -0.433333 \n", "2017-01-12 3 1 -0.607407 \n", "2017-01-13 4 1 -0.522222 \n", "2017-01-14 5 1 -0.644444 \n", "2017-01-16 0 1 -0.344444 \n", "\n", "[5 rows x 24 columns]" ] }, "execution_count": 165, "metadata": {}, "output_type": "execute_result" } ], "source": [ "PASOS=7\n", "\n", "# load dataset\n", "values = df['unidades'].values\n", "\n", "# ensure all data is float\n", "values = values.astype('float32')\n", "# normalize features\n", "scaler = MinMaxScaler(feature_range=(-1, 1))\n", "values=values.reshape(-1, 1) # esto lo hacemos porque tenemos 1 sola dimension\n", "scaled = scaler.fit_transform(values)\n", "\n", "df['scaled'] = scaled\n", "scaledMerge=df.drop('unidades',axis=1)\n", "#print(scaledMerge.values)\n", "\n", "# frame as supervised learning\n", "reframed = series_to_supervised(scaledMerge, PASOS, 1)\n", "reframed.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dividimos en set de Entrenamiento y Validación" ] }, { "cell_type": "code", "execution_count": 166, "metadata": { "ExecuteTime": { "end_time": "2019-03-09T11:38:08.638397Z", "start_time": "2019-03-09T11:38:08.598139Z" }, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(597, 22)\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
var1(t-7)var2(t-7)var3(t-7)var1(t-6)var2(t-6)var3(t-6)var1(t-5)var2(t-5)var3(t-5)var1(t-4)...var1(t-3)var2(t-3)var3(t-3)var1(t-2)var2(t-2)var3(t-2)var1(t-1)var2(t-1)var3(t-1)var3(t)
fecha
2017-01-110.01.0-0.3148151.01.0-0.3111112.01.0-0.1148153.0...5.01.0-0.7148150.01.0-0.1037041.01.0-0.225926-0.433333
2017-01-121.01.0-0.3111112.01.0-0.1148153.01.0-0.3703705.0...0.01.0-0.1037041.01.0-0.2259262.01.0-0.433333-0.607407
2017-01-132.01.0-0.1148153.01.0-0.3703705.01.0-0.7148150.0...1.01.0-0.2259262.01.0-0.4333333.01.0-0.607407-0.522222
2017-01-143.01.0-0.3703705.01.0-0.7148150.01.0-0.1037041.0...2.01.0-0.4333333.01.0-0.6074074.01.0-0.522222-0.644444
2017-01-165.01.0-0.7148150.01.0-0.1037041.01.0-0.2259262.0...3.01.0-0.6074074.01.0-0.5222225.01.0-0.644444-0.344444
\n", "

5 rows × 22 columns

\n", "
" ], "text/plain": [ " var1(t-7) var2(t-7) var3(t-7) var1(t-6) var2(t-6) var3(t-6) \\\n", "fecha \n", "2017-01-11 0.0 1.0 -0.314815 1.0 1.0 -0.311111 \n", "2017-01-12 1.0 1.0 -0.311111 2.0 1.0 -0.114815 \n", "2017-01-13 2.0 1.0 -0.114815 3.0 1.0 -0.370370 \n", "2017-01-14 3.0 1.0 -0.370370 5.0 1.0 -0.714815 \n", "2017-01-16 5.0 1.0 -0.714815 0.0 1.0 -0.103704 \n", "\n", " var1(t-5) var2(t-5) var3(t-5) var1(t-4) ... var1(t-3) \\\n", "fecha ... \n", "2017-01-11 2.0 1.0 -0.114815 3.0 ... 5.0 \n", "2017-01-12 3.0 1.0 -0.370370 5.0 ... 0.0 \n", "2017-01-13 5.0 1.0 -0.714815 0.0 ... 1.0 \n", "2017-01-14 0.0 1.0 -0.103704 1.0 ... 2.0 \n", "2017-01-16 1.0 1.0 -0.225926 2.0 ... 3.0 \n", "\n", " var2(t-3) var3(t-3) var1(t-2) var2(t-2) var3(t-2) var1(t-1) \\\n", "fecha \n", "2017-01-11 1.0 -0.714815 0.0 1.0 -0.103704 1.0 \n", "2017-01-12 1.0 -0.103704 1.0 1.0 -0.225926 2.0 \n", "2017-01-13 1.0 -0.225926 2.0 1.0 -0.433333 3.0 \n", "2017-01-14 1.0 -0.433333 3.0 1.0 -0.607407 4.0 \n", "2017-01-16 1.0 -0.607407 4.0 1.0 -0.522222 5.0 \n", "\n", " var2(t-1) var3(t-1) var3(t) \n", "fecha \n", "2017-01-11 1.0 -0.225926 -0.433333 \n", "2017-01-12 1.0 -0.433333 -0.607407 \n", "2017-01-13 1.0 -0.607407 -0.522222 \n", "2017-01-14 1.0 -0.522222 -0.644444 \n", "2017-01-16 1.0 -0.644444 -0.344444 \n", "\n", "[5 rows x 22 columns]" ] }, "execution_count": 166, "metadata": {}, "output_type": "execute_result" } ], "source": [ "newReframed=reframed.drop(['var1(t)','var2(t)'],axis=1)\n", "print(newReframed.shape)\n", "newReframed.head()" ] }, { "cell_type": "code", "execution_count": 167, "metadata": { "ExecuteTime": { "end_time": "2019-03-09T11:38:08.654131Z", "start_time": "2019-03-09T11:38:08.641865Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(567, 1, 21) (567,) (30, 1, 21) (30,)\n" ] } ], "source": [ "# split into train and test sets\n", "values = newReframed.values\n", "n_train_days = 315+289 - (30+PASOS)\n", "train = values[:n_train_days, :]\n", "test = values[n_train_days:, :]\n", "# split into input and outputs\n", "x_train, y_train = train[:, :-1], train[:, -1]\n", "x_val, y_val = test[:, :-1], test[:, -1]\n", "# reshape input to be 3D [samples, timesteps, features]\n", "x_train = x_train.reshape((x_train.shape[0], 1, x_train.shape[1]))\n", "x_val = x_val.reshape((x_val.shape[0], 1, x_val.shape[1]))\n", "print(x_train.shape, y_train.shape, x_val.shape, y_val.shape)" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2019-02-22T21:40:14.487519Z", "start_time": "2019-02-22T21:40:14.474395Z" } }, "source": [ "# Creamos el Modelo de Red Neuronal" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Utilizaremos una Red Feedforward" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Como entradas son 21 columnas (7 pasos por 3 variables)" ] }, { "cell_type": "code", "execution_count": 168, "metadata": { "ExecuteTime": { "end_time": "2019-03-09T11:38:08.664641Z", "start_time": "2019-03-09T11:38:08.657037Z" } }, "outputs": [], "source": [ "def crear_modeloFF():\n", " model = Sequential() \n", " model.add(Dense(PASOS, input_shape=(1,PASOS*3),activation='tanh'))\n", " model.add(Flatten())\n", " model.add(Dense(1, activation='tanh'))\n", " model.compile(loss='mean_absolute_error',optimizer='Adam',metrics=[\"mse\"])\n", " model.summary()\n", " return model\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Entrenamos nuestra máquina" ] }, { "cell_type": "code", "execution_count": 169, "metadata": { "ExecuteTime": { "end_time": "2019-03-09T11:38:14.490273Z", "start_time": "2019-03-09T11:38:08.667759Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "dense_9 (Dense) (None, 1, 7) 154 \n", "_________________________________________________________________\n", "flatten_5 (Flatten) (None, 7) 0 \n", "_________________________________________________________________\n", "dense_10 (Dense) (None, 1) 8 \n", "=================================================================\n", "Total params: 162\n", "Trainable params: 162\n", "Non-trainable params: 0\n", "_________________________________________________________________\n", "Train on 567 samples, validate on 30 samples\n", "Epoch 1/40\n", "567/567 [==============================] - 0s 769us/step - loss: 0.9168 - mean_squared_error: 1.0901 - val_loss: 0.2777 - val_mean_squared_error: 0.1117\n", "Epoch 2/40\n", "567/567 [==============================] - 0s 232us/step - loss: 0.3147 - mean_squared_error: 0.1677 - val_loss: 0.2270 - val_mean_squared_error: 0.0790\n", "Epoch 3/40\n", "567/567 [==============================] - 0s 229us/step - loss: 0.2561 - mean_squared_error: 0.1173 - val_loss: 0.2822 - val_mean_squared_error: 0.1181\n", "Epoch 4/40\n", "567/567 [==============================] - 0s 222us/step - loss: 0.2370 - mean_squared_error: 0.0952 - val_loss: 0.2239 - val_mean_squared_error: 0.0770\n", "Epoch 5/40\n", "567/567 [==============================] - 0s 212us/step - loss: 0.2175 - mean_squared_error: 0.0842 - val_loss: 0.1679 - val_mean_squared_error: 0.0480\n", "Epoch 6/40\n", "567/567 [==============================] - 0s 214us/step - loss: 0.2056 - mean_squared_error: 0.0778 - val_loss: 0.1868 - val_mean_squared_error: 0.0543\n", "Epoch 7/40\n", "567/567 [==============================] - 0s 218us/step - loss: 0.1965 - mean_squared_error: 0.0724 - val_loss: 0.1976 - val_mean_squared_error: 0.0596\n", "Epoch 8/40\n", "567/567 [==============================] - 0s 226us/step - loss: 0.1883 - mean_squared_error: 0.0699 - val_loss: 0.1467 - val_mean_squared_error: 0.0378\n", "Epoch 9/40\n", "567/567 [==============================] - 0s 213us/step - loss: 0.1789 - mean_squared_error: 0.0662 - val_loss: 0.1635 - val_mean_squared_error: 0.0477\n", "Epoch 10/40\n", "567/567 [==============================] - 0s 222us/step - loss: 0.1719 - mean_squared_error: 0.0648 - val_loss: 0.1554 - val_mean_squared_error: 0.0388\n", "Epoch 11/40\n", "567/567 [==============================] - 0s 217us/step - loss: 0.1697 - mean_squared_error: 0.0620 - val_loss: 0.1667 - val_mean_squared_error: 0.0464\n", "Epoch 12/40\n", "567/567 [==============================] - 0s 210us/step - loss: 0.1661 - mean_squared_error: 0.0607 - val_loss: 0.1357 - val_mean_squared_error: 0.0354\n", "Epoch 13/40\n", "567/567 [==============================] - 0s 217us/step - loss: 0.1635 - mean_squared_error: 0.0601 - val_loss: 0.1529 - val_mean_squared_error: 0.0405\n", "Epoch 14/40\n", "567/567 [==============================] - 0s 212us/step - loss: 0.1641 - mean_squared_error: 0.0605 - val_loss: 0.1435 - val_mean_squared_error: 0.0399\n", "Epoch 15/40\n", "567/567 [==============================] - 0s 213us/step - loss: 0.1607 - mean_squared_error: 0.0591 - val_loss: 0.1301 - val_mean_squared_error: 0.0325\n", "Epoch 16/40\n", "567/567 [==============================] - 0s 216us/step - loss: 0.1607 - mean_squared_error: 0.0594 - val_loss: 0.1343 - val_mean_squared_error: 0.0362\n", "Epoch 17/40\n", "567/567 [==============================] - 0s 212us/step - loss: 0.1598 - mean_squared_error: 0.0586 - val_loss: 0.1448 - val_mean_squared_error: 0.0381\n", "Epoch 18/40\n", "567/567 [==============================] - 0s 212us/step - loss: 0.1597 - mean_squared_error: 0.0588 - val_loss: 0.1447 - val_mean_squared_error: 0.0391\n", "Epoch 19/40\n", "567/567 [==============================] - 0s 219us/step - loss: 0.1590 - mean_squared_error: 0.0580 - val_loss: 0.1495 - val_mean_squared_error: 0.0435\n", "Epoch 20/40\n", "567/567 [==============================] - 0s 215us/step - loss: 0.1597 - mean_squared_error: 0.0582 - val_loss: 0.1427 - val_mean_squared_error: 0.0383\n", "Epoch 21/40\n", "567/567 [==============================] - 0s 218us/step - loss: 0.1577 - mean_squared_error: 0.0583 - val_loss: 0.1425 - val_mean_squared_error: 0.0350\n", "Epoch 22/40\n", "567/567 [==============================] - 0s 213us/step - loss: 0.1576 - mean_squared_error: 0.0566 - val_loss: 0.1379 - val_mean_squared_error: 0.0376\n", "Epoch 23/40\n", "567/567 [==============================] - 0s 258us/step - loss: 0.1572 - mean_squared_error: 0.0567 - val_loss: 0.1393 - val_mean_squared_error: 0.0373\n", "Epoch 24/40\n", "567/567 [==============================] - 0s 275us/step - loss: 0.1553 - mean_squared_error: 0.0555 - val_loss: 0.1354 - val_mean_squared_error: 0.0349\n", "Epoch 25/40\n", "567/567 [==============================] - 0s 206us/step - loss: 0.1552 - mean_squared_error: 0.0568 - val_loss: 0.1534 - val_mean_squared_error: 0.0429\n", "Epoch 26/40\n", "567/567 [==============================] - 0s 201us/step - loss: 0.1544 - mean_squared_error: 0.0545 - val_loss: 0.1471 - val_mean_squared_error: 0.0386\n", "Epoch 27/40\n", "567/567 [==============================] - 0s 228us/step - loss: 0.1534 - mean_squared_error: 0.0539 - val_loss: 0.1517 - val_mean_squared_error: 0.0437\n", "Epoch 28/40\n", "567/567 [==============================] - 0s 213us/step - loss: 0.1530 - mean_squared_error: 0.0543 - val_loss: 0.1388 - val_mean_squared_error: 0.0365\n", "Epoch 29/40\n", "567/567 [==============================] - 0s 227us/step - loss: 0.1532 - mean_squared_error: 0.0534 - val_loss: 0.1430 - val_mean_squared_error: 0.0388\n", "Epoch 30/40\n", "567/567 [==============================] - 0s 239us/step - loss: 0.1515 - mean_squared_error: 0.0530 - val_loss: 0.1303 - val_mean_squared_error: 0.0314\n", "Epoch 31/40\n", "567/567 [==============================] - 0s 204us/step - loss: 0.1533 - mean_squared_error: 0.0544 - val_loss: 0.1339 - val_mean_squared_error: 0.0336\n", "Epoch 32/40\n", "567/567 [==============================] - 0s 202us/step - loss: 0.1521 - mean_squared_error: 0.0527 - val_loss: 0.1428 - val_mean_squared_error: 0.0366\n", "Epoch 33/40\n", "567/567 [==============================] - 0s 209us/step - loss: 0.1517 - mean_squared_error: 0.0531 - val_loss: 0.1403 - val_mean_squared_error: 0.0369\n", "Epoch 34/40\n", "567/567 [==============================] - 0s 235us/step - loss: 0.1505 - mean_squared_error: 0.0521 - val_loss: 0.1491 - val_mean_squared_error: 0.0394\n", "Epoch 35/40\n", "567/567 [==============================] - 0s 218us/step - loss: 0.1508 - mean_squared_error: 0.0524 - val_loss: 0.1441 - val_mean_squared_error: 0.0385\n", "Epoch 36/40\n", "567/567 [==============================] - 0s 204us/step - loss: 0.1536 - mean_squared_error: 0.0537 - val_loss: 0.1363 - val_mean_squared_error: 0.0330\n", "Epoch 37/40\n", "567/567 [==============================] - 0s 296us/step - loss: 0.1531 - mean_squared_error: 0.0534 - val_loss: 0.1528 - val_mean_squared_error: 0.0424\n", "Epoch 38/40\n", "567/567 [==============================] - 0s 277us/step - loss: 0.1507 - mean_squared_error: 0.0522 - val_loss: 0.1380 - val_mean_squared_error: 0.0348\n", "Epoch 39/40\n", "567/567 [==============================] - 0s 318us/step - loss: 0.1503 - mean_squared_error: 0.0532 - val_loss: 0.1398 - val_mean_squared_error: 0.0355\n", "Epoch 40/40\n", "567/567 [==============================] - 0s 282us/step - loss: 0.1508 - mean_squared_error: 0.0518 - val_loss: 0.1411 - val_mean_squared_error: 0.0389\n" ] } ], "source": [ "EPOCHS=40\n", "\n", "model = crear_modeloFF()\n", "\n", "history=model.fit(x_train,y_train,epochs=EPOCHS,validation_data=(x_val,y_val),batch_size=PASOS)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Visualizamos Resultados" ] }, { "cell_type": "code", "execution_count": 183, "metadata": { "ExecuteTime": { "end_time": "2019-03-13T09:02:13.051879Z", "start_time": "2019-03-13T09:02:12.899589Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "30\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "results=model.predict(x_val)\n", "print( len(results) )\n", "plt.scatter(range(len(y_val)),y_val,c='g')\n", "plt.scatter(range(len(results)),results,c='r')\n", "plt.title('validate')\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": 186, "metadata": { "ExecuteTime": { "end_time": "2019-03-13T09:03:00.871175Z", "start_time": "2019-03-13T09:03:00.722063Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.ylim(0.12, 0.35)\n", "plt.plot(history.history['loss'])\n", "plt.title('loss')\n", "plt.plot(history.history['val_loss'])\n", "plt.title('validate loss')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 191, "metadata": { "ExecuteTime": { "end_time": "2019-03-13T09:24:59.182822Z", "start_time": "2019-03-13T09:24:59.020613Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.ylim(0.01, 0.18)\n", "plt.title('Accuracy')\n", "plt.plot(history.history['mean_squared_error'])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 173, "metadata": { "ExecuteTime": { "end_time": "2019-03-09T11:38:24.552306Z", "start_time": "2019-03-09T11:38:24.534522Z" }, "scrolled": false }, "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", "
realpredicciondiferencia
0252.000006292.846415-40.846410
1220.000002271.207719-51.207718
2296.000009250.84132345.158686
364.999995233.249007-168.249012
4212.999999233.514626-20.514627
595.999996150.834429-54.834433
6274.999986239.21792235.782064
7201.000000198.9541122.045887
8165.000001199.531724-34.531722
9162.999996189.600053-26.600057
\n", "
" ], "text/plain": [ " real prediccion diferencia\n", "0 252.000006 292.846415 -40.846410\n", "1 220.000002 271.207719 -51.207718\n", "2 296.000009 250.841323 45.158686\n", "3 64.999995 233.249007 -168.249012\n", "4 212.999999 233.514626 -20.514627\n", "5 95.999996 150.834429 -54.834433\n", "6 274.999986 239.217922 35.782064\n", "7 201.000000 198.954112 2.045887\n", "8 165.000001 199.531724 -34.531722\n", "9 162.999996 189.600053 -26.600057" ] }, "execution_count": 173, "metadata": {}, "output_type": "execute_result" } ], "source": [ "compara = pd.DataFrame(np.array([y_val, [x[0] for x in results]])).transpose()\n", "compara.columns = ['real', 'prediccion']\n", "\n", "inverted = scaler.inverse_transform(compara.values)\n", "\n", "compara2 = pd.DataFrame(inverted)\n", "compara2.columns = ['real', 'prediccion']\n", "compara2['diferencia'] = compara2['real'] - compara2['prediccion']\n", "compara2.head(10)" ] }, { "cell_type": "code", "execution_count": 174, "metadata": { "ExecuteTime": { "end_time": "2019-03-09T11:39:51.158993Z", "start_time": "2019-03-09T11:39:51.138301Z" } }, "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", "
realpredicciondiferencia
count30.00000030.00000030.000000
mean191.633332214.917230-23.283898
std57.58081735.81210448.738560
min64.999995150.834429-168.249012
25%169.000000194.593611-44.651899
50%200.499998209.075410-24.525737
75%220.000002237.0600201.978475
max296.000009292.84641545.158686
\n", "
" ], "text/plain": [ " real prediccion diferencia\n", "count 30.000000 30.000000 30.000000\n", "mean 191.633332 214.917230 -23.283898\n", "std 57.580817 35.812104 48.738560\n", "min 64.999995 150.834429 -168.249012\n", "25% 169.000000 194.593611 -44.651899\n", "50% 200.499998 209.075410 -24.525737\n", "75% 220.000002 237.060020 1.978475\n", "max 296.000009 292.846415 45.158686" ] }, "execution_count": 174, "metadata": {}, "output_type": "execute_result" } ], "source": [ "compara2.describe()" ] }, { "cell_type": "code", "execution_count": 192, "metadata": { "ExecuteTime": { "end_time": "2019-03-13T10:23:25.749428Z", "start_time": "2019-03-13T10:23:25.504790Z" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 192, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "compara2['real'].plot()\n", "compara2['prediccion'].plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Pronóstico" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A partir de la última semana de noviembre 2018, intentaremos predecir la primer semana de diciembre." ] }, { "cell_type": "code", "execution_count": 150, "metadata": { "ExecuteTime": { "end_time": "2019-03-09T11:34:22.278202Z", "start_time": "2019-03-09T11:34:22.246618Z" } }, "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", "
unidadesweekdaymonthscaled
fecha
2018-11-16152411-0.625926
2018-11-17111511-0.777778
2018-11-19207011-0.422222
2018-11-20206111-0.425926
2018-11-21183211-0.511111
2018-11-22200311-0.448148
2018-11-23187411-0.496296
2018-11-24189511-0.488889
2018-11-2576611-0.907407
2018-11-26276011-0.166667
2018-11-27220111-0.374074
2018-11-28183211-0.511111
2018-11-29251311-0.259259
2018-11-30189411-0.488889
\n", "
" ], "text/plain": [ " unidades weekday month scaled\n", "fecha \n", "2018-11-16 152 4 11 -0.625926\n", "2018-11-17 111 5 11 -0.777778\n", "2018-11-19 207 0 11 -0.422222\n", "2018-11-20 206 1 11 -0.425926\n", "2018-11-21 183 2 11 -0.511111\n", "2018-11-22 200 3 11 -0.448148\n", "2018-11-23 187 4 11 -0.496296\n", "2018-11-24 189 5 11 -0.488889\n", "2018-11-25 76 6 11 -0.907407\n", "2018-11-26 276 0 11 -0.166667\n", "2018-11-27 220 1 11 -0.374074\n", "2018-11-28 183 2 11 -0.511111\n", "2018-11-29 251 3 11 -0.259259\n", "2018-11-30 189 4 11 -0.488889" ] }, "execution_count": 150, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ultimosDias = df['2018-11-16':'2018-11-30']\n", "ultimosDias" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Preparamos los datos para Test" ] }, { "cell_type": "code", "execution_count": 151, "metadata": { "ExecuteTime": { "end_time": "2019-03-09T11:34:22.353579Z", "start_time": "2019-03-09T11:34:22.281772Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 4. 11. -0.62592596]\n", " [ 5. 11. -0.77777779]\n", " [ 0. 11. -0.42222226]\n", " [ 1. 11. -0.42592597]\n", " [ 2. 11. -0.51111114]\n", " [ 3. 11. -0.44814819]\n", " [ 4. 11. -0.49629635]\n", " [ 5. 11. -0.48888892]\n", " [ 6. 11. -0.9074074 ]\n", " [ 0. 11. -0.16666675]\n", " [ 1. 11. -0.3740741 ]\n", " [ 2. 11. -0.51111114]\n", " [ 3. 11. -0.25925928]\n", " [ 4. 11. -0.48888892]]\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
var1(t-7)var2(t-7)var3(t-7)var1(t-6)var2(t-6)var3(t-6)var1(t-5)var2(t-5)var3(t-5)var1(t-4)...var3(t-4)var1(t-3)var2(t-3)var3(t-3)var1(t-2)var2(t-2)var3(t-2)var1(t-1)var2(t-1)var3(t-1)
fecha
2018-11-244.011.0-0.6259265.011.0-0.7777780.011.0-0.4222221.0...-0.4259262.011.0-0.5111113.011.0-0.4481484.011.0-0.496296
2018-11-255.011.0-0.7777780.011.0-0.4222221.011.0-0.4259262.0...-0.5111113.011.0-0.4481484.011.0-0.4962965.011.0-0.488889
2018-11-260.011.0-0.4222221.011.0-0.4259262.011.0-0.5111113.0...-0.4481484.011.0-0.4962965.011.0-0.4888896.011.0-0.907407
2018-11-271.011.0-0.4259262.011.0-0.5111113.011.0-0.4481484.0...-0.4962965.011.0-0.4888896.011.0-0.9074070.011.0-0.166667
2018-11-282.011.0-0.5111113.011.0-0.4481484.011.0-0.4962965.0...-0.4888896.011.0-0.9074070.011.0-0.1666671.011.0-0.374074
2018-11-293.011.0-0.4481484.011.0-0.4962965.011.0-0.4888896.0...-0.9074070.011.0-0.1666671.011.0-0.3740742.011.0-0.511111
2018-11-304.011.0-0.4962965.011.0-0.4888896.011.0-0.9074070.0...-0.1666671.011.0-0.3740742.011.0-0.5111113.011.0-0.259259
\n", "

7 rows × 21 columns

\n", "
" ], "text/plain": [ " var1(t-7) var2(t-7) var3(t-7) var1(t-6) var2(t-6) var3(t-6) \\\n", "fecha \n", "2018-11-24 4.0 11.0 -0.625926 5.0 11.0 -0.777778 \n", "2018-11-25 5.0 11.0 -0.777778 0.0 11.0 -0.422222 \n", "2018-11-26 0.0 11.0 -0.422222 1.0 11.0 -0.425926 \n", "2018-11-27 1.0 11.0 -0.425926 2.0 11.0 -0.511111 \n", "2018-11-28 2.0 11.0 -0.511111 3.0 11.0 -0.448148 \n", "2018-11-29 3.0 11.0 -0.448148 4.0 11.0 -0.496296 \n", "2018-11-30 4.0 11.0 -0.496296 5.0 11.0 -0.488889 \n", "\n", " var1(t-5) var2(t-5) var3(t-5) var1(t-4) ... var3(t-4) \\\n", "fecha ... \n", "2018-11-24 0.0 11.0 -0.422222 1.0 ... -0.425926 \n", "2018-11-25 1.0 11.0 -0.425926 2.0 ... -0.511111 \n", "2018-11-26 2.0 11.0 -0.511111 3.0 ... -0.448148 \n", "2018-11-27 3.0 11.0 -0.448148 4.0 ... -0.496296 \n", "2018-11-28 4.0 11.0 -0.496296 5.0 ... -0.488889 \n", "2018-11-29 5.0 11.0 -0.488889 6.0 ... -0.907407 \n", "2018-11-30 6.0 11.0 -0.907407 0.0 ... -0.166667 \n", "\n", " var1(t-3) var2(t-3) var3(t-3) var1(t-2) var2(t-2) var3(t-2) \\\n", "fecha \n", "2018-11-24 2.0 11.0 -0.511111 3.0 11.0 -0.448148 \n", "2018-11-25 3.0 11.0 -0.448148 4.0 11.0 -0.496296 \n", "2018-11-26 4.0 11.0 -0.496296 5.0 11.0 -0.488889 \n", "2018-11-27 5.0 11.0 -0.488889 6.0 11.0 -0.907407 \n", "2018-11-28 6.0 11.0 -0.907407 0.0 11.0 -0.166667 \n", "2018-11-29 0.0 11.0 -0.166667 1.0 11.0 -0.374074 \n", "2018-11-30 1.0 11.0 -0.374074 2.0 11.0 -0.511111 \n", "\n", " var1(t-1) var2(t-1) var3(t-1) \n", "fecha \n", "2018-11-24 4.0 11.0 -0.496296 \n", "2018-11-25 5.0 11.0 -0.488889 \n", "2018-11-26 6.0 11.0 -0.907407 \n", "2018-11-27 0.0 11.0 -0.166667 \n", "2018-11-28 1.0 11.0 -0.374074 \n", "2018-11-29 2.0 11.0 -0.511111 \n", "2018-11-30 3.0 11.0 -0.259259 \n", "\n", "[7 rows x 21 columns]" ] }, "execution_count": 151, "metadata": {}, "output_type": "execute_result" } ], "source": [ "scaledMerge=ultimosDias.drop('unidades',axis=1)\n", "print(scaledMerge.values)\n", "\n", "# frame as supervised learning\n", "reframed = series_to_supervised(scaledMerge, PASOS, 1)\n", "newReframed=reframed.drop(['var1(t)','var2(t)','var3(t)'],axis=1)\n", "newReframed.head(7)" ] }, { "cell_type": "code", "execution_count": 153, "metadata": { "ExecuteTime": { "end_time": "2019-03-09T11:34:22.381464Z", "start_time": "2019-03-09T11:34:22.372980Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(1, 1, 21)\n", "[[[ 4. 11. -0.49629635 5. 11.\n", " -0.48888892 6. 11. -0.9074074 0.\n", " 11. -0.16666675 1. 11. -0.3740741\n", " 2. 11. -0.51111114 3. 11.\n", " -0.25925928]]]\n" ] } ], "source": [ "values = newReframed.values\n", "x_test = values[6:, :]\n", "x_test = x_test.reshape((x_test.shape[0], 1, x_test.shape[1]))\n", "print(x_test.shape)\n", "print(x_test)\n", "ultDiaSemana = newReframed.index[len(newReframed.index)-1].weekday()" ] }, { "cell_type": "code", "execution_count": 154, "metadata": { "ExecuteTime": { "end_time": "2019-03-09T11:34:22.391817Z", "start_time": "2019-03-09T11:34:22.386537Z" } }, "outputs": [], "source": [ "def agregarNuevoValor(x_test,nuevoValor,ultDiaSemana):\n", " for i in range(x_test.shape[2]-3):\n", " x_test[0][0][i] = x_test[0][0][i+3]\n", " ultDiaSemana=ultDiaSemana+1\n", " if ultDiaSemana>6:\n", " ultDiaSemana=0\n", " x_test[0][0][x_test.shape[2]-3]=ultDiaSemana\n", " x_test[0][0][x_test.shape[2]-2]=12\n", " x_test[0][0][x_test.shape[2]-1]=nuevoValor\n", " return x_test,ultDiaSemana" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Pronóstico para la \"próxima semana\"" ] }, { "cell_type": "code", "execution_count": 155, "metadata": { "ExecuteTime": { "end_time": "2019-03-09T11:34:22.417662Z", "start_time": "2019-03-09T11:34:22.395033Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pred 0 [[[ 4. 11. -0.49629635 5. 11.\n", " -0.48888892 6. 11. -0.9074074 0.\n", " 11. -0.16666675 1. 11. -0.3740741\n", " 2. 11. -0.51111114 3. 11.\n", " -0.25925928]]]\n", "pred 1 [[[ 5. 11. -0.48888892 6. 11.\n", " -0.9074074 0. 11. -0.16666675 1.\n", " 11. -0.3740741 2. 11. -0.51111114\n", " 3. 11. -0.25925928 5. 12.\n", " -0.30600056]]]\n", "pred 2 [[[ 6. 11. -0.9074074 0. 11.\n", " -0.16666675 1. 11. -0.3740741 2.\n", " 11. -0.51111114 3. 11. -0.25925928\n", " 5. 12. -0.30600056 6. 12.\n", " -0.60506994]]]\n", "pred 3 [[[ 0. 11. -0.16666675 1. 11.\n", " -0.3740741 2. 11. -0.51111114 3.\n", " 11. -0.25925928 5. 12. -0.30600056\n", " 6. 12. -0.60506994 0. 12.\n", " -0.16298515]]]\n", "pred 4 [[[ 1. 11. -0.3740741 2. 11.\n", " -0.51111114 3. 11. -0.25925928 5.\n", " 12. -0.30600056 6. 12. -0.60506994\n", " 0. 12. -0.16298515 1. 12.\n", " -0.31580934]]]\n", "pred 5 [[[ 2. 11. -0.51111114 3. 11.\n", " -0.25925928 5. 12. -0.30600056 6.\n", " 12. -0.60506994 0. 12. -0.16298515\n", " 1. 12. -0.31580934 2. 12.\n", " -0.35640854]]]\n", "pred 6 [[[ 3. 11. -0.25925928 5. 12.\n", " -0.30600056 6. 12. -0.60506994 0.\n", " 12. -0.16298515 1. 12. -0.31580934\n", " 2. 12. -0.35640854 3. 12.\n", " -0.22789632]]]\n" ] } ], "source": [ "results=[]\n", "for i in range(7):\n", " parcial=model.predict(x_test)\n", " results.append(parcial[0])\n", " print('pred',i,x_test)\n", " x_test,ultDiaSemana=agregarNuevoValor(x_test,parcial[0],ultDiaSemana)\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Re-Convertimos los resultados" ] }, { "cell_type": "code", "execution_count": 156, "metadata": { "ExecuteTime": { "end_time": "2019-03-09T11:34:22.438967Z", "start_time": "2019-03-09T11:34:22.422731Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[array([-0.30600056], dtype=float32), array([-0.60506994], dtype=float32), array([-0.16298515], dtype=float32), array([-0.31580934], dtype=float32), array([-0.35640854], dtype=float32), array([-0.22789632], dtype=float32), array([-0.21720925], dtype=float32)]\n" ] }, { "data": { "text/plain": [ "array([[238.37985788],\n", " [157.63112526],\n", " [276.99402048],\n", " [235.73148757],\n", " [224.76970415],\n", " [259.46800378],\n", " [262.35351222]])" ] }, "execution_count": 156, "metadata": {}, "output_type": "execute_result" } ], "source": [ "adimen = [x for x in results] \n", "print(adimen)\n", "inverted = scaler.inverse_transform(adimen)\n", "inverted" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Visualizamos el pronóstico" ] }, { "cell_type": "code", "execution_count": 157, "metadata": { "ExecuteTime": { "end_time": "2019-03-09T11:34:22.823595Z", "start_time": "2019-03-09T11:34:22.442351Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "prediccion1SemanaDiciembre = pd.DataFrame(inverted)\n", "prediccion1SemanaDiciembre.columns = ['pronostico']\n", "prediccion1SemanaDiciembre.plot()\n", "prediccion1SemanaDiciembre.to_csv('pronostico_multivariate.csv')" ] }, { "cell_type": "code", "execution_count": 158, "metadata": { "ExecuteTime": { "end_time": "2019-03-09T11:34:22.846576Z", "start_time": "2019-03-09T11:34:22.828234Z" } }, "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", "
pronostico
0238.379858
1157.631125
2276.994020
3235.731488
4224.769704
5259.468004
6262.353512
\n", "
" ], "text/plain": [ " pronostico\n", "0 238.379858\n", "1 157.631125\n", "2 276.994020\n", "3 235.731488\n", "4 224.769704\n", "5 259.468004\n", "6 262.353512" ] }, "execution_count": 158, "metadata": {}, "output_type": "execute_result" } ], "source": [ "prediccion1SemanaDiciembre" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "El artículo completo en www.aprendemachinelearning.com" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }