Rnn

H
{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "persistent-assistant",
   "metadata": {},
   "source": [
    "# Recurrent Neural Network\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "revolutionary-houston",
   "metadata": {},
   "source": [
    "## Resources\n",
    "\n",
    "- RNN-LSTM : https://colah.github.io/posts/2015-08-Understanding-LSTMs/\n",
    "- LSTM : https://en.wikipedia.org/wiki/Long_short-term_memory"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "champion-dimension",
   "metadata": {},
   "source": [
    "## Part 1 - Data Preprocessing\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "familiar-vertex",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Importing the libraries\n",
    "\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "increasing-venue",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Importing the training set\n",
    "\n",
    "dataset_train = pd.read_csv('Google_train.csv')\n",
    "training_set = dataset_train.iloc[:,0:].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "assured-brook",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1.51532028e+02, 1.54919327e+02, 1.50739990e+02, 1.53250580e+02,\n",
       "        5.79510000e+06],\n",
       "       [1.53723801e+02, 1.60309128e+02, 1.52179596e+02, 1.60060059e+02,\n",
       "        7.24800000e+06],\n",
       "       [1.59900650e+02, 1.65001541e+02, 1.56911850e+02, 1.63412491e+02,\n",
       "        9.81450000e+06],\n",
       "       ...,\n",
       "       [1.14398999e+03, 1.14733997e+03, 1.13878003e+03, 1.14490002e+03,\n",
       "        8.64000000e+05],\n",
       "       [1.14685999e+03, 1.15081995e+03, 1.13940002e+03, 1.15033997e+03,\n",
       "        9.03800000e+05],\n",
       "       [1.14600000e+03, 1.15857996e+03, 1.14500000e+03, 1.15357996e+03,\n",
       "        1.23880000e+06]])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "training_set"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "tutorial-punishment",
   "metadata": {},
   "source": [
    "### Feature Scaling\n",
    "\n",
    "- Feature Scaling in done so that all values are in same range, columns with higher values than other features like volumne may be given higher importance in neural network creating a biased network. \n",
    "- Hence it is important to bring all feautres to same scale"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "dated-testament",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Feature Scaling\n",
    "\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "sc = MinMaxScaler(feature_range = (0, 1))\n",
    "training_set_scaled = sc.fit_transform(training_set)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "going-tackle",
   "metadata": {},
   "source": [
    "### Creating training set\n",
    "\n",
    "- Training set will contain 5 inputs and 5 outputs, not predicting volume.\n",
    "- RNN requires stack data i.e memory of data needs to passed. For training ith value in RNN with n time steps, all previous all upto i-nth value needs to passed."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "sharing-brunei",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Creating a data structure with 120 Daysteps and 5 output\n",
    "\n",
    "X_train = []\n",
    "y_train = []\n",
    "for i in range(120, 2425):\n",
    "    X_train.append(training_set_scaled[i-120:i])\n",
    "    y_train.append(training_set_scaled[i])\n",
    "X_train, y_train = np.array(X_train), np.array(y_train)\n",
    "\n",
    "# Reshaping\n",
    "X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], 5))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "specified-sculpture",
   "metadata": {},
   "source": [
    "## Part 2 - Building the RNN\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "involved-strike",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Importing the Keras libraries and packages\n",
    "\n",
    "from keras.models import Sequential\n",
    "from keras.layers import Dense\n",
    "from keras.layers import LSTM\n",
    "from keras.layers import Dropout"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "dried-mustang",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Initialising the RNN\n",
    "regressor = Sequential()\n",
    "\n",
    "# Adding the first LSTM layer and some Dropout regularisation\n",
    "regressor.add(LSTM(units = 75, return_sequences = True, input_shape = (X_train.shape[1], 5)))\n",
    "regressor.add(Dropout(0.2))\n",
    "\n",
    "# Adding a second LSTM layer and some Dropout regularisation\n",
    "regressor.add(LSTM(units = 75, return_sequences = True))\n",
    "regressor.add(Dropout(0.2))\n",
    "\n",
    "# Adding a third LSTM layer and some Dropout regularisation\n",
    "regressor.add(LSTM(units = 75, return_sequences = True))\n",
    "regressor.add(Dropout(0.2))\n",
    "\n",
    "# Adding a fourth LSTM layer and some Dropout regularisation\n",
    "regressor.add(LSTM(units = 75))\n",
    "regressor.add(Dropout(0.2))\n",
    "\n",
    "# Adding the output layer\n",
    "regressor.add(Dense(units = 5))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "athletic-spouse",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compiling the RNN\n",
    "\n",
    "regressor.compile(optimizer = 'adam', loss = 'mean_squared_error')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "twenty-administrator",
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/100\n",
      "73/73 [==============================] - 14s 127ms/step - loss: 0.0360\n",
      "Epoch 2/100\n",
      "73/73 [==============================] - 9s 127ms/step - loss: 0.0054\n",
      "Epoch 3/100\n",
      "73/73 [==============================] - 10s 133ms/step - loss: 0.0062\n",
      "Epoch 4/100\n",
      "73/73 [==============================] - 10s 131ms/step - loss: 0.0041\n",
      "Epoch 5/100\n",
      "73/73 [==============================] - 10s 136ms/step - loss: 0.0037\n",
      "Epoch 6/100\n",
      "73/73 [==============================] - 10s 134ms/step - loss: 0.0031\n",
      "Epoch 7/100\n",
      "73/73 [==============================] - 10s 144ms/step - loss: 0.0028\n",
      "Epoch 8/100\n",
      "73/73 [==============================] - 10s 139ms/step - loss: 0.0030\n",
      "Epoch 9/100\n",
      "73/73 [==============================] - 10s 139ms/step - loss: 0.0034\n",
      "Epoch 10/100\n",
      "73/73 [==============================] - 10s 135ms/step - loss: 0.0031\n",
      "Epoch 11/100\n",
      "73/73 [==============================] - 10s 135ms/step - loss: 0.0025\n",
      "Epoch 12/100\n",
      "73/73 [==============================] - 10s 136ms/step - loss: 0.0025\n",
      "Epoch 13/100\n",
      "73/73 [==============================] - 10s 136ms/step - loss: 0.0033\n",
      "Epoch 14/100\n",
      "73/73 [==============================] - 10s 135ms/step - loss: 0.0021\n",
      "Epoch 15/100\n",
      "73/73 [==============================] - 10s 142ms/step - loss: 0.0025\n",
      "Epoch 16/100\n",
      "73/73 [==============================] - 10s 137ms/step - loss: 0.0021\n",
      "Epoch 17/100\n",
      "73/73 [==============================] - 10s 138ms/step - loss: 0.0022\n",
      "Epoch 18/100\n",
      "73/73 [==============================] - 10s 138ms/step - loss: 0.0021\n",
      "Epoch 19/100\n",
      "73/73 [==============================] - 10s 137ms/step - loss: 0.0023\n",
      "Epoch 20/100\n",
      "73/73 [==============================] - 10s 137ms/step - loss: 0.0023\n",
      "Epoch 21/100\n",
      "73/73 [==============================] - 10s 138ms/step - loss: 0.0023\n",
      "Epoch 22/100\n",
      "73/73 [==============================] - 10s 137ms/step - loss: 0.0029\n",
      "Epoch 23/100\n",
      "73/73 [==============================] - 10s 138ms/step - loss: 0.0018\n",
      "Epoch 24/100\n",
      "73/73 [==============================] - 11s 151ms/step - loss: 0.0019\n",
      "Epoch 25/100\n",
      "73/73 [==============================] - 11s 154ms/step - loss: 0.0022\n",
      "Epoch 26/100\n",
      "73/73 [==============================] - 11s 149ms/step - loss: 0.0019\n",
      "Epoch 27/100\n",
      "73/73 [==============================] - 12s 158ms/step - loss: 0.0017\n",
      "Epoch 28/100\n",
      "73/73 [==============================] - 12s 159ms/step - loss: 0.0029\n",
      "Epoch 29/100\n",
      "73/73 [==============================] - 11s 150ms/step - loss: 0.0017\n",
      "Epoch 30/100\n",
      "73/73 [==============================] - 10s 142ms/step - loss: 0.0021\n",
      "Epoch 31/100\n",
      "73/73 [==============================] - 10s 142ms/step - loss: 0.0016\n",
      "Epoch 32/100\n",
      "73/73 [==============================] - 11s 144ms/step - loss: 0.0019\n",
      "Epoch 33/100\n",
      "73/73 [==============================] - 11s 149ms/step - loss: 0.0020\n",
      "Epoch 34/100\n",
      "73/73 [==============================] - 11s 145ms/step - loss: 0.0014\n",
      "Epoch 35/100\n",
      "73/73 [==============================] - 11s 146ms/step - loss: 0.0018\n",
      "Epoch 36/100\n",
      "73/73 [==============================] - 11s 150ms/step - loss: 0.0018\n",
      "Epoch 37/100\n",
      "73/73 [==============================] - 11s 155ms/step - loss: 0.0014\n",
      "Epoch 38/100\n",
      "73/73 [==============================] - 12s 162ms/step - loss: 0.0018\n",
      "Epoch 39/100\n",
      "73/73 [==============================] - 12s 159ms/step - loss: 0.0017\n",
      "Epoch 40/100\n",
      "73/73 [==============================] - 11s 152ms/step - loss: 0.0017\n",
      "Epoch 41/100\n",
      "73/73 [==============================] - 11s 154ms/step - loss: 0.0017\n",
      "Epoch 42/100\n",
      "73/73 [==============================] - 12s 160ms/step - loss: 0.0021\n",
      "Epoch 43/100\n",
      "73/73 [==============================] - 12s 165ms/step - loss: 0.0019\n",
      "Epoch 44/100\n",
      "73/73 [==============================] - 13s 175ms/step - loss: 0.0014\n",
      "Epoch 45/100\n",
      "73/73 [==============================] - 13s 173ms/step - loss: 0.0017\n",
      "Epoch 46/100\n",
      "73/73 [==============================] - 13s 174ms/step - loss: 0.0015\n",
      "Epoch 47/100\n",
      "73/73 [==============================] - 12s 161ms/step - loss: 0.0017\n",
      "Epoch 48/100\n",
      "73/73 [==============================] - 12s 158ms/step - loss: 0.0018\n",
      "Epoch 49/100\n",
      "73/73 [==============================] - 12s 163ms/step - loss: 0.0017\n",
      "Epoch 50/100\n",
      "73/73 [==============================] - 13s 171ms/step - loss: 0.0016\n",
      "Epoch 51/100\n",
      "73/73 [==============================] - 13s 174ms/step - loss: 0.0016\n",
      "Epoch 52/100\n",
      "73/73 [==============================] - 12s 165ms/step - loss: 0.0014\n",
      "Epoch 53/100\n",
      "73/73 [==============================] - 13s 172ms/step - loss: 0.0015\n",
      "Epoch 54/100\n",
      "73/73 [==============================] - 13s 171ms/step - loss: 0.0014\n",
      "Epoch 55/100\n",
      "73/73 [==============================] - 12s 170ms/step - loss: 0.0018\n",
      "Epoch 56/100\n",
      "73/73 [==============================] - 12s 163ms/step - loss: 0.0014\n",
      "Epoch 57/100\n",
      "73/73 [==============================] - 12s 165ms/step - loss: 0.0015\n",
      "Epoch 58/100\n",
      "73/73 [==============================] - 13s 178ms/step - loss: 0.0017\n",
      "Epoch 59/100\n",
      "73/73 [==============================] - 14s 196ms/step - loss: 0.0017\n",
      "Epoch 60/100\n",
      "73/73 [==============================] - 15s 199ms/step - loss: 0.0013\n",
      "Epoch 61/100\n",
      "73/73 [==============================] - 14s 189ms/step - loss: 0.0016\n",
      "Epoch 62/100\n",
      "73/73 [==============================] - 13s 179ms/step - loss: 0.0013\n",
      "Epoch 63/100\n",
      "73/73 [==============================] - 13s 179ms/step - loss: 0.0014\n",
      "Epoch 64/100\n",
      "73/73 [==============================] - 14s 192ms/step - loss: 0.0014\n",
      "Epoch 65/100\n",
      "73/73 [==============================] - 14s 186ms/step - loss: 0.0014\n",
      "Epoch 66/100\n",
      "73/73 [==============================] - 11s 156ms/step - loss: 0.0014\n",
      "Epoch 67/100\n",
      "73/73 [==============================] - 11s 149ms/step - loss: 0.0011\n",
      "Epoch 68/100\n",
      "73/73 [==============================] - 11s 146ms/step - loss: 0.0015\n",
      "Epoch 69/100\n",
      "73/73 [==============================] - 11s 148ms/step - loss: 0.0012\n",
      "Epoch 70/100\n",
      "73/73 [==============================] - 11s 150ms/step - loss: 0.0014\n",
      "Epoch 71/100\n",
      "73/73 [==============================] - 11s 151ms/step - loss: 0.0018\n",
      "Epoch 72/100\n",
      "73/73 [==============================] - 11s 152ms/step - loss: 0.0015\n",
      "Epoch 73/100\n",
      "73/73 [==============================] - 12s 158ms/step - loss: 0.0012\n",
      "Epoch 74/100\n",
      "73/73 [==============================] - 14s 197ms/step - loss: 0.0012\n",
      "Epoch 75/100\n",
      "73/73 [==============================] - 15s 204ms/step - loss: 0.0011\n",
      "Epoch 76/100\n",
      "73/73 [==============================] - 14s 198ms/step - loss: 0.0015\n",
      "Epoch 77/100\n",
      "73/73 [==============================] - 13s 179ms/step - loss: 0.0013\n",
      "Epoch 78/100\n",
      "73/73 [==============================] - 12s 171ms/step - loss: 0.0013\n",
      "Epoch 79/100\n",
      "73/73 [==============================] - 13s 181ms/step - loss: 0.0015\n",
      "Epoch 80/100\n",
      "73/73 [==============================] - 14s 187ms/step - loss: 0.0014\n",
      "Epoch 81/100\n",
      "73/73 [==============================] - 14s 197ms/step - loss: 0.0013\n",
      "Epoch 82/100\n",
      "73/73 [==============================] - 16s 213ms/step - loss: 0.0012\n",
      "Epoch 83/100\n",
      "73/73 [==============================] - 16s 219ms/step - loss: 0.0012\n",
      "Epoch 84/100\n",
      "73/73 [==============================] - 16s 218ms/step - loss: 0.0012\n",
      "Epoch 85/100\n",
      "73/73 [==============================] - 16s 213ms/step - loss: 0.0013\n",
      "Epoch 86/100\n",
      "73/73 [==============================] - 12s 163ms/step - loss: 0.0015\n",
      "Epoch 87/100\n",
      "73/73 [==============================] - 11s 156ms/step - loss: 0.0012\n",
      "Epoch 88/100\n",
      "73/73 [==============================] - 12s 164ms/step - loss: 0.0013\n",
      "Epoch 89/100\n",
      "73/73 [==============================] - 13s 174ms/step - loss: 0.0017\n",
      "Epoch 90/100\n",
      "73/73 [==============================] - 13s 177ms/step - loss: 0.0012\n",
      "Epoch 91/100\n",
      "73/73 [==============================] - 12s 168ms/step - loss: 0.0012\n",
      "Epoch 92/100\n",
      "73/73 [==============================] - 12s 166ms/step - loss: 0.0012\n",
      "Epoch 93/100\n",
      "73/73 [==============================] - 12s 170ms/step - loss: 0.0014\n",
      "Epoch 94/100\n",
      "73/73 [==============================] - 12s 170ms/step - loss: 0.0010\n",
      "Epoch 95/100\n",
      "73/73 [==============================] - 13s 179ms/step - loss: 0.0014\n",
      "Epoch 96/100\n",
      "73/73 [==============================] - 13s 178ms/step - loss: 0.0012\n",
      "Epoch 97/100\n",
      "73/73 [==============================] - 12s 163ms/step - loss: 0.0014\n",
      "Epoch 98/100\n",
      "73/73 [==============================] - 12s 163ms/step - loss: 0.0013\n",
      "Epoch 99/100\n",
      "73/73 [==============================] - 12s 163ms/step - loss: 0.0013\n",
      "Epoch 100/100\n",
      "73/73 [==============================] - 12s 165ms/step - loss: 0.0012\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<tensorflow.python.keras.callbacks.History at 0x7fd80e4dd490>"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Fitting the RNN to the Training set\n",
    "regressor.fit(X_train, y_train, epochs = 100, batch_size = 32)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "asian-greensboro",
   "metadata": {},
   "source": [
    "## Part 3 - Making the predictions and visualising the results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "julian-firmware",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Getting the real stock price from the test set\n",
    "\n",
    "dataset_test = pd.read_csv('Google_test.csv')\n",
    "real_stock_price = dataset_test.iloc[:, 0:].values"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "coral-halifax",
   "metadata": {},
   "source": [
    "### Creating test dataset\n",
    "\n",
    "- Since RNN requries stack data i.e memory data it is important that starting values of test data also have previous data, which is present in training data.\n",
    "- A cumulative dataset is creating using training and test data, and using this dataset we are able to get memory for initial datapoints that are present in training set"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "alive-dairy",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Creating dataset for prediction\n",
    "\n",
    "dataset_total = pd.concat((dataset_train, dataset_test), axis = 0, sort = False)\n",
    "inputs = dataset_total[len(dataset_total) - len(dataset_test) - 120:].values\n",
    "inputs = sc.transform(inputs)\n",
    "X_test = []\n",
    "for i in range(120, 160):\n",
    "    X_test.append(inputs[i-120:i])\n",
    "X_test = np.array(X_test)\n",
    "X_test = np.reshape(X_test, (X_test.shape[0], X_test.shape[1], 5))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "exposed-tonight",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Making prediction\n",
    "\n",
    "predicted_stock_price = regressor.predict(X_test)\n",
    "predicted_stock_price = sc.inverse_transform(predicted_stock_price)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "unexpected-there",
   "metadata": {},
   "source": [
    "## Visualizing predictions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "smooth-civilization",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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7VpQzfPbxMjR36VLFzZuNKW7V65cyZlnnkm7du049dRTWbZsGQD/+9//6NSpE23atKF379789VfwctIPP/wwt912GyeffHJu26BBg+je3VRWXbBgAZ07d6Zly5YMHjyYv//+O2j7r7/+SsuWLenSpQs333wzzZs3L3DOvXv3cskll9ChQwfatGnDJ598UmCfzZs3U7duXUqUMI+PevXqUbVqVW699Vb2799P69atSXd8YU888QTNmzenefPmPPXUU7l9TJw4kZYtW9KqVSv+9a9/FTjHHXfcwciRI8nJySlwTZ599lnKly8PQJ8+fejatSuZzn2sWLEi//73v2nbti2nn346nudAoHsycuRIrr32Wrp27UrDhg1DjmwATj31VFasWMHMmTPp1asXF154IS1atMg9v4dHHnmEFi1a0KpVK2699dagchQJVDVuC5AGLPbTPg6YTF6K9MeA852/7wZucv7uAHztddypwP/cnLtdu3Zqcdi5UxVUS5Uyn7Vrq2ZkJFqqqPn999/zVq67TrVHj8BLmTLmu/suZcoEPua664Kev0KFCqqqeuTIET3vvPP0yy+/VFXV0047TZcvX66qqj/99JP26tVLVVV37typOTk5qqr6yiuv6I033qiqqq+//rpeddVVBfpv06aNLliwIOD5W7RooTNnzlRV1TvuuEOvc+QN1N6sWTP94YcfVFX1lltu0WbNmqmq6owZM3TAgAGqqjp27Fh96623VFX177//1saNG+uePXvynXf9+vWampqqrVq10htvvFHnzZtX4Jqoqs6ZM0ebN2+ue/bs0aysLG3atKnOmzdPFy9erE2aNNFt27apquqOHTtUVXXEiBE6adIkvfnmm3X06NG518rD7t27tWrVqgWuw1NPPaU33HCDqqoCmuH8tu+5557c6xronowYMULPO+88zc7O1iVLlugJJ5zg91p7vtfhw4d10KBB+sILL+iMGTO0fPnyumrVqgL7ffHFF9qlSxfdu3dvvu8YSI5Eke9/yAGYo36eqYUeDSUiI4CBwOmOYGDqJp8nIo8AxwA5InIA+BAvU5Xz96ZCFLd48N135vP992HIEBgzpshHQYXNwQLlvYO3u8DzFr1mzRratWvHGWecwZ49e/jxxx8ZOnSo1ynMOTZs2MCwYcPYvHkzhw4dch3fDrBjxw5OP/109u3bx+jRo7ns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UwYMGMBWr3vg/Qb+1Vdf0bZtW1q1asXpp5/OmjVreOmll3jyySdp3bo1s2bNYtu2bZx77rl06NCBDh068MMPPwAm+WCfPn1o06YNl19+ud+8RytXruSXX37h/vvvz005XrNmTW655ZZcOT3pzFu0aJE7IzpQe05ODldeeSXNmjVj4MCB9O/f32/a76lTp9KlSxfatm3L0KFD/Ya8JiId+ebNm6lRo0ZuvqgaNWpw7LHH8swzz7Bp0yZ69epFL+cF7J133qFFixY0b94893r5u2e+vPLKK/Tr1y83ZYk/Tj75ZEqWLMn27dvp2bMnt912Gz169ODpp5/ON0pZsWIFvXv3plWrVrRt25aVK1cC8Oijj+b+5u6KVR44f6loi8Ny1Kcob9RI9ayzgu/z668mTXcRTVfunV45ARnKXaWtfvnll/W+++5TVdUDBw5ou3btdNWqVfrhhx9q79699ciRI7px40atUqWKTpo0SVVVe/Toob/++qtu3bpV69Wrl9uXJ831XXfdpY8++miuHMOHD9dZs2apquratWv1pJNOUlXVa665Ru+55x5VVf3ss88UyE0L7uGTTz7Rc845J+B3/OCDD3Ll3LJli9avX183bdoUsH3SpEnar18/zc7O1s2bN+sxxxxT4Htt27ZNTz311NzU5w899FCunB4SlY48KytLW7VqpY0bN9YxY8bkpnpXVU1NTc29fhs3btT69evr1q1b9fDhw9qrVy+dPHlyyHv27LPP6llnnaUHDhwocG7v+/rTTz9p3bp1NScnR3v06KFjxozxu1/Hjh31o48+UlXV/fv36969e3XKlCl62WWXaU5OjmZnZ+uAAQP022+/9Xt/kzpFuaUQ2LABVqyAK68Mvl/btlC9uvFbFPOU5XHIUO4qbfXUqVNZtGhR7lvs7t27+fPPP/nuu+8YPnw4KSkpHHvssZx22mkF+v/pp5/o3r17bl++WVg9fP311/l8HP/88w9ZWVl89913fPTRRwAMGDCAqlWrhvxO48ePZ9KkSWzdupVNmzbx/fff58pZu3ZtevTowa+//hq0fejQoZQoUYI6derkvoX7fq/ff/+dbt26AXDo0CG6dOkSUjaIfzryihUrMnfuXGbNmsWMGTMYNmwYDz30ECNHjsy336+//krPnj2pWbMmAOnp6Xz33XekpKQEvGdvvfUW9erV4+OPP6ZU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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(real_stock_price[1:,0], color = 'red', marker = 'o', label = 'Real Google Stock Open Price')\n",
    "plt.plot(predicted_stock_price[:,0], color = 'blue', marker = 'o',label = 'Predicted Google Open Stock Price')\n",
    "plt.title('Google Stock Price Prediction')\n",
    "plt.xlabel('DAY')\n",
    "plt.ylabel('Google Stock Price')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "southeast-three",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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yPZA16Cq04AxTlkO8CFmSq67fLswTvezReRBLzJFymWY0c/vmHv0f85552Omvr6A8UOsxDG/RYqqfgA8BrwjInsw9/BsZ992jOP/UYy5shnwnY92cjD35hyMyehP4HRn9zTndYeILPRyuM/fjyU+iKpNfmSJL86T4y6gmaquibM4FovFC3ZkYYkLInKOiNQQkZqYqbOLMTOMLBZLAmKVhSVenItxYm7EmDIuVjvMtVgSFmuGslgsFktA7MjCYrFYLAFJ2kV5hx9+uDZp0iTeYlgsFku5YsGCBdtVtaFnedIqiyZNmjB//vx4i2GxWCzlChFZ563cmqEsFovFEhCrLCwWi8USEKssLBaLxRKQpPVZWA4t8vLyyM7O5sCBA/EWxWIpF1SrVo2UlBQqV64cVH2rLCxJQXZ2NrVr16ZJkybuYbctFosXVJUdO3aQnZ1N06ZNgzrGmqGShcmToUkTqFDBvE6eHG+JypQDBw7QoEEDqygsliAQERo0aBDSSNyOLJKByZNh+HDIzTWf160znwEGD46fXGWMVRQWS/CE+n+xI4tkYOTIYkXhIjfXlFssFksUsMoiGVi/PrRyS0yoWLEirVu3pmXLlpxzzjns2rUrrHYmTZrEjTfe6HXfF198wSmnnMJJJ51E69atGThwIOuj/D3PmjWLvn37Bl2/sLCQm2++mZYtW9KqVSvat2/PmjUm0vzDDz8cthxDhw7l3XffDblOrVomu+rGjRu58MILA57HVd8fkyZNomHDhrRu3ZrmzZvzyiuveK338ccf8+ijUc+DlRBYZZEMpKaGVm6JiY+nevXqLFq0iCVLllC/fn1efPHFiNt0Z8mSJdx000288cYb/P777yxatIjBgwezdu3aqJ4nVKZOncrGjRv57bffWLx4MR988AF169YFIlMWkXL00UcHVDahMHDgQBYtWsSsWbO455572LKlZIbX/Px8+vXrx1133RW1cyYSVlkkA2PGQPXqJctq1DDlltK4fDzr1oFqsY8nipMCOnXqxF9/mVTeq1atolevXrRr144uXbrw+++/A/DJJ5/QoUMH2rRpQ48ePUp1Pp489thj3HPPPZx88slFZf369aNrV5NpddGiRXTs2JH09HT69+/P33//7bf8559/Jj09nU6dOnH77bfTsmXLUufct28fV155Je3bt6dNmzZ89NFHpeps2rSJRo0aUaGC6U5SUlKoV68ed911F/v376d169YMdnxnTz31FC1btqRly5Y888wzRW28+eabpKenk5GRwWWXXVbqHKNGjWLo0KEUFhb6vUfurF27tuiacnNzueiii0hPT2fgwIF06NChRDigkSNHkpGRQceOHQN+D0cccQTHHXcc69atY+jQoYwYMYLTTz+dO++8s8SocMuWLfTv35+MjAwyMjL4/nuTYDIrK4tTTjmF1q1bc80111BQUBD0NcUVVU3KrV27dnpIMXasqun6VOvXV83KirdEZcqyZcuKP9xyi2q3br63qlWL75X7VrWq72NuuSWgDDVr1lRV1fz8fL3wwgt1+vTpqqp6xhln6IoVK1RV9YcfftDTTz9dVVV37typhYWFqqr6yiuv6IgRI1RV9fXXX9cbbrihVPtt2rTRRYsW+Tx/q1atdNasWaqqOmrUKL3FkdlXeYsWLfS7775TVdU777xTW7RooaqqM2fO1D59+qiq6t13361vvfWWqqr+/fff2qxZM927d2+J827YsEHT0tI0IyNDR4wYoQsXLix1T1RV58+fry1bttS9e/dqTk6ONm/eXBcuXKhLlizRE044Qbdt26aqqjt27FBV1SFDhui0adP09ttv1+HDhxfdK3eGDBmiTZo00YyMjKLNdc41a9YUXdMTTzyhw4cPV1XVxYsXa8WKFfXnn39WVVVAP/74Y1VVvf322/XBBx8sdR7372TVqlXasGFD3bFjhw4ZMkT79Omj+fn5pepddNFF+vTTT6uq+U3s2rVLly1bpn379tWDBw+qqup1112nb7zxRqnzlRUl/jcOwHz10qfa2VDJQo8exe+7dj2kZkGFzD+lUn37Lw8S11P02rVradeuHWeeeSZ79+7l+++/Z8CAAW6nMefJzs5m4MCBbNq0iYMHDwY93x1gx44ddO/endzcXIYPH87VV1/Nrl276NatGwBDhgxhwIAB7N6922v5rl27yMnJ4V//+hcAgwYN4tNPPy11nq+++oqPP/6YsWPHAmaK8vr160uMblJSUvjjjz/49ttv+fbbb+nevTvTpk2je/fuJdqaO3cu/fv3p2bNmgCcf/75zJkzBxHhwgsv5PDDDwegfv3iNOcPPvggHTp0YMKECT7vxRNPPFHCN+HNBzF37lxuueUWAFq2bEl6enrRvipVqhT5aNq1a8eMGTO8nmfq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SxdWrlzJrFmzOP300xk0aBCtWrWioKCA22+/nfbt25Oens7LL78MmE7gxhtvpHnz5vTp06coHASUfAL/4osvaNu2LRkZGXTv3p21a9cyfvx4nn76aVq3bs2cOXPYtm0bF1xwAe3bt6d9+/Z89913gAk+2LNnT9q0acM111zjNV7SqlWr+Omnn3jooYeKQo43bNiQO++8s0hOVzjzVq1aMXXqVL/lhYWFXH/99bRo0YK+ffvSu3dvr536V199RadOnWjbti0DBgwIOd5VNMORb9q0iZSU4kmYrqCDd911F3PmzKF169Y8/fTTHDhwgCuuuIJWrVrRpk0bZs6cCZiHgttuu41WrVqRnp7O888/X6L9/fv306tXr4Cjta5du7Jy5UrWrl3LySefzPXXX0/btm3ZsGFDiVGKt/Duvn4DEeFtpV4ybIfcCu7TTlPt0qVk2e7dqpUqqd59d3xkKkPcV6LGKUJ5UWjsvLw87devn7700ks6c+ZMrVGjhq5evVpVVV9++eWiENgHDhzQdu3a6erVq/W9997THj16aH5+vv71119ap04dnTZtmqqqduvWTX/++WfdunWrpqSkFLXlCuV9//336xNPPFEkxyWXXKJz5sxRVdV169bpSSedpKqqN910kz7wwAOqqvrpp58qUBQW3MVHH32k5513ns9rfPfdd4vk3Lx5szZu3Fg3btzos3zatGl69tlna0FBgW7atEnr1q1b6rq2bdumXbp0KQp9/uijjxbJ6U5ZhSP/4osvtE6dOnraaafpQw89pH/99Zeqlgzdrqo6duxYHTp0qKqqLl++XBs3bqz79+/Xl156Sc8//3zNy8sr8T2lpaXpmjVrtHv37j7DkqelpRV9JzfccIPecccdumbNGhURnTdvXql6vsK7+/oNeFJeVnBboklubunV2ocdBv/6l3FyxzFjWaIRowjlRSHKwYwsrrrqKr7//ntOOeWUovDjX331Fb/99lvR0/Xu3bv5888/mT17NpdccgkVK1bk6KOP5owzzijV/g8//EDXrl2L2vIVhfXrr78u4ePYs2cPOTk5zJ49m/fffx+APn36UK9evYDXNGbMGKZNm8bWrVvZuHEjc+fOLZLzyCOPpFu3bvz8889+ywcMGECFChU46qijOP30071e17Jly+jcuTMABw8epFOnTl7lKYtw5GeddRarV6/miy++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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(real_stock_price[1:,1], color = 'red', marker = 'o', label = 'Real Google Stock High Price')\n",
    "plt.plot(predicted_stock_price[:,1], color = 'blue', marker = 'o',label = 'Predicted Google High Stock Price')\n",
    "plt.title('Google Stock Price Prediction')\n",
    "plt.xlabel('DAY')\n",
    "plt.ylabel('Google Stock Price')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "proper-rachel",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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31hz5sxh4MCBVKpUCYCLLrqI7777DhHhkksuoVatWgDUqFEj95iHH36YLl26MH78+LCvzZw5c7jlllsAOPXUU0lNTWXVqlX06NGDF154gcaNG3PeeefxxRdfkJWVRWZmJs2aNQs5bp8+fShVqhRpaWk88sgj7Nmzh9TUVLp27Vqg79dff+33M3355Zf88ssvuf3++usv9u3bR5UqVcL+fIWFVRbFhYwME920YYOZcjp8GCZP9h8aW64cTJsG3brBBRfAvHnQtGmhi1xoeE1v+KVRIzP15EtqKnzzTdSn9fgs9u7dy4ABAxg3bhxDhw6lWrVqLF68uED/W265hTvuuIO//e1vfPPNNzz44INBx2/ZsiU//fQTbdq0oWbNmixevJinnnqK/fv3RyyrhlkETVX54IMPQt5My5UrxznnnMM555xDnTp1mDZtWgFlEeicqhowrLNTp04sWrSI3bt351MioWQONNbChQs56aSTOPPMM9m5cyevvfYaHTp0CGvcWbNm5d78Afbs2ZOr+PzJ4O8z5eTk8MMPP1ChQoWwzplIrM+iOOA75+7PR+FLzZowY4bp36OHsTBKyIK9AowdCxUr5m+rWNE1n07VqlV54YUXeOqpp6hQoQKNGzfmvffeA8xNZMmSJQDs3buXevXqAfD222+HHPeuu+5i7Nix/Prrr7ltWU6IdNWqValevTrfffcdAJMmTaJXr14B26tXr06VKlWYN28eAFOnTvV7zv79+/Piiy/m3oB//vnnAn1++ukntmzZApib4dKlS0lNTQWgTJkyHD16FDBz/dOmTSMrK4sDBw7w0Ucf0aNHD/r27ct//vMfdu3aBcDu3btzxz777LO55557OO+889i3b1/Ia+Q5T4bzm161ahUbNmygWbNmlC1blgYNGvCf//yHrl270qNHD5566il69OgR1riREOgznXXWWbz00ku5/fw9RCQN/uamisNWonwWqan+59xTU0Mfe//9BY+rWNH4OIow/uZig+Lt00lNdeXze8/Pq6oOGDBAJ06cqL///rv2799f09LStHnz5vrQQw+pquq0adO0cePG2r17d/2///s/7dWrl6oG9lmoqn766afasWNHbdasmZ522ml6+eWX68qVK1VV9eeff9YuXbpo69at9YILLtDdu3cHbZ83b562bt1au3btqvfcc4+edtppqprfZ5GV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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(real_stock_price[1:,2], color = 'red',  marker = 'o',label = 'Real Google Stock Low  Price')\n",
    "plt.plot(predicted_stock_price[:,2], color = 'blue', marker = 'o',label = 'Predicted Google Stock Low Price')\n",
    "plt.title('Google  Stock Price Prediction')\n",
    "plt.xlabel('DAY')\n",
    "plt.ylabel('Google Stock Price')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "falling-relay",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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R7KyshgyZAg7d+702/7jjz+SlZVFp06duPXWW2nRokWJc+7bt48rrriCDh060KZNGz766KMS+7z55pt06tSJc889t7CtR48eJfrbsWMHgwcPJisri44dO/Lrr78C8M0339C6dWtat25NmzZt2LNnDwCPPPIIHTp0ICsri3vuucfvtQHo2rUrq1atYt26dTRr1oxrr72Wtm3bsnHjRjIzM9m+fTsAEyZMICsri1atWnHJJZcAsG3bNs4//3w6dOhAhw4dmDNnTsDzlXlUNSWXdu3aaZniscdUza1QNS1N9eWXEy1RTFmyZEnRyo03qnbr5nupWLHo2rgvFSv6PubGGwPKULVqVVVVPXLkiF5wwQX6+eefq6pqz549dcWKFaqqOn/+fO3Ro4eqqu7YsUMLCgpUVfXFF1/Um2++WVVVX331Vb3uuutK9N+mTRtduHChz/O3bNlSZ82apaqqd911l97oyOyrvXnz5jpnzhxVVb399tu1efPmqqr69ddfa//+/VVVddSoUfrGG2+oqurOnTu1adOmunfv3mLnvemmm/SJJ57wKpN7X9dff72OGTNGVVVnzpyprVq1UlXVAQMG6Hfffaeqqnv27NHDhw/rF198oVdffbUWFBRofn6+9u/fX7/55psS/WdkZOi2bdtUVfW6667T2267TdeuXasiovPmzSux3+LFi/Wkk04qPCY3N1dVVS+++GL99ttvVVV1/fr1esopp/i8zqlMsf+RA7BAvdxTbTRUqtCrl3m98UZ48kk4ciSx8iQTB0tM8e2/PUj2799P69atWbduHe3atePss89m7969zJ07l6FDh7qdxpwnJyeHYcOGsXnzZg4dOhR0fDtAbm4uvXr1Ii8vjxEjRnD11Veza9cuunXrBsBll13G0KFD2b17t9f2Xbt2sWfPHs444wwAhg8fzqefflriPNOnT+fjjz/m0UcfBYzJacOGDcVGN8Hy3XffMWXKFAB69uxJbm4uu3fvpnPnztx8881kZ2dz3nnn0bBhQ6ZPn8706dNp06YNAHv37mXlypWFoyh3evToQXp6OllZWTzwwAPs2rWLjIwMOnbsWGLfr776igsuuIC6desCULt2bQC+/PJLlixZUrjfX3/9xZ49e6hevXrIn7OsYJVFquCKhurbF775Bp56Cq6+GspCeOkTT/jfnplpTE+eZGTArFlhn9bls9i9ezcDBgzg2Wef5fLLL6dmzZosXLiwxP433HADN998MwMHDmTWrFmMGTPGb//Nmzfn559/plWrVtSpU4eFCxfy6KOPsnfv3pBl1SAnOVNVpkyZwsknn+xXrm+++Sasc4oId9xxB/379+ezzz6jY8eOfPnll6gqo0aN4pprrgnY79dff1148wfYtWsXVatW9SmDtxDRgoIC5s2bR2VP863FJ9ZnkSq4lEXVqmZ08fvv8NVXiZUpWRg71vhw3ImiT6dGjRo89dRTPProo1SuXJnjjz+ed999FzA3q0WLFgGwe/dujjvuOABef/31gP3edtttjB07lqVLlxa25Tnfc40aNahVqxbffvstAG+88QbdunXz2V6rVi2qV6/O/PnzAZg8ebLXc/bp04enn3668Eb/yy+/lNhn+PDhzJ07l6lTpxa2TZs2jd9++63Yfl27dmWS4xeaNWsWdevW5aijjmL16tW0bNmS22+/nfbt27Ns2TL69OnDK6+8UqgI//jjD7Zu3RrwGgWiV69evPPOO+Tm5gLGjwLQu3dvnnnmmcL9vCl3S3GsskgVXMqiShW46CKoV8+YoywmMXH8eDOSEDGv48dHNWGxTZs2tGrVismTJzNp0iRefvllWrVqRfPmzQudxGPGjGHo0KF06dKl2JOxL1q2bMmTTz7JpZdeyimnnELnzp1ZunQpw4cPB4zCufXWW8nKymLhwoXcfffdfttffvllRowYQadOnVBVatSoUeKcd911F4cPHyYrK4sWLVpw1113ldincuXKfPrppzz99NM0bdqUU089lddee42jjz662H5jxoxhwYIFZGVlcccddxQqyCeeeIIWLVrQqlUrKleuzDnnnEPv3r0ZPnw4nTp1omXLllxwwQWFju9IaN68OaNHj6Zbt260atWKm2++GYCnnnqqULZTTz2V559/PuJzpTopOwd3+/bttUxNfjR5Mlx8MSxZAs2awV13mSfnlSvhxBMTLV3UWbp0aVh29LLM3r17qVatGgAPPfQQmzdv5kn7QFGm8fY/EpGfVLW95752ZJEquI8sAEaOhPR0cBtqW8o2U6dOLUwi/Pbbb/n3v/+daJEspQjr4E4V3H0WAA0awNCh8MorcN99YKM8yjzDhg1j2LBhiRbDUkqxI4tUYd8+8+ruyL3xRvjrLwjCmWqxWCz+sMoiVXCNLCpVKmo7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yhIkMfZZLFlinnAiCgIJ0REsYkYVBQXwz39GcF5XAUFfnH22uVGGGxW1ezeTlrYhc/YE0i6/hEzWMunFfeH1FSpz5pjXzp2L2s4919x1Pvss8PFB3O396ZI770xgikm8kxHjoCymTDGD1HvvLZl4l1R4i6d1X4Abg2lLtqVM5FlkZKhedlnMuh86VPXEE6PQ0cSJJh/EFfgdROD4f/5jdv/kkzDOl5trDn7kEf/7nXGGaocOYZxAdeKoxVqFvcXTHMofik+aQ3a2av36qgUFRW0FBaoNGqied17g4wME5XuL969USfXSS1X79/d+qGtZskQL+8jIMKkgQX7lweFL9kaNonQCD665RrVWreLXOoocOqTatKnqqaeqHjkSk1OEDD7yLIJRFj97afsl0HGJXsqEsqhXT3XkyJh137y56rnnRqmzsWPNz23fvqB2P3jQ/IEyMoI+pIi5c825Pv7Y/3733WfuZlu3hngC1Yyau2KXTBiI449XPf/8ku3XXGOU8oED/o8PkFDo634Mqk2aqFav7l9h1K9v8h5jki84caJqxYolT3rKKap790bhBB507WoeKmLE888b8T/8MGanCBlfysLffBYXi8gnwPEi8rHbMgvIjfGAxxIMMTRDHT5sSgxE5K9wx+WjCNIRUaECjBtnLCT164doWvcsIOiLc84xt5rp04OSyZ0Nu6p7b491aabNm41vxN1f4eLcc40vY9Ys/3348iOpQtu2bFivXjcLysqV5nvxZll8+ml45hnjCvKMG4iamSo721QzhiIv8LXXmh9r//5FlZijRQzDZvPyjOnpjDNM9HOy489nMRcTNrvMeXUtN2Nnq0s8qjF1cK9ebRRGRDkW7jRyigqH4LXeuNGE0v71V4iO1OXLTT0oVwFBX7Rta+J0wwihbZzuvfhxWlrkZaf84urc3V/homdPMwduoKiosWNLljGtXBkuuQTS06nHVq+HNU7/A/CdAHb99XDddSbk2htRU6R79kCHDkVe4GefhYkTzWxaESqMYr6aRvlM2torZv6KJ580uv/hh811THq8DTe8LUAdYAjQLthjErmkvBkqL8+MXx96KCbdT5liul+wIEodrl5tOnzllaAPCbvezaBBpi5UMHTurJqWFppxPSdHJ3Kxpkl+Mbkqkqd16xRoWprqPfeoTpgQA7v9zTcbM8zBg963Dxyo2rix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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(real_stock_price[1:,3], color = 'red', marker = 'o',label = 'Real Google Close Price')\n",
    "plt.plot(predicted_stock_price[:,3], color = 'blue', marker = 'o',label = 'Predicted Google Stock Close Price')\n",
    "plt.title('Google  Stock Price Prediction')\n",
    "plt.xlabel('Date')\n",
    "plt.ylabel('Googlen Stock Price')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "optical-chemical",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Saving Model\n",
    "\n",
    "regressor.save(\"open.h5\")"
   ]
  }
 ],
 "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.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
Об этом алгоритме

Recurrent Neural Network

Part 1 - Data Preprocessing

# Importing the libraries

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
# Importing the training set

dataset_train = pd.read_csv('Google_train.csv')
training_set = dataset_train.iloc[:,0:].values
training_set
array([[1.51532028e+02, 1.54919327e+02, 1.50739990e+02, 1.53250580e+02,
        5.79510000e+06],
       [1.53723801e+02, 1.60309128e+02, 1.52179596e+02, 1.60060059e+02,
        7.24800000e+06],
       [1.59900650e+02, 1.65001541e+02, 1.56911850e+02, 1.63412491e+02,
        9.81450000e+06],
       ...,
       [1.14398999e+03, 1.14733997e+03, 1.13878003e+03, 1.14490002e+03,
        8.64000000e+05],
       [1.14685999e+03, 1.15081995e+03, 1.13940002e+03, 1.15033997e+03,
        9.03800000e+05],
       [1.14600000e+03, 1.15857996e+03, 1.14500000e+03, 1.15357996e+03,
        1.23880000e+06]])

Feature Scaling

  • Feature Scaling in done so that all values are in same range, columns with higher values than other features like volumne may be given higher importance in neural network creating a biased network.
  • Hence it is important to bring all feautres to same scale
# Feature Scaling

from sklearn.preprocessing import MinMaxScaler
sc = MinMaxScaler(feature_range = (0, 1))
training_set_scaled = sc.fit_transform(training_set)

Creating training set

  • Training set will contain 5 inputs and 5 outputs, not predicting volume.
  • RNN requires stack data i.e memory of data needs to passed. For training ith value in RNN with n time steps, all previous all upto i-nth value needs to passed.
# Creating a data structure with 120 Daysteps and 5 output

X_train = []
y_train = []
for i in range(120, 2425):
    X_train.append(training_set_scaled[i-120:i])
    y_train.append(training_set_scaled[i])
X_train, y_train = np.array(X_train), np.array(y_train)

# Reshaping
X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], 5))

Part 2 - Building the RNN

# Importing the Keras libraries and packages

from keras.models import Sequential
from keras.layers import Dense
from keras.layers import LSTM
from keras.layers import Dropout
# Initialising the RNN
regressor = Sequential()

# Adding the first LSTM layer and some Dropout regularisation
regressor.add(LSTM(units = 75, return_sequences = True, input_shape = (X_train.shape[1], 5)))
regressor.add(Dropout(0.2))

# Adding a second LSTM layer and some Dropout regularisation
regressor.add(LSTM(units = 75, return_sequences = True))
regressor.add(Dropout(0.2))

# Adding a third LSTM layer and some Dropout regularisation
regressor.add(LSTM(units = 75, return_sequences = True))
regressor.add(Dropout(0.2))

# Adding a fourth LSTM layer and some Dropout regularisation
regressor.add(LSTM(units = 75))
regressor.add(Dropout(0.2))

# Adding the output layer
regressor.add(Dense(units = 5))
# Compiling the RNN

regressor.compile(optimizer = 'adam', loss = 'mean_squared_error')
# Fitting the RNN to the Training set
regressor.fit(X_train, y_train, epochs = 100, batch_size = 32)
Epoch 1/100
73/73 [==============================] - 14s 127ms/step - loss: 0.0360
Epoch 2/100
73/73 [==============================] - 9s 127ms/step - loss: 0.0054
Epoch 3/100
73/73 [==============================] - 10s 133ms/step - loss: 0.0062
Epoch 4/100
73/73 [==============================] - 10s 131ms/step - loss: 0.0041
Epoch 5/100
73/73 [==============================] - 10s 136ms/step - loss: 0.0037
Epoch 6/100
73/73 [==============================] - 10s 134ms/step - loss: 0.0031
Epoch 7/100
73/73 [==============================] - 10s 144ms/step - loss: 0.0028
Epoch 8/100
73/73 [==============================] - 10s 139ms/step - loss: 0.0030
Epoch 9/100
73/73 [==============================] - 10s 139ms/step - loss: 0.0034
Epoch 10/100
73/73 [==============================] - 10s 135ms/step - loss: 0.0031
Epoch 11/100
73/73 [==============================] - 10s 135ms/step - loss: 0.0025
Epoch 12/100
73/73 [==============================] - 10s 136ms/step - loss: 0.0025
Epoch 13/100
73/73 [==============================] - 10s 136ms/step - loss: 0.0033
Epoch 14/100
73/73 [==============================] - 10s 135ms/step - loss: 0.0021
Epoch 15/100
73/73 [==============================] - 10s 142ms/step - loss: 0.0025
Epoch 16/100
73/73 [==============================] - 10s 137ms/step - loss: 0.0021
Epoch 17/100
73/73 [==============================] - 10s 138ms/step - loss: 0.0022
Epoch 18/100
73/73 [==============================] - 10s 138ms/step - loss: 0.0021
Epoch 19/100
73/73 [==============================] - 10s 137ms/step - loss: 0.0023
Epoch 20/100
73/73 [==============================] - 10s 137ms/step - loss: 0.0023
Epoch 21/100
73/73 [==============================] - 10s 138ms/step - loss: 0.0023
Epoch 22/100
73/73 [==============================] - 10s 137ms/step - loss: 0.0029
Epoch 23/100
73/73 [==============================] - 10s 138ms/step - loss: 0.0018
Epoch 24/100
73/73 [==============================] - 11s 151ms/step - loss: 0.0019
Epoch 25/100
73/73 [==============================] - 11s 154ms/step - loss: 0.0022
Epoch 26/100
73/73 [==============================] - 11s 149ms/step - loss: 0.0019
Epoch 27/100
73/73 [==============================] - 12s 158ms/step - loss: 0.0017
Epoch 28/100
73/73 [==============================] - 12s 159ms/step - loss: 0.0029
Epoch 29/100
73/73 [==============================] - 11s 150ms/step - loss: 0.0017
Epoch 30/100
73/73 [==============================] - 10s 142ms/step - loss: 0.0021
Epoch 31/100
73/73 [==============================] - 10s 142ms/step - loss: 0.0016
Epoch 32/100
73/73 [==============================] - 11s 144ms/step - loss: 0.0019
Epoch 33/100
73/73 [==============================] - 11s 149ms/step - loss: 0.0020
Epoch 34/100
73/73 [==============================] - 11s 145ms/step - loss: 0.0014
Epoch 35/100
73/73 [==============================] - 11s 146ms/step - loss: 0.0018
Epoch 36/100
73/73 [==============================] - 11s 150ms/step - loss: 0.0018
Epoch 37/100
73/73 [==============================] - 11s 155ms/step - loss: 0.0014
Epoch 38/100
73/73 [==============================] - 12s 162ms/step - loss: 0.0018
Epoch 39/100
73/73 [==============================] - 12s 159ms/step - loss: 0.0017
Epoch 40/100
73/73 [==============================] - 11s 152ms/step - loss: 0.0017
Epoch 41/100
73/73 [==============================] - 11s 154ms/step - loss: 0.0017
Epoch 42/100
73/73 [==============================] - 12s 160ms/step - loss: 0.0021
Epoch 43/100
73/73 [==============================] - 12s 165ms/step - loss: 0.0019
Epoch 44/100
73/73 [==============================] - 13s 175ms/step - loss: 0.0014
Epoch 45/100
73/73 [==============================] - 13s 173ms/step - loss: 0.0017
Epoch 46/100
73/73 [==============================] - 13s 174ms/step - loss: 0.0015
Epoch 47/100
73/73 [==============================] - 12s 161ms/step - loss: 0.0017
Epoch 48/100
73/73 [==============================] - 12s 158ms/step - loss: 0.0018
Epoch 49/100
73/73 [==============================] - 12s 163ms/step - loss: 0.0017
Epoch 50/100
73/73 [==============================] - 13s 171ms/step - loss: 0.0016
Epoch 51/100
73/73 [==============================] - 13s 174ms/step - loss: 0.0016
Epoch 52/100
73/73 [==============================] - 12s 165ms/step - loss: 0.0014
Epoch 53/100
73/73 [==============================] - 13s 172ms/step - loss: 0.0015
Epoch 54/100
73/73 [==============================] - 13s 171ms/step - loss: 0.0014
Epoch 55/100
73/73 [==============================] - 12s 170ms/step - loss: 0.0018
Epoch 56/100
73/73 [==============================] - 12s 163ms/step - loss: 0.0014
Epoch 57/100
73/73 [==============================] - 12s 165ms/step - loss: 0.0015
Epoch 58/100
73/73 [==============================] - 13s 178ms/step - loss: 0.0017
Epoch 59/100
73/73 [==============================] - 14s 196ms/step - loss: 0.0017
Epoch 60/100
73/73 [==============================] - 15s 199ms/step - loss: 0.0013
Epoch 61/100
73/73 [==============================] - 14s 189ms/step - loss: 0.0016
Epoch 62/100
73/73 [==============================] - 13s 179ms/step - loss: 0.0013
Epoch 63/100
73/73 [==============================] - 13s 179ms/step - loss: 0.0014
Epoch 64/100
73/73 [==============================] - 14s 192ms/step - loss: 0.0014
Epoch 65/100
73/73 [==============================] - 14s 186ms/step - loss: 0.0014
Epoch 66/100
73/73 [==============================] - 11s 156ms/step - loss: 0.0014
Epoch 67/100
73/73 [==============================] - 11s 149ms/step - loss: 0.0011
Epoch 68/100
73/73 [==============================] - 11s 146ms/step - loss: 0.0015
Epoch 69/100
73/73 [==============================] - 11s 148ms/step - loss: 0.0012
Epoch 70/100
73/73 [==============================] - 11s 150ms/step - loss: 0.0014
Epoch 71/100
73/73 [==============================] - 11s 151ms/step - loss: 0.0018
Epoch 72/100
73/73 [==============================] - 11s 152ms/step - loss: 0.0015
Epoch 73/100
73/73 [==============================] - 12s 158ms/step - loss: 0.0012
Epoch 74/100
73/73 [==============================] - 14s 197ms/step - loss: 0.0012
Epoch 75/100
73/73 [==============================] - 15s 204ms/step - loss: 0.0011
Epoch 76/100
73/73 [==============================] - 14s 198ms/step - loss: 0.0015
Epoch 77/100
73/73 [==============================] - 13s 179ms/step - loss: 0.0013
Epoch 78/100
73/73 [==============================] - 12s 171ms/step - loss: 0.0013
Epoch 79/100
73/73 [==============================] - 13s 181ms/step - loss: 0.0015
Epoch 80/100
73/73 [==============================] - 14s 187ms/step - loss: 0.0014
Epoch 81/100
73/73 [==============================] - 14s 197ms/step - loss: 0.0013
Epoch 82/100
73/73 [==============================] - 16s 213ms/step - loss: 0.0012
Epoch 83/100
73/73 [==============================] - 16s 219ms/step - loss: 0.0012
Epoch 84/100
73/73 [==============================] - 16s 218ms/step - loss: 0.0012
Epoch 85/100
73/73 [==============================] - 16s 213ms/step - loss: 0.0013
Epoch 86/100
73/73 [==============================] - 12s 163ms/step - loss: 0.0015
Epoch 87/100
73/73 [==============================] - 11s 156ms/step - loss: 0.0012
Epoch 88/100
73/73 [==============================] - 12s 164ms/step - loss: 0.0013
Epoch 89/100
73/73 [==============================] - 13s 174ms/step - loss: 0.0017
Epoch 90/100
73/73 [==============================] - 13s 177ms/step - loss: 0.0012
Epoch 91/100
73/73 [==============================] - 12s 168ms/step - loss: 0.0012
Epoch 92/100
73/73 [==============================] - 12s 166ms/step - loss: 0.0012
Epoch 93/100
73/73 [==============================] - 12s 170ms/step - loss: 0.0014
Epoch 94/100
73/73 [==============================] - 12s 170ms/step - loss: 0.0010
Epoch 95/100
73/73 [==============================] - 13s 179ms/step - loss: 0.0014
Epoch 96/100
73/73 [==============================] - 13s 178ms/step - loss: 0.0012
Epoch 97/100
73/73 [==============================] - 12s 163ms/step - loss: 0.0014
Epoch 98/100
73/73 [==============================] - 12s 163ms/step - loss: 0.0013
Epoch 99/100
73/73 [==============================] - 12s 163ms/step - loss: 0.0013
Epoch 100/100
73/73 [==============================] - 12s 165ms/step - loss: 0.0012
&lt;tensorflow.python.keras.callbacks.History at 0x7fd80e4dd490&gt;

Part 3 - Making the predictions and visualising the results

# Getting the real stock price from the test set

dataset_test = pd.read_csv('Google_test.csv')
real_stock_price = dataset_test.iloc[:, 0:].values

Creating test dataset

  • Since RNN requries stack data i.e memory data it is important that starting values of test data also have previous data, which is present in training data.
  • A cumulative dataset is creating using training and test data, and using this dataset we are able to get memory for initial datapoints that are present in training set
# Creating dataset for prediction

dataset_total = pd.concat((dataset_train, dataset_test), axis = 0, sort = False)
inputs = dataset_total[len(dataset_total) - len(dataset_test) - 120:].values
inputs = sc.transform(inputs)
X_test = []
for i in range(120, 160):
    X_test.append(inputs[i-120:i])
X_test = np.array(X_test)
X_test = np.reshape(X_test, (X_test.shape[0], X_test.shape[1], 5))
# Making prediction

predicted_stock_price = regressor.predict(X_test)
predicted_stock_price = sc.inverse_transform(predicted_stock_price)

Visualizing predictions

plt.plot(real_stock_price[1:,0], color = 'red', marker = 'o', label = 'Real Google Stock Open Price')
plt.plot(predicted_stock_price[:,0], color = 'blue', marker = 'o',label = 'Predicted Google Open Stock Price')
plt.title('Google Stock Price Prediction')
plt.xlabel('DAY')
plt.ylabel('Google Stock Price')
plt.legend()
plt.show()
plt.plot(real_stock_price[1:,1], color = 'red', marker = 'o', label = 'Real Google Stock High Price')
plt.plot(predicted_stock_price[:,1], color = 'blue', marker = 'o',label = 'Predicted Google High Stock Price')
plt.title('Google Stock Price Prediction')
plt.xlabel('DAY')
plt.ylabel('Google Stock Price')
plt.legend()
plt.show()
plt.plot(real_stock_price[1:,2], color = 'red',  marker = 'o',label = 'Real Google Stock Low  Price')
plt.plot(predicted_stock_price[:,2], color = 'blue', marker = 'o',label = 'Predicted Google Stock Low Price')
plt.title('Google  Stock Price Prediction')
plt.xlabel('DAY')
plt.ylabel('Google Stock Price')
plt.legend()
plt.show()
plt.plot(real_stock_price[1:,3], color = 'red', marker = 'o',label = 'Real Google Close Price')
plt.plot(predicted_stock_price[:,3], color = 'blue', marker = 'o',label = 'Predicted Google Stock Close Price')
plt.title('Google  Stock Price Prediction')
plt.xlabel('Date')
plt.ylabel('Googlen Stock Price')
plt.legend()
plt.show()
# Saving Model

regressor.save("open.h5")