{ "cells": [ { "cell_type": "markdown", "id": "ba71a55c", "metadata": { "id": "hi2CmTEDvGij" }, "source": [ "# Purpose of Notebook\n", "\n", "The purpose of this notebook is to offer an example solution to the guided project for the Sequential Models for Deep Learning course. Since the choice of model predictors is up to the learner, results can differ. Use this solution as a guide for how to structure your own answer." ] }, { "cell_type": "markdown", "id": "da963ff3", "metadata": { "id": "e65739c8" }, "source": [ "# Time-Series Forecasting on the S&P 500" ] }, { "cell_type": "markdown", "id": "33c20aa2", "metadata": { "id": "18150cb2" }, "source": [ "**Context**: We are working as traders on the S&P 500 futures desk. We have been tasked with building a model to better forecast how this index will move based on its behavior over the past several years. The better our forecast performs, the more effectively and lucratively our desk will be able to trade these futures." ] }, { "cell_type": "markdown", "id": "da06b221", "metadata": { "id": "2e64de5f" }, "source": [ "## 1. Introduction" ] }, { "cell_type": "markdown", "id": "599774a6", "metadata": { "id": "9091a3ff" }, "source": [ "The dataset we will be working with is from [Yahoo Finance via Kaggle](https://www.kaggle.com/datasets/arashnic/time-series-forecasting-with-yahoo-stock-price), and it contains S&P 500 Index prices from 2015 through 2020.\n", "\n", "Before we get into the data, let's set some random seed values to improve the reproducibility of the models we will build later on." ] }, { "cell_type": "code", "execution_count": 1, "id": "830f8d64", "metadata": { "id": "e101a4be" }, "outputs": [], "source": [ "# Imports\n", "import tensorflow as tf\n", "import numpy as np\n", "import random\n", "\n", "# Seed code\n", "np.random.seed(1)\n", "random.seed(1)\n", "tf.random.set_seed(1)" ] }, { "cell_type": "markdown", "id": "961d325b", "metadata": { "id": "240f8d2d" }, "source": [ "## 2. Data Wrangling and Exploration" ] }, { "cell_type": "markdown", "id": "9f69912d", "metadata": { "id": "395dc3c2" }, "source": [ "First, we will load in the data and inspect it to determine what steps will be required for cleaning and preprocessing." ] }, { "cell_type": "code", "execution_count": 2, "id": "1fae836e", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 206 }, "id": "f55e074c", "outputId": "f2091de4-28f5-4d49-c8c8-8420aee93d51" }, "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", "
DateHighLowOpenCloseVolumeAdj Close
02015-11-232095.6101072081.3898932089.4099122086.5900883.587980e+092086.590088
12015-11-242094.1201172070.2900392084.4199222089.1398933.884930e+092089.139893
22015-11-252093.0000002086.3000492089.3000492088.8701172.852940e+092088.870117
32015-11-262093.0000002086.3000492089.3000492088.8701172.852940e+092088.870117
42015-11-272093.2900392084.1298832088.8200682090.1101071.466840e+092090.110107
\n", "
" ], "text/plain": [ " Date High Low Open Close \\\n", "0 2015-11-23 2095.610107 2081.389893 2089.409912 2086.590088 \n", "1 2015-11-24 2094.120117 2070.290039 2084.419922 2089.139893 \n", "2 2015-11-25 2093.000000 2086.300049 2089.300049 2088.870117 \n", "3 2015-11-26 2093.000000 2086.300049 2089.300049 2088.870117 \n", "4 2015-11-27 2093.290039 2084.129883 2088.820068 2090.110107 \n", "\n", " Volume Adj Close \n", "0 3.587980e+09 2086.590088 \n", "1 3.884930e+09 2089.139893 \n", "2 2.852940e+09 2088.870117 \n", "3 2.852940e+09 2088.870117 \n", "4 1.466840e+09 2090.110107 " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Import\n", "import pandas as pd\n", "\n", "# Load and inspect the data\n", "stock_data = pd.read_csv(\"yahoo_stock.csv\")\n", "stock_data.head()" ] }, { "cell_type": "markdown", "id": "a606ccb5", "metadata": { "id": "192e4514" }, "source": [ "We can see that the data contains seven columns: `Date`, `High`, `Low`, `Open`, `Close`, `Volume`, and `Adj Close`.\n", "\n", "We will want to set the index of the DataFrame to the `Date` column to prepare for time series forecasting, and decide what other column(s) to use for the forecast itself. For now, we are going to use only the `Adj Close` column, which is the closing price of the S&P 500 index, [adjusted for dividends](https://www.investopedia.com/articles/investing/091015/how-dividends-affect-stock-prices.asp). Based on this decision, we modify the DataFrame to drop the other columns.\n", "\n", "We should also ensure that the data is sorted by its `Date` column." ] }, { "cell_type": "code", "execution_count": 3, "id": "2993d21e", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 238 }, "id": "d4e04bd1", "outputId": "d9068a8e-5a59-4934-ba1b-f036db02772e" }, "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", "
Adj Close
Date
2015-11-232086.590088
2015-11-242089.139893
2015-11-252088.870117
2015-11-262088.870117
2015-11-272090.110107
\n", "
" ], "text/plain": [ " Adj Close\n", "Date \n", "2015-11-23 2086.590088\n", "2015-11-24 2089.139893\n", "2015-11-25 2088.870117\n", "2015-11-26 2088.870117\n", "2015-11-27 2090.110107" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Select relevant columns, sort data, and set index\n", "stock_data = stock_data[[\"Date\", \"Adj Close\"]]\n", "stock_data = stock_data.sort_values(\"Date\")\n", "stock_data = stock_data.set_index(\"Date\")\n", "\n", "# Inspect the data\n", "stock_data.head()" ] }, { "cell_type": "markdown", "id": "aff03554", "metadata": { "id": "c0d02adc" }, "source": [ "We should also double-check that we don't have any missing or erroneous values in our dataset, and consider forward-filling or interpolating if necessary." ] }, { "cell_type": "code", "execution_count": 4, "id": "7502bff3", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "ff57c079", "outputId": "199f8938-e72b-4d2a-f8fc-ddeab6256faa" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Info: \n", "\n", "Index: 1825 entries, 2015-11-23 to 2020-11-20\n", "Data columns (total 1 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 Adj Close 1825 non-null float64\n", "dtypes: float64(1)\n", "memory usage: 28.5+ KB\n", "\n", "Describe: \n", " Adj Close\n", "count 1825.000000\n", "mean 2647.856284\n", "std 407.301177\n", "min 1829.079956\n", "25% 2328.949951\n", "50% 2683.340088\n", "75% 2917.520020\n", "max 3626.909912\n", "\n", "Skew: \n", " Adj Close 0.081869\n", "dtype: float64\n" ] } ], "source": [ "# Check for missing or erroneous values\n", "print(\"Info: \")\n", "stock_data.info()\n", "print(\"\\nDescribe: \\n\", stock_data.describe())\n", "print(\"\\nSkew: \\n\", stock_data.skew())" ] }, { "cell_type": "markdown", "id": "a9418c22", "metadata": { "id": "0f794226" }, "source": [ "Great! No missing values, and everything seems to be within a reasonable range. The low skew value for `Adj Close` indicates we don't have any outliers to be concerned about.\n", "\n", "Before we begin preparing the data for modeling by scaling the variable to be forecasted (`Adj Close`) and splitting the dataset for training, validation, and testing, let's quickly visualize the data." ] }, { "cell_type": "code", "execution_count": 5, "id": "214130bc", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 274 }, "id": "062d8991", "outputId": "e5244674-9c69-49b3-9064-e6687ec13ba7" }, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Adjusted Close')" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkQAAAHCCAYAAAAO4dYCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAACVrElEQVR4nOzde1xT9f8H8Nc2tnG/KiACiqAI4v2KpoI3VLylZaWV19Ii/YmlZVmZ5iVNzb6ZZV67mGmllpoKKpqJd/F+F0XlJiKM64Dt8/tj7LCzDdhgDCbv5+PB47Fzzmdnn32c7M3n9hYwxhgIIYQQQuoxYW1XgBBCCCGktlFARAghhJB6jwIiQgghhNR7FBARQgghpN6jgIgQQggh9R4FRIQQQgip9yggIoQQQki9RwERIYQQQuo9CogIIYQQUu9RQEQIIXXU+PHj0bRp09quBiH1AgVEhJByXbp0CS+88AKaNGkCa2trNG7cGP3798f//vc/nbJPnz7F1KlT0bhxY9jZ2aFt27ZYtmxZufcWCATcj1AohJeXFwYMGIC4uLhK6zVv3jze89U/1tbWesuvX78eQUFBsLa2RvPmzfXWHwAePXqE0aNHw9nZGY6Ojhg+fDju3r1baX0AoGnTphgyZIhBZQkhdY9VbVeAEFI3HT9+HOHh4fD19cUbb7wBT09PPHjwACdOnMCqVaswbdo0Xvnx48dj7969eOedd9CyZUtcuHABv/zyC2bNmlXua/Tv3x+vv/46GGNITEzEt99+iz59+mDPnj0YNGhQpXVcs2YN7O3tuWORSKRT5vvvv8fUqVMxatQozJw5E//++y+mT5+O/Px8vP/++1y53NxchIeHIzs7Gx9++CHEYjFWrlyJ3r17IyEhAW5uboY0GyHEUjFCCNFj8ODBrGHDhuzp06c619LS0njHubm5TCgUsrfffpt3vrCwsNz7A2BRUVG8cxcvXmQA2IABAyqs26effsoAsMePH1dYLj8/n7m5ubHIyEje+bFjxzI7OzuWmZnJnfviiy8YAHbq1Cnu3LVr15hIJGJz5syp8HUYY6xJkyY6r1Nd48aNY02aNDHpPQkh+tGQGSFErzt37qBVq1ZwdnbWuebu7s47Vg9ZMcZ456VSqVGv2bp1azRo0ACJiYkGlWeMQSaT6byu2uHDh/HkyRO8/fbbvPNRUVHIy8vDnj17uHO///47OnfujM6dO3PnWrZsib59+2Lbtm1GvQ8AuHfvHgQCAb788kusXbsW/v7+kEql6Ny5M06fPq1TfufOnQgJCYG1tTVCQkKwY8cOvfdVKpX46quv0KpVK1hbW8PDwwNTpkzB06dPuTKffvophEIhDh48yHvum2++CYlEggsXLhj9fgh51lFARAjRq0mTJjh79iwuX75caVlbW1uMHj0amzZtwvnz56v8mk+fPsXTp08NHp5q1qwZnJyc4ODggFdffRVpaWm86+q6dOrUiXe+Y8eOEAqF3HWlUomLFy/qlAOALl264M6dO8jJyanKW8KWLVuwbNkyTJkyBZ9//jnu3buHkSNHori4mCtz4MABjBo1CgKBAIsXL8aIESMwYcIEnDlzRud+U6ZMwaxZs9CjRw+sWrUKEyZMwC+//IKIiAjunnPnzkW7du0wadIkrt779+/HDz/8gE8++QRt27at0nsh5FlGc4gIIXq99957GDRoENq1a4cuXbqgZ8+e6Nu3L8LDwyEWi3llc3Nz8fjxYygUCgwaNAj//vsvmjdvXulrFBYWIiMjg5tD9OGHH0KhUODFF1+s8HkuLi545513EBoaCqlUin///RerV6/GqVOncObMGTg6OgIAUlJSIBKJdHq0JBIJ3NzckJycDADIzMyEXC5Ho0aNdF5LfS45ORmBgYGVvidtSUlJuHXrFlxcXAAAgYGBGD58OPbv389Nwn7//ffh4eGBY8eOwcnJCQDQu3dvDBgwAE2aNOHudezYMaxbtw6//PILxowZw50PDw/HwIEDsX37dowZMwZisRg//vgjOnbsiJkzZ2LZsmWYNGkSOnXqhA8++MDo90BIvVC7I3aEkLrs1KlT7Pnnn2e2trYMAAPAGjZsyHbt2sUr9/zzz7OAgAB29+5dFhISwnx9fdn9+/e568ePH2cAWGxsLHdOfT/NH2trazZz5kymUCiMrusvv/zCALDFixdz5yZOnMhsbGz0lvfx8WHDhw9njDGWlJTEALAvvvhCp9z69esZAHb+/PkKX197DlFiYiIDoDOvKjMzkwFgq1atYowxlpyczACwDz74QOeewcHBvDlE06dPZ05OTiw9PZ09fvyY92Nvb88mT57Me/7ixYsZANalSxcmlUrZlStXKnwPhNRnNGRGCClX586d8eeff+Lp06c4deoU5syZg5ycHLzwwgu4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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Imports\n", "import matplotlib.pyplot as plt\n", "import matplotlib.dates as mdates\n", "\n", "# Plot the data\n", "plt.plot(stock_data)\n", "\n", "# Add title and axis labels\n", "plt.title('S&P 500 Index')\n", "plt.xlabel('Date')\n", "plt.xticks(rotation=45)\n", "plt.gca().xaxis.set_major_locator(mdates.YearLocator())\n", "plt.gcf().autofmt_xdate()\n", "plt.ylabel('Adjusted Close')" ] }, { "cell_type": "markdown", "id": "731bb411", "metadata": { "id": "bdbb420b" }, "source": [ "The plot is looking great! We can see that we have data from about five years to work with. There are no gaps, and there are some visible dips and spikes.\n", "\n", "Clearly there is a pattern here (it's not just random noise), and we want to build a model that can predict that pattern. Before we can do that, we need to preprocess the data so we can build and train an RNN model. Let's move on to that data preprocessing." ] }, { "cell_type": "markdown", "id": "455fda72", "metadata": { "id": "743cc550" }, "source": [ "## 3. Data Preprocessing" ] }, { "cell_type": "markdown", "id": "17a6d799", "metadata": { "id": "8454185d" }, "source": [ "Before we can build and train an RNN model to make forecasts based on this data, we need to complete two preprocessing steps:\n", "- Split the data into `train`, `validation`, and `test` sets, using 50% of the data for training and 25% each for validation and testing.\n", "- Scale the data to between `0` and `1`, fitting the scaler to the training data and using the fitted scaler to scale all three datasets." ] }, { "cell_type": "code", "execution_count": 6, "id": "776a16da", "metadata": { "id": "007b1366" }, "outputs": [], "source": [ "# Import\n", "from sklearn.preprocessing import MinMaxScaler\n", "\n", "# Split into train, validation, and test sets\n", "train_size = int(len(stock_data) * 0.5)\n", "validation_size = int(len(stock_data) * 0.25)\n", "train_df = stock_data.iloc[0:train_size, :]\n", "validation_df = stock_data.iloc[train_size:train_size + validation_size, :]\n", "test_df = stock_data.iloc[train_size + validation_size:len(stock_data), :]\n", "\n", "# Fit scaler\n", "scaler = MinMaxScaler()\n", "scaler.fit(train_df)\n", "\n", "# Scale data\n", "train = pd.DataFrame(scaler.transform(train_df), columns=['Adj Close'], index=train_df.index)\n", "validation = pd.DataFrame(scaler.transform(validation_df), columns=['Adj Close'], index=validation_df.index)\n", "test = pd.DataFrame(scaler.transform(test_df), columns=['Adj Close'], index=test_df.index)" ] }, { "cell_type": "markdown", "id": "e4886142", "metadata": { "id": "0dbb236a" }, "source": [ "We will also want to shape our data into fixed-length time windows and reshape it into NumPy arrays to prepare it for TensorFlow models. We will do this in a way that is repeatable and does not overwrite our `train`, `validation`, and `test` variables so that we have the freedom to modify this window size later." ] }, { "cell_type": "code", "execution_count": 7, "id": "308a8e29", "metadata": { "id": "1959002c" }, "outputs": [], "source": [ "# Define a helper function to construct windowed datasets\n", "def create_dataset(dataset, window_size=1):\n", " data_x, data_y = [], []\n", " for i in range(len(dataset) - window_size - 1):\n", " window = dataset.iloc[i:(i + window_size), 0]\n", " target = dataset.iloc[i + window_size, 0]\n", " data_x.append(window)\n", " data_y.append(target)\n", " return np.array(data_x), np.array(data_y)\n", "\n", "# Set the desired window size\n", "window_size = 10\n", "\n", "# Construct train, validation, and test datasets\n", "X_train, y_train = create_dataset(train, window_size)\n", "X_validation, y_validation = create_dataset(validation, window_size)\n", "X_test, y_test = create_dataset(test, window_size)\n", "\n", "# Reshape into NumPy arrays\n", "X_train = np.reshape(X_train, (X_train.shape[0], 1, X_train.shape[1]))\n", "X_validation = np.reshape(X_validation, (X_validation.shape[0], 1, X_validation.shape[1]))\n", "X_test = np.reshape(X_test, (X_test.shape[0], 1, X_test.shape[1]))" ] }, { "cell_type": "markdown", "id": "0c065df2", "metadata": { "id": "14a5a3de" }, "source": [ "## 4. Build and Train a Basic RNN Model" ] }, { "cell_type": "markdown", "id": "72947bde", "metadata": { "id": "e230e893" }, "source": [ "Now comes the fun part! We've thoroughly prepared our data for modeling and now we need to build a TensorFlow model to make forecasts. Let's start with a `SimpleRNN` model." ] }, { "cell_type": "code", "execution_count": 8, "id": "4273d727-07c3-4782-b1dc-f0b85985f871", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"sequential\"\n", "_________________________________________________________________\n", " Layer (type) Output Shape Param # \n", "=================================================================\n", " simple_rnn (SimpleRNN) (None, 10) 210 \n", " \n", " dense (Dense) (None, 10) 110 \n", " \n", " dense_1 (Dense) (None, 1) 11 \n", " \n", "=================================================================\n", "Total params: 331\n", "Trainable params: 331\n", "Non-trainable params: 0\n", "_________________________________________________________________\n" ] } ], "source": [ "# Imports\n", "from tensorflow import keras\n", "from tensorflow.keras import layers\n", "\n", "# Build the model\n", "model = tf.keras.Sequential()\n", "model.add(tf.keras.layers.SimpleRNN(10, input_shape=(1, window_size), activation='relu'))\n", "model.add(tf.keras.layers.Dense(10, activation='relu'))\n", "model.add(tf.keras.layers.Dense(1))\n", "model.compile(optimizer='adam', loss='mean_squared_error')\n", "model.summary()" ] }, { "cell_type": "markdown", "id": "a709fce4", "metadata": { "id": "ca885bb7" }, "source": [ "Great! And now that we've built the model, let's train it on our training dataset and evaluate its performance using the validation dataset. Note that we are _not_ using the `test` dataset yet because we want to have a clean, untouched testing dataset for our final model evaluation. We may have skipped this step in previous lessons for simplicity, but it is a best practice to set aside an untouched testing set during the model optimization process." ] }, { "cell_type": "code", "execution_count": 9, "id": "5de4ac69", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "03c24e26", "outputId": "7e5c6c1f-e9e5-4f7a-ddb3-a1e9c6018295" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "29/29 [==============================] - 1s 2ms/step - loss: 0.5889\n", "14/14 [==============================] - 0s 1ms/step\n", "-92.97549395321612\n" ] } ], "source": [ "# Import\n", "from sklearn.metrics import r2_score\n", "\n", "# Train the model\n", "model.fit(X_train, y_train)\n", "\n", "# Make predictions and evaluate\n", "y_pred = model.predict(X_validation)\n", "print(r2_score(y_validation, y_pred))" ] }, { "cell_type": "markdown", "id": "75199ecf", "metadata": { "id": "475190db" }, "source": [ "Yikes! That R-Squared score is not looking very good. Let's see if we can improve upon this model." ] }, { "cell_type": "markdown", "id": "2e42a94c", "metadata": { "id": "0d2f80d5" }, "source": [ "## 5. Build and Train an LSTM Model" ] }, { "cell_type": "markdown", "id": "1b247614", "metadata": { "id": "c4211a13" }, "source": [ "Let's repeat the above steps for an LSTM model and see if we can improve performance." ] }, { "cell_type": "code", "execution_count": 10, "id": "d51660b4", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "6dc34b29", "outputId": "cf5e5f9d-cb9f-4c33-c163-73bebc393ce8" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"sequential_1\"\n", "_________________________________________________________________\n", " Layer (type) Output Shape Param # \n", "=================================================================\n", " lstm (LSTM) (None, 10) 840 \n", " \n", " dense_2 (Dense) (None, 10) 110 \n", " \n", " dense_3 (Dense) (None, 1) 11 \n", " \n", "=================================================================\n", "Total params: 961\n", "Trainable params: 961\n", "Non-trainable params: 0\n", "_________________________________________________________________\n", "29/29 [==============================] - 2s 2ms/step - loss: 0.3164\n", "14/14 [==============================] - 0s 2ms/step\n", "-60.02999289943477\n" ] } ], "source": [ "# Build the model\n", "model = tf.keras.Sequential()\n", "model.add(tf.keras.layers.LSTM(10, input_shape=(1, window_size), activation='relu'))\n", "model.add(tf.keras.layers.Dense(10, activation='relu'))\n", "model.add(tf.keras.layers.Dense(1))\n", "model.compile(optimizer='adam', loss='mean_squared_error')\n", "model.summary()\n", "\n", "# Train the model\n", "model.fit(X_train, y_train)\n", "\n", "# Make predictions and evaluate\n", "y_pred = model.predict(X_validation)\n", "print(r2_score(y_validation, y_pred))" ] }, { "cell_type": "markdown", "id": "47c76a36", "metadata": { "id": "e82aa818" }, "source": [ "That didn't improve things like we hoped. For now, let's keep the LSTM in place until we're ready to fully optimize the model, and we can decide then whether it's worth keeping. For now, let's move onto the next section to see what other techniques we can try to improve this model." ] }, { "cell_type": "markdown", "id": "d77306da", "metadata": { "id": "d265d334" }, "source": [ "## 6. Add a Convolutional Layer" ] }, { "cell_type": "markdown", "id": "4ba0e666", "metadata": { "id": "c46ad12c" }, "source": [ "Next, we are going to branch out a bit from the basic RNN or LSTM model and try adding a convolutional layer to see if this improves the model performance." ] }, { "cell_type": "code", "execution_count": 11, "id": "5f417499", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "9afe33e8", "outputId": "480766cd-3378-4dde-bcff-e93662070621" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"sequential_2\"\n", "_________________________________________________________________\n", " Layer (type) Output Shape Param # \n", "=================================================================\n", " conv1d (Conv1D) (None, 1, 64) 704 \n", " \n", " max_pooling1d (MaxPooling1D (None, 1, 64) 0 \n", " ) \n", " \n", " lstm_1 (LSTM) (None, 10) 3000 \n", " \n", " dense_4 (Dense) (None, 10) 110 \n", " \n", " dense_5 (Dense) (None, 1) 11 \n", " \n", "=================================================================\n", "Total params: 3,825\n", "Trainable params: 3,825\n", "Non-trainable params: 0\n", "_________________________________________________________________\n", "29/29 [==============================] - 2s 2ms/step - loss: 0.2094\n", "14/14 [==============================] - 0s 2ms/step\n", "-23.86714366881604\n" ] } ], "source": [ "# Build the model\n", "model = tf.keras.Sequential()\n", "model.add(tf.keras.layers.Conv1D(64, 1, activation=\"relu\", input_shape=(1, window_size)))\n", "model.add(tf.keras.layers.MaxPooling1D(1))\n", "model.add(tf.keras.layers.LSTM(10, activation='relu'))\n", "model.add(tf.keras.layers.Dense(10, activation='relu'))\n", "model.add(tf.keras.layers.Dense(1))\n", "model.compile(optimizer='adam', loss='mean_squared_error')\n", "model.summary()\n", "\n", "# Train the model\n", "model.fit(X_train, y_train)\n", "\n", "# Make predictions and evaluate\n", "y_pred = model.predict(X_validation)\n", "print(r2_score(y_validation, y_pred))" ] }, { "cell_type": "markdown", "id": "a384b2aa", "metadata": { "id": "7c1aed13" }, "source": [ "These are still pretty terrible results. Let's go further and try modifying other model parameters to fully optimize this model, at which point we may or may not keep the convolutional layer." ] }, { "cell_type": "markdown", "id": "58aa96e7", "metadata": { "id": "38621317" }, "source": [ "## 7. Optimize the Model" ] }, { "cell_type": "markdown", "id": "e00a41a0", "metadata": { "id": "6475171f" }, "source": [ "Now we can go further to optimize this model by adding layers, changing the number of nodes in each layer, increasing the number of training epochs, and modifying the window size." ] }, { "cell_type": "code", "execution_count": 12, "id": "0d2da317", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "c43d8153", "outputId": "de7cb21f-2cef-4e2e-d0db-490251875dbc" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"sequential_3\"\n", "_________________________________________________________________\n", " Layer (type) Output Shape Param # \n", "=================================================================\n", " conv1d_1 (Conv1D) (None, 1, 128) 3328 \n", " \n", " max_pooling1d_1 (MaxPooling (None, 1, 128) 0 \n", " 1D) \n", " \n", " lstm_2 (LSTM) (None, 64) 49408 \n", " \n", " dense_6 (Dense) (None, 32) 2080 \n", " \n", " dense_7 (Dense) (None, 16) 528 \n", " \n", " dense_8 (Dense) (None, 1) 17 \n", " \n", "=================================================================\n", "Total params: 55,361\n", "Trainable params: 55,361\n", "Non-trainable params: 0\n", "_________________________________________________________________\n", "Epoch 1/35\n", "28/28 [==============================] - 2s 3ms/step - loss: 0.0612\n", "Epoch 2/35\n", "28/28 [==============================] - 0s 4ms/step - loss: 0.0034\n", "Epoch 3/35\n", "28/28 [==============================] - 0s 4ms/step - loss: 0.0017\n", "Epoch 4/35\n", "28/28 [==============================] - 0s 4ms/step - loss: 0.0015\n", "Epoch 5/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 0.0014\n", "Epoch 6/35\n", "28/28 [==============================] - 0s 4ms/step - loss: 0.0012\n", "Epoch 7/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 9.5635e-04\n", "Epoch 8/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 7.9142e-04\n", "Epoch 9/35\n", "28/28 [==============================] - 0s 4ms/step - loss: 6.6951e-04\n", "Epoch 10/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 6.4106e-04\n", "Epoch 11/35\n", "28/28 [==============================] - 0s 4ms/step - loss: 5.3615e-04\n", "Epoch 12/35\n", "28/28 [==============================] - 0s 4ms/step - loss: 4.8200e-04\n", "Epoch 13/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 4.1122e-04\n", "Epoch 14/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 3.8065e-04\n", "Epoch 15/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 3.7033e-04\n", "Epoch 16/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 3.8822e-04\n", "Epoch 17/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 3.6025e-04\n", "Epoch 18/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 3.2716e-04\n", "Epoch 19/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 3.4214e-04\n", "Epoch 20/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 4.9653e-04\n", "Epoch 21/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 3.8275e-04\n", "Epoch 22/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 4.0230e-04\n", "Epoch 23/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 2.9043e-04\n", "Epoch 24/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 4.2905e-04\n", "Epoch 25/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 3.6350e-04\n", "Epoch 26/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 3.2698e-04\n", "Epoch 27/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 2.6212e-04\n", "Epoch 28/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 2.8240e-04\n", "Epoch 29/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 3.0767e-04\n", "Epoch 30/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 3.0365e-04\n", "Epoch 31/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 2.6077e-04\n", "Epoch 32/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 2.4851e-04\n", "Epoch 33/35\n", "28/28 [==============================] - 0s 4ms/step - loss: 3.0939e-04\n", "Epoch 34/35\n", "28/28 [==============================] - 0s 3ms/step - loss: 2.7302e-04\n", "Epoch 35/35\n", "28/28 [==============================] - 0s 4ms/step - loss: 3.2615e-04\n", "14/14 [==============================] - 0s 2ms/step\n", "\n", "R-Squared value on validation set: 0.9448038342648208\n" ] } ], "source": [ "# Set the desired window size\n", "window_size = 25\n", "\n", "# Construct train, validation, and test datasets\n", "X_train, y_train = create_dataset(train, window_size)\n", "X_validation, y_validation = create_dataset(validation, window_size)\n", "X_test, y_test = create_dataset(test, window_size)\n", "\n", "# Reshape into NumPy arrays\n", "X_train = np.reshape(X_train, (X_train.shape[0], 1, X_train.shape[1]))\n", "X_validation = np.reshape(X_validation, (X_validation.shape[0], 1, X_validation.shape[1]))\n", "X_test = np.reshape(X_test, (X_test.shape[0], 1, X_test.shape[1]))\n", "\n", "# Build the model\n", "model = tf.keras.Sequential()\n", "model.add(tf.keras.layers.Conv1D(128, 1, activation=\"relu\", input_shape=(1, window_size)))\n", "model.add(tf.keras.layers.MaxPooling1D(1))\n", "model.add(tf.keras.layers.LSTM(64, activation='relu'))\n", "model.add(tf.keras.layers.Dense(32, activation='relu'))\n", "model.add(tf.keras.layers.Dense(16, activation='relu'))\n", "model.add(tf.keras.layers.Dense(1))\n", "model.compile(optimizer='adam', loss='mean_squared_error')\n", "model.summary()\n", "\n", "# Train the model\n", "model.fit(X_train, y_train, epochs=35)\n", "\n", "# Make predictions and evaluate\n", "y_pred = model.predict(X_validation)\n", "print(f\"\\nR-Squared value on validation set: {r2_score(y_validation, y_pred)}\")" ] }, { "cell_type": "markdown", "id": "9d5e554f", "metadata": { "id": "3e6c545a" }, "source": [ "Overall, this is starting to look really good! We are achieving an R-Squared value between `0.90` and `0.95` on the validation set, which is impressive. As a final performance check, we should now compute and visualize the performance on the testing set." ] }, { "cell_type": "markdown", "id": "657d94b7", "metadata": { "id": "9802018a" }, "source": [ "## 8. Evaluate Model Performance" ] }, { "cell_type": "markdown", "id": "300e297d", "metadata": { "id": "a83ac44f" }, "source": [ "Finally! We've settled on a model that we can be satisfied with, so let's use this model to make predictions on the testing set and compute our final R-Squared. While we're at it, since we'll need them for plotting, let's make predictions on all three sets: training, validation, and testing." ] }, { "cell_type": "code", "execution_count": 13, "id": "90848e5b", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "dcdc7f91", "outputId": "59646323-152d-4165-b8d7-114aedfaa0db" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "28/28 [==============================] - 0s 2ms/step\n", "14/14 [==============================] - 0s 2ms/step\n", "14/14 [==============================] - 0s 2ms/step\n", "0.9959827878740425 --> Training Set\n", "0.9448038342648208 --> Validation Set\n", "0.9372843429943125 --> Test Set\n" ] } ], "source": [ "# Make predictions on all three sets\n", "train_pred = model.predict(X_train)\n", "validation_pred = model.predict(X_validation)\n", "test_pred = model.predict(X_test)\n", "\n", "print(r2_score(y_train, train_pred), \" --> Training Set\")\n", "print(r2_score(y_validation, validation_pred), \" --> Validation Set\")\n", "print(r2_score(y_test, test_pred), \" --> Test Set\")" ] }, { "cell_type": "markdown", "id": "11c5db85", "metadata": { "id": "c1562f53" }, "source": [ "Excellent! The R-Squared value from validation seems to have held up in testing, which is a great sign. Now it's time to visualize this performance. First, we'll need to undo the scaling and windowing preprocessing we've done." ] }, { "cell_type": "code", "execution_count": 14, "id": "e3210c8c", "metadata": { "id": "b97cd8f1" }, "outputs": [], "source": [ "# Un-scale the predictions\n", "train_pred = scaler.inverse_transform(train_pred)\n", "validation_pred = scaler.inverse_transform(validation_pred)\n", "test_pred = scaler.inverse_transform(test_pred)\n", "\n", "# Un-window the training predictions\n", "plot_train_pred = np.empty((len(stock_data), 1))\n", "plot_train_pred[:] = np.nan\n", "plot_train_pred[window_size:len(train_pred) + window_size, :] = train_pred\n", "\n", "# Un-window the validation predictions\n", "plot_validation_pred = np.empty((len(stock_data), 1))\n", "plot_validation_pred[:] = np.nan\n", "plot_validation_pred[len(train_pred) + (window_size * 2) + 1:len(train_pred) + len(validation_pred) + (window_size * 2) + 1, :] = validation_pred\n", "\n", "# Un-window the test predictions\n", "plot_test_pred = np.empty((len(stock_data), 1))\n", "plot_test_pred[:] = np.nan\n", "plot_test_pred[len(train_pred) + len(validation_pred) + (window_size * 3) + 2:len(stock_data) - 1, :] = test_pred" ] }, { "cell_type": "markdown", "id": "4778425a", "metadata": { "id": "0eaebce1" }, "source": [ "Finally, let's plot the un-scaled and un-windowed data on top of the original `stock_data` dataset." ] }, { "cell_type": "code", "execution_count": 15, "id": "0ed569bf", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 257 }, "id": "b3667f57", "outputId": "f98e4bca-5a8b-4bb9-85c3-4fea7a1235b3" }, "outputs": [ { "data": { "image/png": "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3cebb74JoNzLlStXqF69OhpN3puP//zzT5566ikMBgPu7u54eXmxcOFCYmJilD69e/emefPmDBw4kHLlyvHKK6+wevVqLBZLgT8XgeBRI7bdCwRlCJ1OpwQcV6tWjTfffJOff/6ZTz75hH379gHw1FNPAVC+fHk2b97MM888Q/v27dm5cydLliyhU6dO2QK0/f39adeuXbGtMyAggMjISOXY19cXs9lMRESETSB4amoqDx48wM/PDwB3d3f0ej3h4eHZxkxvS+9bWHJKBQDkGgieFxaLBW9vb1asWJHjeS8vL5vjq1evcunSJcCaU6q0yCom0wXI66+/Tr9+/XK8pm7dugUe/++//+bFF1+kRYsWfPXVV/j6+qLValm2bBk//vijzTp2797Njh07WL9+PZs2bWLVqlW0adOGLVu25PqzEghKEyGIBIIySuPGjYEMoSBJEgA3btwgICAAsO7OWr9+PW3btqVRo0Zcv36dxYsXl+i6ZFkmLCyMBg0aKG3peWSOHDlCp06dlPYjR45gsViU8yqVijp16nDkyJFs4x48eJDKlStns4YUFxUrVgRQhEtmLly4YHNcpUoVtm3bRvPmzfO1WFksFvr374+zszMjR45k6tSp9OzZk+7duxfLmrdt20ZcXJzN53L+/HnlfF54eXnh5OSE2WzOVxBXqVKFgwcPYjQa0Wq1Ofb55ZdfMBgMbN682WZn47Jly7L1ValUtG3blrZt2zJ79mymTp3Khx9+yI4dO2jXrp3y+ywQlBWEy0wgKGV27NiRoxVjw4YNQIY7p23btgBMmjQJk8mk9GvWrBkfffQRYWFhBAUFUbt27WJb271797K1LVy4kHv37tGxY0elrU2bNri7u7Nw4cJsfe3t7encubPS1rNnTw4fPmwjii5cuMBff/3Fyy+/XGxrz4qvry/169fnu+++s3HvbN26VXFLptOrVy/MZjOTJ0/ONo7JZCI6Olo5nj17Nvv27WPJkiVMnjyZp59+miFDhnD//v0ir7lTp06YzWbmz59v0z5nzhwkSco3qaZaraZHjx788ssvnD59Otv5zD/fHj16cP/+/WxzQYaVTa1WI0kSZrNZORcWFsavv/5q0z+z9TCddFGc7i51cHAAsPksBYJSpXRDmAQCQa1ateTAwEB59OjR8pIlS+T58+fLr732mqxWq+VKlSrZJGwcMWKE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uuWnoERHRzN58mQcHR1p2rQpSUnWfygjR45U5irI/D/++CMWi4VvvvkGg8GguOOGDBmS69yff/45jRs3trE01apVS3mv0+mUjQu5MXv2bNq2bcvHH38MQLVq1Th79iwzZsygf//+Sr9OnToxdOhQAMaOHcucOXPYsWMH1atX5/r16wQFBfHMM88gSRIVK1Ys8OcnEAjKDmdvx6IuYPzQN3tDAbA3JmGRVESlCSSzRUaWwZBmIVLZCwsR48aNY/fu3YSFhXHq1CnGjRvHzp076dOnD1euXGHy5MkcPXqUsLAwfv/9d/r27UuLFi2oW7cuAM899xw1a9bkjTfe4OTJk2zevJmPPvqIYcOGodfrARg8eDBXr15lzJgxnD9/nq+++orVq1czalTpBm89DjRu3NjmOD4+nvfff5/g4GBcXV1xdHTk3Llz+VqI0n9eAA4ODjg7OxMREZFrf3t7e0UMgVUAp/ePiYnh7t27NG3aVDmvVqtp1KhRnmvw9fVl//79nDp1infffReTyUS/fv3o2LEjFouFhIQErly5woABA3B0dFRen3766UO7aJ9++mkcHR1xc3Pj5MmTrFq1yiaeLfPnW5D50y11BoNBuS4/YZ9uISoK586do3nz5jZtzZs359KlS5jNGf8YM/+c012w6T+3/v37c+LECapXr86IESPYsmVLkdYkEAhKh/gUE/XuX1aOkxxz33wRGZ+KwZTCt1un8eWOORwNi+SHA9eITYtD0isWorIhiErVQhQREUHfvn2VHS1169Zl8+bNtG/fnhs3brBt2za++OILEhISCAgIoEePHnz00UfK9Wq1mj///JMhQ4YQEhKCg4MD/fr1s7EmBAYGsn79ekaNGsXcuXPx9/dn6dKldOjQoeRuTGtvtdSUBtriMz06ONhamt5//322bt3KzJkzqVq1KnZ2dvTs2dPGDZTjkrIEC0uShMViyaV3zv3lYnIF1q5dm9q1azN06FAGDx7Ms88+y65duxSL4tdff624ZtNRq9UPNdeqVauoWbMmHh4eOQZSZ/584+Pji31+IFe3cEmQ18+5YcOGhIaGsnHjRrZt20avXr1o164da9aseWTrEwgERSfZaCYo6qZybNbkvhkkIdVEsztncUlNxCU1EUdjEh//epq4ZGscUrqFSDIIQcQ333yT67mAgAB27dqV7xgVK1bM113SqlWr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HmRmZro6PCFEMSYJkRCixDCbzQQHB1OpUiWaNWvG+PHj+eWXX/j111+ZM2cOAB999BENGzbE29ub0NBQnnrqKRITEwFYv349gwcPJi4uzt7aNGHCBADS0tJ4/vnnqVSpEt7e3rRu3Zr169e75kKFEIVOEiIhRInWqVMnGjduzM8//wyATqfjk08+Yd++fXzzzTesW7eOF198EYC2bdvy8ccf4+fnx5kzZzhz5gzPP/88AE8//TRbtmxh/vz57N69mwcffJBu3brx33//uezahBCFR9YyE0KUCIMGDeLy5cssXrw417GHH36Y3bt3s3///lzHfvzxR4YPH8758+cBWx+i0aNHc/nyZXuZ6OhoqlevTnR0NBUrVrTv79y5M61ateLdd98t9OsRQjiXwdUBCCFEUVNKoWkaAGvWrGHixIn8+++/xMfHk5mZSWpqKsnJyXh5eeX5+j179mCxWKhdu7bD/rS0NMqVK1fk8Qship4kREKIEu/AgQOEhYVx7NgxevTowYgRI3jnnXcICAggMjKSoUOHkp6efs2EKDExEb1ez/bt29Hr9Q7HfHx8nHEJQogiJgmREKJEW7duHXv27GHMmDFs374dq9XK5MmT0elsXSgXLFjgUN5kMmGxWBz2NW3aFIvFwtmzZ7njjjucFrsQwnkkIRJClBhpaWnExMRgsViIjY1l5cqVTJw4kR49ejBgwAD27t1LRkYGn376KT179mTTpk188cUXDueoVq0aiYmJrF27lsaNG+Pl5UXt2rXp378/AwYMYPLkyTRt2pRz586xdu1aGjVqRPfu3V10xUKIwiKjzIQQJcbKlSsJCQmhWrVqdOvWjd9//51PPvmEX375Bb1eT+PGjfnoo494//33adCgAd999x0TJ050OEfbtm0ZPnw4Dz30EBUqVGDSpEkAzJ49mwEDBvDcc89Rp04devfuzV9//UWVKlVccalCiEImo8yEEEIIUepJC5EQQgghSj1JiIQQQghR6klCJIQQQohSTxIiIYQQQpR6khAJIYQQotSThEgIIYQQpZ4kREIIIYQo9SQhEkIIIUSpJwmREEIIIUo9SYiEEEIIUepJQiSEEEKIUk8SIiGEEEKUev8PwVcj5FPq6gwAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot the original data\n", "plt.plot(stock_data, label=\"Original Data\")\n", "\n", "# Plot the predictions\n", "plt.plot(plot_train_pred, label=\"Training Set Predictions\")\n", "plt.plot(plot_validation_pred, label=\"Validation Set Predictions\")\n", "plt.plot(plot_test_pred, label=\"Test Set Predictions\")\n", "\n", "# Add title, axis labels, and a legend\n", "plt.title('S&P 500 Index Forecast')\n", "plt.xlabel('Date')\n", "plt.xticks(rotation=45)\n", "plt.gca().xaxis.set_major_locator(mdates.YearLocator())\n", "plt.gcf().autofmt_xdate()\n", "plt.ylabel('Adjusted Close')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "ca33d209", "metadata": { "id": "32ce7009" }, "source": [ "The visualization looks as great as the R-Squared suggested it might. The real test, of course, would be to make some predictions for the future and do some trades (or pretend to do some trades — \"paper trading\" as we call it), then see if we can make any money. Investment advice is way outside the scope of this course, and the stock market has a way of being a \"harsh teacher,\" so please be cautious and remember that this project was only meant to be fun and educational! If successfully predicting the market trends was \"this easy,\" everyone would do it." ] } ], "metadata": { "colab": { "provenance": [] }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.6" } }, "nbformat": 4, "nbformat_minor": 5 }