main ed4587a969fc cached
31 files
36.5 MB
2.0M tokens
1 requests
Download .txt
Showing preview only (7,815K chars total). Download the full file or copy to clipboard to get everything.
Repository: PacktPublishing/Machine-Learning-for-Time-Series-with-Python
Branch: main
Commit: ed4587a969fc
Files: 31
Total size: 36.5 MB

Directory structure:
gitextract_ecwqxkfi/

├── .gitignore
├── LICENSE
├── README.md
├── chapter10/
│   ├── Causal_CNN.ipynb
│   ├── RNN.ipynb
│   ├── Time_Series_with_Deep_Learning.ipynb
│   └── passengers.csv
├── chapter11/
│   ├── Ranking_with_Bandits.ipynb
│   ├── Trading_with_DQN.ipynb
│   └── jesterfinal151cols.csv
├── chapter12/
│   ├── Energy_Demand_Forecasting.ipynb
│   ├── gaussian_process.ipynb
│   └── test_models.ipynb
├── chapter2/
│   ├── Air Pollution.ipynb
│   ├── EEG Signals.ipynb
│   ├── README.md
│   ├── monthly_csv.csv
│   └── spm.csv
├── chapter3/
│   └── Preprocessing.ipynb
├── chapter5/
│   └── Forecasting.ipynb
├── chapter6/
│   └── Change-Points_Anomalies.ipynb
├── chapter7/
│   ├── KNN_with_dynamic_DTW.ipynb
│   ├── Kats.ipynb
│   ├── Silverkite.ipynb
│   └── XGBoost.ipynb
├── chapter8/
│   ├── Drift_Detection.ipynb
│   └── Online_Learning.ipynb
└── chapter9/
    ├── Causal_Impact_Volkswagen.ipynb
    ├── Fuzzy_time_series_forecasting.ipynb
    ├── Markov_switching_model.ipynb
    └── Prophet_model.ipynb

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
.ipynb_checkpoints/
.DS_Store

================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2021 Packt

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: README.md
================================================


---

## Join Our Newsletters 📬

### DataPro  
*The future of AI is unfolding. Don’t fall behind.*

<p><a href="https://landing.packtpub.com/subscribe-datapronewsletter/?link_from_packtlink=yes"><img src="https://static.packt-cdn.com/assets/images/DataPro NL QR Code.png" alt="DataPro QR" width="150"/></a></p>

Stay ahead with [**DataPro**](https://landing.packtpub.com/subscribe-datapronewsletter/?link_from_packtlink=yes), the free weekly newsletter for data scientists, AI/ML researchers, and data engineers.  
From trending tools like **PyTorch**, **scikit-learn**, **XGBoost**, and **BentoML** to hands-on insights on **database optimization** and real-world **ML workflows**, you’ll get what matters, fast.

> Stay sharp with [DataPro](https://landing.packtpub.com/subscribe-datapronewsletter/?link_from_packtlink=yes). Join **115K+ data professionals** who never miss a beat.

---

### BIPro  
*Business runs on data. Make sure yours tells the right story.*

<p><a href="https://landing.packtpub.com/subscribe-bipro-newsletter/?link_from_packtlink=yes"><img src="https://static.packt-cdn.com/assets/images/BIPro NL QR Code.png" alt="BIPro QR" width="150"/></a></p>

[**BIPro**](https://landing.packtpub.com/subscribe-bipro-newsletter/?link_from_packtlink=yes) is your free weekly newsletter for BI professionals, analysts, and data leaders.  
Get practical tips on **dashboarding**, **data visualization**, and **analytics strategy** with tools like **Power BI**, **Tableau**, **Looker**, **SQL**, and **dbt**.

> Get smarter with [BIPro](https://landing.packtpub.com/subscribe-bipro-newsletter/?link_from_packtlink=yes). Trusted by **35K+ BI professionals**, see what you’re missing.




# Machine-Learning-for-Time-Series-with-Python

[<img src="./.other/cover.png" width="248">](https://www.amazon.com/Machine-Learning-Time-Python-state/dp/1801819629/)

Become proficient in deriving insights from time-series data and analyzing a model’s performance

## Links

* [Amazon](https://www.amazon.com/Machine-Learning-Time-Python-state/dp/1801819629/)
* [Packt Publishing](https://www.packtpub.com/product/machine-learning-for-time-series-with-python/9781801819626)

## Key Features
* Explore popular and modern machine learning methods including the latest online and deep learning algorithms
* Learn to increase the accuracy of your predictions by matching the right model with the right problem
* Master time-series via real-world case studies on operations management, digital marketing, finance, and healthcare

## What you will learn
- Understand the main classes of time-series and learn how to detect outliers and patterns
- Choose the right method to solve time-series problems
- Characterize seasonal and correlation patterns through autocorrelation and statistical techniques
- Get to grips with time-series data visualization
- Understand classical time-series models like ARMA and ARIMA
- Implement deep learning models, like Gaussian processes, transformers, and state-of-the-art machine learning models
- Become familiar with many libraries like Prophet, XGboost, and TensorFlow

## Who This Book Is For
This book is ideal for data analysts, data scientists, and Python developers who are looking to perform time-series analysis to effectively predict outcomes. Basic knowledge of the Python language is essential. Familiarity with statistics is desirable.

## Table of Contents
1. Introduction to Time-Series with Python
2. Time-Series Analysis with Python
3. Preprocessing Time-Series
4. Introduction to Machine Learning for Time-Series
5. Forecasting with Moving Averages and Autoregressive Models
6. Unsupervised Methods for Time-Series
7. Machine Learning Models for Time-Series 
8. Online Learning for Time-Series
9. Probabilistic Models for Time-Series
10. Deep Learning for Time-Series
11. Reinforcement Learning for Time-Series
12. Multivariate Forecasting

## Author Notes

I've heard from a few people struggling with tsfresh and featuretools for chapter 3.

[My PR](https://github.com/blue-yonder/tsfresh/pull/912) for tsfresh was merged mid-December fixing a version incompatibility - featuretools went through many breaking changes with the release of version 1.0.0 (congratulations to the team!). Please see how to fix any problems in the [discussion here](https://github.com/PacktPublishing/Machine-Learning-for-Time-Series-with-Python/issues/2).
### Download a free PDF

 <i>If you have already purchased a print or Kindle version of this book, you can get a DRM-free PDF version at no cost.<br>Simply click on the link to claim your free PDF.</i>
<p align="center"> <a href="https://packt.link/free-ebook/9781801819626">https://packt.link/free-ebook/9781801819626 </a> </p>

================================================
FILE: chapter10/Causal_CNN.ipynb
================================================
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a href=\"https://colab.research.google.com/github/PacktPublishing/Machine-Learning-for-Time-Series-with-Python/blob/master/chapter10/Causal_CNN.ipynb\" target=\"_parent\\\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "id": "bU3tHC0PArEI",
    "tags": []
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "from keras.layers import Conv1D, Input, Add, Activation, Dropout\n",
    "from keras.models import Sequential, Model\n",
    "from keras.layers.advanced_activations import LeakyReLU, ELU\n",
    "from keras import optimizers\n",
    "import tensorflow as tf\n",
    "\n",
    "callback = tf.keras.callbacks.EarlyStopping(monitor='loss', patience=10)\n",
    "\n",
    "\n",
    "def DC_CNN_Block(nb_filter, filter_length, dilation):\n",
    "    def f(input_):\n",
    "        residual =    input_\n",
    "        layer_out =   Conv1D(\n",
    "            filters=nb_filter, kernel_size=filter_length, \n",
    "            dilation_rate=dilation, \n",
    "            activation='linear', padding='causal', use_bias=False\n",
    "        )(input_)                    \n",
    "        layer_out =   Activation('selu')(layer_out)        \n",
    "        skip_out =    Conv1D(1, 1, activation='linear', use_bias=False)(layer_out)        \n",
    "        network_in =  Conv1D(1, 1, activation='linear', use_bias=False)(layer_out)                      \n",
    "        network_out = Add()([residual, network_in])        \n",
    "        return network_out, skip_out    \n",
    "    return f\n",
    "\n",
    "\n",
    "def DC_CNN_Model(length):\n",
    "    input = Input(shape=(length,1))\n",
    "    l1a, l1b = DC_CNN_Block(32, 2, 1)(input)    \n",
    "    l2a, l2b = DC_CNN_Block(32, 2, 2)(l1a) \n",
    "    l3a, l3b = DC_CNN_Block(32, 2, 4)(l2a)\n",
    "    l4a, l4b = DC_CNN_Block(32, 2, 8)(l3a)\n",
    "    l5a, l5b = DC_CNN_Block(32, 2, 16)(l4a)\n",
    "    l6a, l6b = DC_CNN_Block(32, 2, 32)(l5a)\n",
    "    l6b = Dropout(0.8)(l6b)\n",
    "    l7a, l7b = DC_CNN_Block(32, 2, 64)(l6a)\n",
    "    l7b = Dropout(0.8)(l7b)\n",
    "    l8 =   Add()([l1b, l2b, l3b, l4b, l5b, l6b, l7b])\n",
    "    l9 =   Activation('relu')(l8)   \n",
    "    l21 =  Conv1D(1, 1, activation='linear', use_bias=False)(l9)\n",
    "    model = Model(inputs=input, outputs=l21)\n",
    "    model.compile(loss='mae', optimizer=optimizers.adam_v2.Adam(), metrics=['mse'])\n",
    "    return model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "def fit_model(timeseries):\n",
    "    length = len(timeseries)-1\n",
    "    model = DC_CNN_Model(length)\n",
    "    model.summary()\n",
    "    X = timeseries[:-1].reshape(1,length, 1)\n",
    "    y = timeseries[1:].reshape(1,length, 1)\n",
    "    model.fit(X, y, epochs=3000, callbacks=[callback])\n",
    "    return model\n",
    "    \n",
    "def forecast(model, timeseries, horizon: int):\n",
    "    length = len(timeseries)-1\n",
    "    pred_array = np.zeros(horizon).reshape(1, horizon, 1)\n",
    "    X_test_initial = timeseries[1:].reshape(1,length,1)\n",
    "    \n",
    "    pred_array[: ,0, :] = model.predict(X_test_initial)[:, -1:, :]\n",
    "    for i in range(horizon-1):\n",
    "        pred_array[:, i+1:, :] = model.predict(\n",
    "            np.append(\n",
    "                X_test_initial[:, i+1:, :], \n",
    "                pred_array[:, :i+1, :]\n",
    "            ).reshape(1, length, 1))[:, -1:, :]\n",
    "    return pred_array.flatten()\n",
    "    \n",
    "def evaluate_timeseries(series, horizon: int):\n",
    "    model = fit_model(series)\n",
    "    pred_array = forecast(model, series, horizon)\n",
    "    return pred_array, model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "LCzxf36xxvri",
    "tags": []
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "def show_result(y_test, predicted, ylabel=\"Passengers\"):\n",
    "  plt.figure(figsize=(16, 6))\n",
    "  plt.plot(y_test.index, predicted, 'o-', label=\"predicted\")\n",
    "  plt.plot(y_test.index, y_test, '.-', label=\"actual\")\n",
    "\n",
    "  plt.ylabel(ylabel)\n",
    "  plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "id": "Tu-831LAylwK",
    "tags": []
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "\n",
    "values = [         \n",
    "  112., 118., 132., 129., 121., 135., 148., 148., 136., 119., 104., 118., 115., 126.,\n",
    "  141., 135., 125., 149., 170., 170., 158., 133., 114., 140., 145., 150., 178., 163.,\n",
    "  172., 178., 199., 199., 184., 162., 146., 166., 171., 180., 193., 181., 183., 218.,\n",
    "  230., 242., 209., 191., 172., 194., 196., 196., 236., 235., 229., 243., 264., 272.,\n",
    "  237., 211., 180., 201., 204., 188., 235., 227., 234., 264., 302., 293., 259., 229.,\n",
    "  203., 229., 242., 233., 267., 269., 270., 315., 364., 347., 312., 274., 237., 278.,\n",
    "  284., 277., 317., 313., 318., 374., 413., 405., 355., 306., 271., 306., 315., 301.,\n",
    "  356., 348., 355., 422., 465., 467., 404., 347., 305., 336., 340., 318., 362., 348.,\n",
    "  363., 435., 491., 505., 404., 359., 310., 337., 360., 342., 406., 396., 420., 472.,\n",
    "  548., 559., 463., 407., 362., 405., 417., 391., 419., 461., 472., 535., 622., 606.,\n",
    "  508., 461., 390., 432.,\n",
    " ]\n",
    "idx = pd.date_range(\"1949-01-01\", periods=len(values), freq=\"M\")\n",
    "passengers = pd.Series(values, index=idx, name=\"passengers\").to_frame()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "boJVi8Jiya4D",
    "outputId": "e4605e96-9198-4ab0-a277-489933daaa0b",
    "tags": []
   },
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(\n",
    "    passengers.passengers, passengers.passengers.shift(-1), shuffle=False\n",
    ")\n",
    "HORIZON = len(y_test)\n",
    "predictions, model = evaluate_timeseries(X_train.values.reshape(-1, 1), horizon=HORIZON)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 379
    },
    "id": "fxQ1vflLzcmt",
    "outputId": "1dfb65e4-fe34-46e0-879a-a8a095493e05",
    "tags": []
   },
   "outputs": [],
   "source": [
    "show_result(y_test[:HORIZON], predictions[:HORIZON], \"Passengers\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "id": "yH1hqiySztJ1",
    "tags": []
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "colab": {
   "collapsed_sections": [],
   "name": "Causal CNN",
   "provenance": []
  },
  "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": 4
}


================================================
FILE: chapter10/RNN.ipynb
================================================
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a href=\"https://colab.research.google.com/github/PacktPublishing/Machine-Learning-for-Time-Series-with-Python/blob/master/chapter10/RNN.ipynb\" target=\"_parent\\\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "o47CT4PG6dsp"
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "\n",
    "values = [         \n",
    "  112., 118., 132., 129., 121., 135., 148., 148., 136., 119., 104., 118., 115., 126.,\n",
    "  141., 135., 125., 149., 170., 170., 158., 133., 114., 140., 145., 150., 178., 163.,\n",
    "  172., 178., 199., 199., 184., 162., 146., 166., 171., 180., 193., 181., 183., 218.,\n",
    "  230., 242., 209., 191., 172., 194., 196., 196., 236., 235., 229., 243., 264., 272.,\n",
    "  237., 211., 180., 201., 204., 188., 235., 227., 234., 264., 302., 293., 259., 229.,\n",
    "  203., 229., 242., 233., 267., 269., 270., 315., 364., 347., 312., 274., 237., 278.,\n",
    "  284., 277., 317., 313., 318., 374., 413., 405., 355., 306., 271., 306., 315., 301.,\n",
    "  356., 348., 355., 422., 465., 467., 404., 347., 305., 336., 340., 318., 362., 348.,\n",
    "  363., 435., 491., 505., 404., 359., 310., 337., 360., 342., 406., 396., 420., 472.,\n",
    "  548., 559., 463., 407., 362., 405., 417., 391., 419., 461., 472., 535., 622., 606.,\n",
    "  508., 461., 390., 432.,\n",
    " ]\n",
    "idx = pd.date_range(\"1949-01-01\", periods=len(values), freq=\"M\")\n",
    "passengers = pd.Series(values, index=idx, name=\"passengers\").to_frame()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 419
    },
    "id": "BNOhWQC46fJU",
    "outputId": "1687dde6-4e92-45f5-f40c-e4668cd7ba32"
   },
   "outputs": [],
   "source": [
    "passengers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "1Fhde-Qg6pPj"
   },
   "outputs": [],
   "source": [
    "LOOKBACK = 10\n",
    "\n",
    "def wrap_data(df, lookback):\n",
    "  dataset = []\n",
    "  for index in range(lookback, len(df)+1):\n",
    "    features = {\n",
    "        f\"col_{i}\": float(val) for i, val in enumerate(\n",
    "          df.iloc[index-lookback:index].values\n",
    "        )\n",
    "    }\n",
    "    row = pd.DataFrame.from_dict([features])\n",
    "    row.index = [df.index[index-1]]\n",
    "    dataset.append(row)\n",
    "  return pd.concat(dataset, axis=0)\n",
    "\n",
    "dataset = wrap_data(passengers, lookback=LOOKBACK)\n",
    "dataset = dataset.join(passengers.shift(-1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "xkD2twYx7lxK"
   },
   "outputs": [],
   "source": [
    "import tensorflow.keras as keras\n",
    "from tensorflow.keras.layers import Input, Bidirectional, LSTM, Dense\n",
    "import tensorflow as tf\n",
    "\n",
    "callback = tf.keras.callbacks.EarlyStopping(monitor='loss', patience=3)\n",
    "\n",
    "def create_model(passengers):\n",
    "    input_layer = Input(shape=(LOOKBACK, 1))\n",
    "    recurrent = Bidirectional(LSTM(20, activation=\"tanh\"))(input_layer)\n",
    "    output_layer = Dense(1)(recurrent)\n",
    "    model = keras.models.Model(inputs=input_layer, outputs=output_layer)\n",
    "    model.compile(\n",
    "        loss='mse', optimizer=keras.optimizers.Adagrad(),\n",
    "        metrics=[\n",
    "            keras.metrics.RootMeanSquaredError(),\n",
    "            keras.metrics.MeanAbsoluteError()\n",
    "    ])\n",
    "    return model\n",
    "\n",
    "model = create_model(passengers)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "uv0e7MJNBIrl"
   },
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(\n",
    "    dataset.drop(columns=\"passengers\"),\n",
    "    dataset[\"passengers\"],\n",
    "    shuffle=False\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "bN4gzfAhAK4q",
    "outputId": "4c812a58-5a93-421a-fd20-e47bea56d52b"
   },
   "outputs": [],
   "source": [
    "model.fit(X_train, y_train, epochs=1000, callbacks=[callback])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "o6lhB_7VApOJ"
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "def show_result(y_test, predicted):\n",
    "  plt.figure(figsize=(16, 6))\n",
    "  plt.plot(y_test.index, predicted, 'o-', label=\"predicted\")\n",
    "  plt.plot(y_test.index, y_test, '.-', label=\"actual\")\n",
    "\n",
    "  plt.ylabel(\"Passengers\")\n",
    "  plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 379
    },
    "id": "9TN2UDG_Bu0c",
    "outputId": "4c84996c-8906-4d53-b84b-2204811b017c"
   },
   "outputs": [],
   "source": [
    "predicted = model.predict(X_test)\n",
    "show_result(y_test, predicted)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "V668DSiQBzV1"
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "colab": {
   "name": "RNN",
   "provenance": []
  },
  "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": 4
}


================================================
FILE: chapter10/Time_Series_with_Deep_Learning.ipynb
================================================
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a href=\"https://colab.research.google.com/github/PacktPublishing/Machine-Learning-for-Time-Series-with-Python/blob/master/chapter10/Time_Series_with_Deep_Learning.ipynb\" target=\"_parent\\\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# from https://github.com/FinYang/tsdl/blob/56e091544cb81e573ee6db20c6f9cd39c70e6243/data-raw/boxjenk/seriesg.dat"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "jEiBBpYjLCj3"
   },
   "outputs": [],
   "source": [
    "values = [         \n",
    "  112., 118., 132., 129., 121., 135., 148., 148., 136., 119., 104., 118., 115., 126.,\n",
    "  141., 135., 125., 149., 170., 170., 158., 133., 114., 140., 145., 150., 178., 163.,\n",
    "  172., 178., 199., 199., 184., 162., 146., 166., 171., 180., 193., 181., 183., 218.,\n",
    "  230., 242., 209., 191., 172., 194., 196., 196., 236., 235., 229., 243., 264., 272.,\n",
    "  237., 211., 180., 201., 204., 188., 235., 227., 234., 264., 302., 293., 259., 229.,\n",
    "  203., 229., 242., 233., 267., 269., 270., 315., 364., 347., 312., 274., 237., 278.,\n",
    "  284., 277., 317., 313., 318., 374., 413., 405., 355., 306., 271., 306., 315., 301.,\n",
    "  356., 348., 355., 422., 465., 467., 404., 347., 305., 336., 340., 318., 362., 348.,\n",
    "  363., 435., 491., 505., 404., 359., 310., 337., 360., 342., 406., 396., 420., 472.,\n",
    "  548., 559., 463., 407., 362., 405., 417., 391., 419., 461., 472., 535., 622., 606.,\n",
    "  508., 461., 390., 432.,\n",
    " ]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "9bBfTTdMK9AE"
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "idx = pd.date_range(\"1949-01-01\", periods=len(values), freq=\"M\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "z3sG4R4VKnWT"
   },
   "outputs": [],
   "source": [
    "passengers = pd.Series(values, index=idx, name=\"passengers\").to_frame()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "PBlu9I2p8uib"
   },
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(passengers, passengers.passengers.shift(-1), shuffle=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "DkejrcL8aFt1"
   },
   "outputs": [],
   "source": [
    "import tensorflow.keras as keras\n",
    "import tensorflow as tf\n",
    "\n",
    "DROPOUT_RATIO = 0.2\n",
    "HIDDEN_NEURONS = 10\n",
    "\n",
    "callback = tf.keras.callbacks.EarlyStopping(monitor='loss', patience=3)\n",
    "\n",
    "def create_model(passengers):\n",
    "  input_layer = keras.layers.Input(len(passengers.columns))\n",
    "\n",
    "  hiden_layer = keras.layers.Dropout(DROPOUT_RATIO)(input_layer)\n",
    "  hiden_layer = keras.layers.Dense(HIDDEN_NEURONS, activation='relu')(hiden_layer)\n",
    "\n",
    "  output_layer = keras.layers.Dropout(DROPOUT_RATIO)(hiden_layer)\n",
    "  output_layer = keras.layers.Dense(1)(output_layer)\n",
    "\n",
    "  model = keras.models.Model(inputs=input_layer, outputs=output_layer)\n",
    "\n",
    "  model.compile(loss='mse', optimizer=keras.optimizers.Adagrad(),\n",
    "    metrics=[keras.metrics.RootMeanSquaredError(), keras.metrics.MeanAbsoluteError()])\n",
    "  return model\n",
    "\n",
    "model = create_model(passengers)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "qJCCbRTib8Up",
    "outputId": "63136aae-e096-4ff3-f4fb-2d728054d099"
   },
   "outputs": [],
   "source": [
    "model.fit(X_train, y_train, epochs=1000, callbacks=[callback])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "BgHreXsUdc6a"
   },
   "outputs": [],
   "source": [
    "predicted = model.predict(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "mJC6mB74dkh9"
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "def show_result(y_test, predicted):\n",
    "  plt.figure(figsize=(16, 6))\n",
    "  plt.plot(y_test.index, predicted, 'o-', label=\"predicted\")\n",
    "  plt.plot(y_test.index, y_test, '.-', label=\"actual\")\n",
    "\n",
    "  plt.ylabel(\"Passengers\")\n",
    "  plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 396
    },
    "id": "4spy29-UdzRS",
    "outputId": "86904074-d6ec-48a2-ab70-d5085ff21535"
   },
   "outputs": [],
   "source": [
    "show_result(y_test, predicted)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "Mh4E54N_egps",
    "outputId": "3930edda-49da-4ba5-ba5b-2d9c09241a94"
   },
   "outputs": [],
   "source": [
    "passengers[\"month\"] = passengers.index.month.values\n",
    "passengers[\"year\"] = passengers.index.year.values\n",
    "\n",
    "model = create_model(passengers)\n",
    "X_train, X_test, y_train, y_test = train_test_split(passengers, passengers.passengers.shift(-1), shuffle=False)\n",
    "model.fit(X_train, y_train, epochs=100, callbacks=[callback])\n",
    "predicted = model.predict(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 379
    },
    "id": "Y9_1dwAofTM7",
    "outputId": "6f8515de-b3d6-4aee-a65b-cde8dc442631"
   },
   "outputs": [],
   "source": [
    "show_result(y_test, predicted)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "3eSnjPMYrcbN"
   },
   "outputs": [],
   "source": [
    "from tensorflow.keras.layers.experimental import preprocessing\n",
    "import tensorflow as tf\n",
    "\n",
    "\n",
    "DROPOUT_RATIO = 0.1\n",
    "HIDDEN_NEURONS = 5\n",
    "\n",
    "\n",
    "def create_model(passengers):\n",
    "  scale = tf.constant(passengers.passengers.std())\n",
    "\n",
    "  continuous_input_layer = keras.layers.Input(shape=1)\n",
    "\n",
    "  categorical_input_layer = keras.layers.Input(shape=1)\n",
    "  embedded = keras.layers.Embedding(12, 5)(categorical_input_layer)\n",
    "  embedded_flattened = keras.layers.Flatten()(embedded)\n",
    "\n",
    "  year_input = keras.layers.Input(shape=1)\n",
    "  year_layer = keras.layers.Dense(1)(year_input)\n",
    "\n",
    "  hidden_output = keras.layers.Concatenate(-1)([embedded_flattened, year_layer, continuous_input_layer])\n",
    "  output_layer = keras.layers.Dense(1)(hidden_output)\n",
    "  output = output_layer * scale + continuous_input_layer\n",
    "\n",
    "  model = keras.models.Model(inputs=[\n",
    "    continuous_input_layer, categorical_input_layer, year_input\n",
    "  ], outputs=output)\n",
    "\n",
    "  model.compile(loss='mse', optimizer=keras.optimizers.Adam(),\n",
    "    metrics=[keras.metrics.RootMeanSquaredError(), keras.metrics.MeanAbsoluteError()])\n",
    "  return model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "zSyGPARMt9zx",
    "outputId": "df8b02fb-fc3a-49da-ac2f-d6e951eca334"
   },
   "outputs": [],
   "source": [
    "passengers = pd.Series(values, index=idx, name=\"passengers\").to_frame()\n",
    "passengers[\"year\"] = passengers.index.year.values - passengers.index.year.values.min()\n",
    "passengers[\"month\"] = passengers.index.month.values - 1\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(passengers, passengers.passengers.shift(-1), shuffle=False)\n",
    "model = create_model(X_train)\n",
    "model.fit(\n",
    "  (X_train[\"passengers\"], X_train[\"year\"], X_train[\"month\"]),\n",
    "  y_train, epochs=1000,\n",
    "  callbacks=[callback]\n",
    ")\n",
    "predicted = model.predict((X_test[\"passengers\"], X_test[\"year\"], X_test[\"month\"]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 379
    },
    "id": "D2fH073LAYYc",
    "outputId": "c3bc19a2-7bf6-47dc-f753-75fdfb215aa2"
   },
   "outputs": [],
   "source": [
    "show_result(y_test, predicted)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "SMfFWDb8Vs6x"
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "colab": {
   "collapsed_sections": [],
   "name": "Time-Series with Deep Learning",
   "provenance": []
  },
  "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": 4
}


================================================
FILE: chapter10/passengers.csv
================================================
date,passengers
1949-01-31,112.0
1949-02-28,118.0
1949-03-31,132.0
1949-04-30,129.0
1949-05-31,121.0
1949-06-30,135.0
1949-07-31,148.0
1949-08-31,148.0
1949-09-30,136.0
1949-10-31,119.0
1949-11-30,104.0
1949-12-31,118.0
1950-01-31,115.0
1950-02-28,126.0
1950-03-31,141.0
1950-04-30,135.0
1950-05-31,125.0
1950-06-30,149.0
1950-07-31,170.0
1950-08-31,170.0
1950-09-30,158.0
1950-10-31,133.0
1950-11-30,114.0
1950-12-31,140.0
1951-01-31,145.0
1951-02-28,150.0
1951-03-31,178.0
1951-04-30,163.0
1951-05-31,172.0
1951-06-30,178.0
1951-07-31,199.0
1951-08-31,199.0
1951-09-30,184.0
1951-10-31,162.0
1951-11-30,146.0
1951-12-31,166.0
1952-01-31,171.0
1952-02-29,180.0
1952-03-31,193.0
1952-04-30,181.0
1952-05-31,183.0
1952-06-30,218.0
1952-07-31,230.0
1952-08-31,242.0
1952-09-30,209.0
1952-10-31,191.0
1952-11-30,172.0
1952-12-31,194.0
1953-01-31,196.0
1953-02-28,196.0
1953-03-31,236.0
1953-04-30,235.0
1953-05-31,229.0
1953-06-30,243.0
1953-07-31,264.0
1953-08-31,272.0
1953-09-30,237.0
1953-10-31,211.0
1953-11-30,180.0
1953-12-31,201.0
1954-01-31,204.0
1954-02-28,188.0
1954-03-31,235.0
1954-04-30,227.0
1954-05-31,234.0
1954-06-30,264.0
1954-07-31,302.0
1954-08-31,293.0
1954-09-30,259.0
1954-10-31,229.0
1954-11-30,203.0
1954-12-31,229.0
1955-01-31,242.0
1955-02-28,233.0
1955-03-31,267.0
1955-04-30,269.0
1955-05-31,270.0
1955-06-30,315.0
1955-07-31,364.0
1955-08-31,347.0
1955-09-30,312.0
1955-10-31,274.0
1955-11-30,237.0
1955-12-31,278.0
1956-01-31,284.0
1956-02-29,277.0
1956-03-31,317.0
1956-04-30,313.0
1956-05-31,318.0
1956-06-30,374.0
1956-07-31,413.0
1956-08-31,405.0
1956-09-30,355.0
1956-10-31,306.0
1956-11-30,271.0
1956-12-31,306.0
1957-01-31,315.0
1957-02-28,301.0
1957-03-31,356.0
1957-04-30,348.0
1957-05-31,355.0
1957-06-30,422.0
1957-07-31,465.0
1957-08-31,467.0
1957-09-30,404.0
1957-10-31,347.0
1957-11-30,305.0
1957-12-31,336.0
1958-01-31,340.0
1958-02-28,318.0
1958-03-31,362.0
1958-04-30,348.0
1958-05-31,363.0
1958-06-30,435.0
1958-07-31,491.0
1958-08-31,505.0
1958-09-30,404.0
1958-10-31,359.0
1958-11-30,310.0
1958-12-31,337.0
1959-01-31,360.0
1959-02-28,342.0
1959-03-31,406.0
1959-04-30,396.0
1959-05-31,420.0
1959-06-30,472.0
1959-07-31,548.0
1959-08-31,559.0
1959-09-30,463.0
1959-10-31,407.0
1959-11-30,362.0
1959-12-31,405.0
1960-01-31,417.0
1960-02-29,391.0
1960-03-31,419.0
1960-04-30,461.0
1960-05-31,472.0
1960-06-30,535.0
1960-07-31,622.0
1960-08-31,606.0
1960-09-30,508.0
1960-10-31,461.0
1960-11-30,390.0
1960-12-31,432.0


================================================
FILE: chapter11/Ranking_with_Bandits.ipynb
================================================
{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "708ef2ed-176f-42e3-a47a-bcc324221daa",
   "metadata": {},
   "source": [
    "<a href=\"https://colab.research.google.com/github/PacktPublishing/Machine-Learning-for-Time-Series-with-Python/blob/master/chapter11/Ranking_with_Bandits.ipynb\" target=\"_parent\\\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "55093d0c-238e-4ac3-ad08-2fe7ff52ca13",
   "metadata": {},
   "source": [
    "After https://github.com/Kenza-AI/mab-ranking/blob/master/examples/jester/example.ipynb"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "c5fcc1c0-2e0c-48b3-9f10-5263e1f7ae33",
   "metadata": {},
   "outputs": [],
   "source": [
    "URL = 'https://raw.githubusercontent.com/PacktPublishing/Machine-Learning-for-Time-Series-with-Python/main/chapter11/jesterfinal151cols.csv'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "533e06c6-62dd-48f7-be50-3356666d364b",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "jester_data = pd.read_csv(URL, header=None)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a9a7e5a7-bdfa-4a11-ad83-f319735b44cc",
   "metadata": {},
   "outputs": [],
   "source": [
    "# jester_data.columns = [f\"joke_{col}\" for col in jester_data.columns]\n",
    "jester_data.index.name = \"users\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7490c980-6f0f-453f-8b02-8ca5f101aecb",
   "metadata": {},
   "outputs": [],
   "source": [
    "jester_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5990c5cc-66ce-482c-b7f4-1f4911470d6e",
   "metadata": {},
   "outputs": [],
   "source": [
    "for col in jester_data.columns:\n",
    "    jester_data[col] = jester_data[col].apply(lambda x: 0.0 if x>=99 or x<7.0 else 1.0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f4b220de-0657-4e4f-a01f-33c879a20aa5",
   "metadata": {},
   "outputs": [],
   "source": [
    "jester_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "578d30fa-7e4f-41a9-bbdd-86c1f3898fbe",
   "metadata": {},
   "outputs": [],
   "source": [
    "# keep users with at least one rating for a joke\n",
    "jester_data = jester_data[jester_data.sum(axis=1) > 0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9432df2f-4500-46c7-a47c-1a1f0e592b38",
   "metadata": {},
   "outputs": [],
   "source": [
    "jester_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "85cf3f6c-c823-4883-b250-8bf7a7c2cf3e",
   "metadata": {},
   "outputs": [],
   "source": [
    "pip install git+https://github.com/benman1/mab-ranking"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f5302c81-3478-4ac3-b1f9-96f721f75515",
   "metadata": {},
   "outputs": [],
   "source": [
    "# setting up the bandits:\n",
    "from mab_ranking.bandits.rank_bandits import IndependentBandits\n",
    "from mab_ranking.bandits.bandits import BetaThompsonSampling, DirichletThompsonSampling\n",
    "\n",
    "independent_bandits = IndependentBandits(\n",
    "    num_arms=jester_data.shape[1],\n",
    "    num_ranks=10,\n",
    "    bandit_class=DirichletThompsonSampling\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "329ba955-7490-402a-a007-428121d130f4",
   "metadata": {},
   "outputs": [],
   "source": [
    "from tqdm import trange\n",
    "\n",
    "num_steps = 7000\n",
    "hit_rates = []\n",
    "for _ in trange(1, num_steps + 1):\n",
    "    selected_items = set(independent_bandits.choose())\n",
    "    # Pick a users choices at random\n",
    "    random_user = jester_data.sample().iloc[0, :]\n",
    "    ground_truth = set(random_user[random_user == 1].index)\n",
    "    hit_rate = len(ground_truth.intersection(selected_items)) / len(ground_truth)\n",
    "    feedback_list = [1.0 if item in ground_truth else 0.0 for item in selected_items]\n",
    "    independent_bandits.update(selected_items, feedback_list)\n",
    "    hit_rates.append(hit_rate)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6c1acf3d-b2ca-4f00-9b22-3d703c22713a",
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "stats = pd.Series(hit_rates)\n",
    "plt.figure(figsize=(12, 6))\n",
    "plt.plot(stats.index, stats.rolling(200).mean(), \"--\")\n",
    "plt.xlabel('Iteration')\n",
    "plt.ylabel('Hit rate')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d1535111-fa30-45b1-b723-5bfaa24eba8e",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.cluster import KMeans\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "scaler = StandardScaler().fit(jester_data)\n",
    "kmeans = KMeans(n_clusters=5, random_state=0).fit(scaler.transform(jester_data))\n",
    "contexts = pd.Series(kmeans.labels_, index=jester_data.index)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ac755bbe-306e-4086-a24f-a8ef55792287",
   "metadata": {},
   "outputs": [],
   "source": [
    "contexts.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "128d0fe1-5edb-47e1-aeab-62531a620a56",
   "metadata": {},
   "outputs": [],
   "source": [
    "independent_bandits = IndependentBandits(\n",
    "    num_arms=jester_data.shape[1],\n",
    "    num_ranks=10,\n",
    "    bandit_class=DirichletThompsonSampling\n",
    ")\n",
    "\n",
    "num_steps = 7000\n",
    "hit_rates = []\n",
    "for _ in trange(1, num_steps + 1):\n",
    "    # Pick a users choices at random\n",
    "    random_user = jester_data.sample().iloc[0, :]\n",
    "    context = {\"previous_action\": contexts.loc[random_user.name]}\n",
    "    selected_items = set(independent_bandits.choose(\n",
    "        context=context\n",
    "    ))\n",
    "    ground_truth = set(random_user[random_user == 1].index)\n",
    "    hit_rate = len(ground_truth.intersection(selected_items)) / len(ground_truth)\n",
    "    feedback_list = [1.0 if item in ground_truth else 0.0 for item in selected_items]\n",
    "    independent_bandits.update(selected_items, feedback_list, context=context)\n",
    "    hit_rates.append(hit_rate)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "daefac60-eba6-4429-8a33-067c26483402",
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "stats = pd.Series(hit_rates)\n",
    "plt.figure(figsize=(12, 6))\n",
    "plt.plot(stats.index, stats.rolling(200).mean(), \"--\")\n",
    "plt.xlabel('Iteration')\n",
    "plt.ylabel('Hit rate')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "016e11fb-b2e7-4705-8aae-251468762bc4",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "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
}


================================================
FILE: chapter11/Trading_with_DQN.ipynb
================================================
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a href=\"https://colab.research.google.com/github/PacktPublishing/Machine-Learning-for-Time-Series-with-Python/blob/master/chapter11/Trading_with_DQN.ipynb\" target=\"_parent\\\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "P6xXgYonWE8n"
   },
   "outputs": [],
   "source": [
    "# based on https://github.com/tensortrade-org/tensortrade/blob/master/examples/train_and_evaluate.ipynb"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "hp1Fk0dGJXpT",
    "outputId": "c7215ab3-26d0-45a9-8c47-6973f527ace6"
   },
   "outputs": [],
   "source": [
    "pip install git+https://github.com/tensortrade-org/tensortrade.git"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "UkrQ9KU3JXpU"
   },
   "outputs": [],
   "source": [
    "# all imports:\n",
    "import pandas as pd\n",
    "import tensortrade.env.default as default\n",
    "\n",
    "from tensortrade.data.cdd import CryptoDataDownload\n",
    "from tensortrade.feed.core import Stream, DataFeed\n",
    "from tensortrade.oms.exchanges import Exchange\n",
    "from tensortrade.oms.services.execution.simulated import execute_order\n",
    "from tensortrade.oms.instruments import USD, BTC, ETH\n",
    "from tensortrade.oms.wallets import Wallet, Portfolio\n",
    "from tensortrade.agents import DQNAgent\n",
    "\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "QpPq3bKwJXpU"
   },
   "outputs": [],
   "source": [
    "cdd = CryptoDataDownload()\n",
    "\n",
    "data = cdd.fetch(\"Bitstamp\", \"USD\", \"BTC\", \"1h\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 204
    },
    "id": "yepqF5x7JXpV",
    "outputId": "166d22d5-e050-4f44-9b27-96d5c4f7b6e1"
   },
   "outputs": [],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "8PVhnDBvJXpW"
   },
   "outputs": [],
   "source": [
    "# we'll create a couple of indicators:\n",
    "def rsi(price: Stream[float], period: float) -> Stream[float]:\n",
    "    r = price.diff()\n",
    "    upside = r.clamp_min(0).abs()\n",
    "    downside = r.clamp_max(0).abs()\n",
    "    rs = upside.ewm(alpha=1 / period).mean() / downside.ewm(alpha=1 / period).mean()\n",
    "    return 100*(1 - (1 + rs) ** -1)\n",
    "\n",
    "\n",
    "def macd(price: Stream[float], fast: float, slow: float, signal: float) -> Stream[float]:\n",
    "    fm = price.ewm(span=fast, adjust=False).mean()\n",
    "    sm = price.ewm(span=slow, adjust=False).mean()\n",
    "    md = fm - sm\n",
    "    signal = md - md.ewm(span=signal, adjust=False).mean()\n",
    "    return signal## Create features with the feed module"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# choosing the closing price:\n",
    "features = []\n",
    "for c in data.columns[1:]:\n",
    "    s = Stream.source(list(data[c]), dtype=\"float\").rename(data[c].name)\n",
    "    features += [s]\n",
    "\n",
    "cp = Stream.select(features, lambda s: s.name == \"close\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "hYjM8JoJJXpW"
   },
   "outputs": [],
   "source": [
    "# adding the three features (trend indicator, RSI, MACD):\n",
    "features = [\n",
    "    cp.log().diff().rename(\"lr\"),\n",
    "    rsi(cp, period=20).rename(\"rsi\"),\n",
    "    macd(cp, fast=10, slow=50, signal=5).rename(\"macd\")\n",
    "]\n",
    "\n",
    "feed = DataFeed(features)\n",
    "feed.compile()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "uqXBeRwrJXpX",
    "outputId": "69b29f71-03e6-4c70-a6e3-3d8aa3b23717"
   },
   "outputs": [],
   "source": [
    "for i in range(5):\n",
    "    print(feed.next())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# setting up broker and the portfolio:\n",
    "bitstamp = Exchange(\"bitstamp\", service=execute_order)(\n",
    "    Stream.source(list(data[\"close\"]), dtype=\"float\").rename(\"USD-BTC\")\n",
    ")\n",
    "\n",
    "portfolio = Portfolio(USD, [\n",
    "    Wallet(bitstamp, 10000 * USD),\n",
    "    Wallet(bitstamp, 10 * BTC)\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# renderer:\n",
    "renderer_feed = DataFeed([\n",
    "    Stream.source(list(data[\"date\"])).rename(\"date\"),\n",
    "    Stream.source(list(data[\"open\"]), dtype=\"float\").rename(\"open\"),\n",
    "    Stream.source(list(data[\"high\"]), dtype=\"float\").rename(\"high\"),\n",
    "    Stream.source(list(data[\"low\"]), dtype=\"float\").rename(\"low\"),\n",
    "    Stream.source(list(data[\"close\"]), dtype=\"float\").rename(\"close\"), \n",
    "    Stream.source(list(data[\"volume\"]), dtype=\"float\").rename(\"volume\") \n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "IzWYGEyZJXpY"
   },
   "outputs": [],
   "source": [
    "# the trading environment:\n",
    "env = default.create(\n",
    "    portfolio=portfolio,\n",
    "    action_scheme=\"managed-risk\",\n",
    "    reward_scheme=\"risk-adjusted\",\n",
    "    feed=feed,\n",
    "    renderer_feed=renderer_feed,\n",
    "    renderer=default.renderers.PlotlyTradingChart(),\n",
    "    window_size=20\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "hYUd95vjJXpY",
    "outputId": "45d3f699-abe3-49d4-fd87-d7bba3e953f9"
   },
   "outputs": [],
   "source": [
    "env.observer.feed.next()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 1000,
     "referenced_widgets": [
      "9bcf0bbf1c1c49859a2dfa40acce1038"
     ]
    },
    "id": "YoxUET9ZJXpZ",
    "outputId": "a7672ac6-9c9c-42ff-b9d3-8a128fd882ae"
   },
   "outputs": [],
   "source": [
    "# training a DQN trading agent\n",
    "agent = DQNAgent(env)\n",
    "\n",
    "agent.train(n_steps=200, n_episodes=2, save_path=\"agents/\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 282
    },
    "id": "dtoYz5bOKGdo",
    "outputId": "fc4372f2-1d3f-4072-e452-2d91d41a2abe"
   },
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "performance = pd.DataFrame.from_dict(env.action_scheme.portfolio.performance, orient='index')\n",
    "performance.plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 282
    },
    "id": "URT6-E9wVtIt",
    "outputId": "0b293bc2-46a6-4031-ea0c-9c8415f60d77"
   },
   "outputs": [],
   "source": [
    "performance[\"net_worth\"].plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "GymCxiqfV0VM"
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "colab": {
   "collapsed_sections": [],
   "name": "train_and_evaluate.ipynb",
   "provenance": []
  },
  "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": 4
}


================================================
FILE: chapter11/jesterfinal151cols.csv
================================================
[File too large to display: 29.0 MB]

================================================
FILE: chapter12/Energy_Demand_Forecasting.ipynb
================================================
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "279is_shbEvW"
   },
   "source": []
  },
  {
   "cell_type": "markdown",
   "source": [
    "Machine learning models for energy demand forecasting"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "**Loading the dataset**"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "jqOmRffYUAe0"
   },
   "source": [
    "New England as used in the 2017 Global Energy Forecasting Competition (GEFCom2017) as available from Cameron Roach's repository at Github: https://github.com/camroach87/gefcom2017data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "cJPMqVK5UQiA",
    "outputId": "2b3ac826-dd9d-484e-a96f-4c8f707f8173"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Requirement already satisfied: pyreadr in /opt/anaconda3/lib/python3.8/site-packages (0.4.2)\n",
      "Requirement already satisfied: pandas>0.24.0 in /opt/anaconda3/lib/python3.8/site-packages (from pyreadr) (1.2.4)\n",
      "Requirement already satisfied: python-dateutil>=2.7.3 in /opt/anaconda3/lib/python3.8/site-packages (from pandas>0.24.0->pyreadr) (2.8.1)\n",
      "Requirement already satisfied: pytz>=2017.3 in /opt/anaconda3/lib/python3.8/site-packages (from pandas>0.24.0->pyreadr) (2021.1)\n",
      "Requirement already satisfied: numpy>=1.16.5 in /opt/anaconda3/lib/python3.8/site-packages (from pandas>0.24.0->pyreadr) (1.19.5)\n",
      "Requirement already satisfied: six>=1.5 in /opt/anaconda3/lib/python3.8/site-packages (from python-dateutil>=2.7.3->pandas>0.24.0->pyreadr) (1.15.0)\n",
      "Note: you may need to restart the kernel to use updated packages.\n"
     ]
    }
   ],
   "source": [
    "!pip install pyreadr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "Aqd-x3OtUjou",
    "outputId": "9a8aa235-341f-4c36-9fc0-592af63875a4"
   },
   "outputs": [
    {
     "data": {
      "text/plain": "6577272"
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import requests\n",
    "resp = requests.get(\"https://github.com/camroach87/gefcom2017data/raw/master/data/gefcom.rda\", allow_redirects=True)\n",
    "open('gefcom.rda', 'wb').write(resp.content)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "id": "lZ2KQXtMUQvQ"
   },
   "outputs": [],
   "source": [
    "import pyreadr\n",
    "result = pyreadr.read_r('gefcom.rda')\n",
    "df = result[\"gefcom\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 204
    },
    "id": "MAM9FD2xVSyP",
    "outputId": "6f58ea54-14ab-4883-eaec-65fe22d0f1d1"
   },
   "outputs": [
    {
     "data": {
      "text/plain": "                   ts zone  demand  drybulb  dewpnt        date    year month  \\\n0 2003-03-01 00:00:00   CT  3386.0     25.0    19.0  2003-03-01  2003.0   Mar   \n1 2003-03-01 01:00:00   CT  3258.0     23.0    18.0  2003-03-01  2003.0   Mar   \n2 2003-03-01 02:00:00   CT  3189.0     22.0    18.0  2003-03-01  2003.0   Mar   \n3 2003-03-01 03:00:00   CT  3157.0     22.0    19.0  2003-03-01  2003.0   Mar   \n4 2003-03-01 04:00:00   CT  3166.0     23.0    19.0  2003-03-01  2003.0   Mar   \n\n   hour day_of_week  day_of_year  weekend holiday_name  holiday  trend  \n0   1.0         Sat         60.0     True          NaN    False    0.0  \n1   2.0         Sat         60.0     True          NaN    False    1.0  \n2   3.0         Sat         60.0     True          NaN    False    2.0  \n3   4.0         Sat         60.0     True          NaN    False    3.0  \n4   5.0         Sat         60.0     True          NaN    False    4.0  ",
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>ts</th>\n      <th>zone</th>\n      <th>demand</th>\n      <th>drybulb</th>\n      <th>dewpnt</th>\n      <th>date</th>\n      <th>year</th>\n      <th>month</th>\n      <th>hour</th>\n      <th>day_of_week</th>\n      <th>day_of_year</th>\n      <th>weekend</th>\n      <th>holiday_name</th>\n      <th>holiday</th>\n      <th>trend</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>2003-03-01 00:00:00</td>\n      <td>CT</td>\n      <td>3386.0</td>\n      <td>25.0</td>\n      <td>19.0</td>\n      <td>2003-03-01</td>\n      <td>2003.0</td>\n      <td>Mar</td>\n      <td>1.0</td>\n      <td>Sat</td>\n      <td>60.0</td>\n      <td>True</td>\n      <td>NaN</td>\n      <td>False</td>\n      <td>0.0</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>2003-03-01 01:00:00</td>\n      <td>CT</td>\n      <td>3258.0</td>\n      <td>23.0</td>\n      <td>18.0</td>\n      <td>2003-03-01</td>\n      <td>2003.0</td>\n      <td>Mar</td>\n      <td>2.0</td>\n      <td>Sat</td>\n      <td>60.0</td>\n      <td>True</td>\n      <td>NaN</td>\n      <td>False</td>\n      <td>1.0</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>2003-03-01 02:00:00</td>\n      <td>CT</td>\n      <td>3189.0</td>\n      <td>22.0</td>\n      <td>18.0</td>\n      <td>2003-03-01</td>\n      <td>2003.0</td>\n      <td>Mar</td>\n      <td>3.0</td>\n      <td>Sat</td>\n      <td>60.0</td>\n      <td>True</td>\n      <td>NaN</td>\n      <td>False</td>\n      <td>2.0</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>2003-03-01 03:00:00</td>\n      <td>CT</td>\n      <td>3157.0</td>\n      <td>22.0</td>\n      <td>19.0</td>\n      <td>2003-03-01</td>\n      <td>2003.0</td>\n      <td>Mar</td>\n      <td>4.0</td>\n      <td>Sat</td>\n      <td>60.0</td>\n      <td>True</td>\n      <td>NaN</td>\n      <td>False</td>\n      <td>3.0</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>2003-03-01 04:00:00</td>\n      <td>CT</td>\n      <td>3166.0</td>\n      <td>23.0</td>\n      <td>19.0</td>\n      <td>2003-03-01</td>\n      <td>2003.0</td>\n      <td>Mar</td>\n      <td>5.0</td>\n      <td>Sat</td>\n      <td>60.0</td>\n      <td>True</td>\n      <td>NaN</td>\n      <td>False</td>\n      <td>4.0</td>\n    </tr>\n  </tbody>\n</table>\n</div>"
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "I42Z6MUzVfU7",
    "outputId": "97101091-739d-4edc-8d21-b70f033bd0f8"
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array(['CT', 'MASS', 'ME', 'NEMASSBOST', 'NH', 'RI', 'SEMASS', 'TOTAL',\n       'VT', 'WCMASS'], dtype=object)"
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.zone.unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "g0wpsuoUVlGH",
    "outputId": "2a836f0e-de36-4970-cfea-31268228752a"
   },
   "outputs": [
    {
     "data": {
      "text/plain": "dtype('<M8[ns]')"
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.ts.dtypes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 585
    },
    "id": "Rj8nyx58WJC1",
    "outputId": "395a3bd4-7dda-407b-e42a-3eb23b2abcc0"
   },
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 648x576 with 10 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "g = sns.relplot(\n",
    "    data=df,\n",
    "    x=\"ts\", y=\"demand\", col=\"zone\",\n",
    "    kind=\"line\", palette=\"crest\", linewidth=2, zorder=5,\n",
    "    col_wrap=3, height=2, aspect=1.5, legend=False,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 405
    },
    "id": "pEdMruqCWf66",
    "outputId": "5ca14029-5554-4251-d6d5-7e02b9fcd2fa"
   },
   "outputs": [
    {
     "data": {
      "text/plain": "<AxesSubplot:xlabel='ts', ylabel='demand'>"
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/ben/time_series/env/lib/python3.8/site-packages/IPython/core/pylabtools.py:137: UserWarning: Creating legend with loc=\"best\" can be slow with large amounts of data.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 864x432 with 1 Axes>",
      "image/png": "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
Download .txt
gitextract_ecwqxkfi/

├── .gitignore
├── LICENSE
├── README.md
├── chapter10/
│   ├── Causal_CNN.ipynb
│   ├── RNN.ipynb
│   ├── Time_Series_with_Deep_Learning.ipynb
│   └── passengers.csv
├── chapter11/
│   ├── Ranking_with_Bandits.ipynb
│   ├── Trading_with_DQN.ipynb
│   └── jesterfinal151cols.csv
├── chapter12/
│   ├── Energy_Demand_Forecasting.ipynb
│   ├── gaussian_process.ipynb
│   └── test_models.ipynb
├── chapter2/
│   ├── Air Pollution.ipynb
│   ├── EEG Signals.ipynb
│   ├── README.md
│   ├── monthly_csv.csv
│   └── spm.csv
├── chapter3/
│   └── Preprocessing.ipynb
├── chapter5/
│   └── Forecasting.ipynb
├── chapter6/
│   └── Change-Points_Anomalies.ipynb
├── chapter7/
│   ├── KNN_with_dynamic_DTW.ipynb
│   ├── Kats.ipynb
│   ├── Silverkite.ipynb
│   └── XGBoost.ipynb
├── chapter8/
│   ├── Drift_Detection.ipynb
│   └── Online_Learning.ipynb
└── chapter9/
    ├── Causal_Impact_Volkswagen.ipynb
    ├── Fuzzy_time_series_forecasting.ipynb
    ├── Markov_switching_model.ipynb
    └── Prophet_model.ipynb
Copy disabled (too large) Download .json
Condensed preview — 31 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (10,469K chars).
[
  {
    "path": ".gitignore",
    "chars": 29,
    "preview": ".ipynb_checkpoints/\n.DS_Store"
  },
  {
    "path": "LICENSE",
    "chars": 1062,
    "preview": "MIT License\n\nCopyright (c) 2021 Packt\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof t"
  },
  {
    "path": "README.md",
    "chars": 4713,
    "preview": "\n\n---\n\n## Join Our Newsletters 📬\n\n### DataPro  \n*The future of AI is unfolding. Don’t fall behind.*\n\n<p><a href=\"https:/"
  },
  {
    "path": "chapter10/Causal_CNN.ipynb",
    "chars": 7699,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"<a href=\\\"https://colab.research.go"
  },
  {
    "path": "chapter10/RNN.ipynb",
    "chars": 6131,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"<a href=\\\"https://colab.research.go"
  },
  {
    "path": "chapter10/Time_Series_with_Deep_Learning.ipynb",
    "chars": 9548,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"<a href=\\\"https://colab.research.go"
  },
  {
    "path": "chapter10/passengers.csv",
    "chars": 2464,
    "preview": "date,passengers\n1949-01-31,112.0\n1949-02-28,118.0\n1949-03-31,132.0\n1949-04-30,129.0\n1949-05-31,121.0\n1949-06-30,135.0\n19"
  },
  {
    "path": "chapter11/Ranking_with_Bandits.ipynb",
    "chars": 7515,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"708ef2ed-176f-42e3-a47a-bcc324221daa\",\n   \"metadata\": {},\n   \"so"
  },
  {
    "path": "chapter11/Trading_with_DQN.ipynb",
    "chars": 8320,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"<a href=\\\"https://colab.research.go"
  },
  {
    "path": "chapter12/Energy_Demand_Forecasting.ipynb",
    "chars": 446294,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"279is_shbEvW\"\n   },\n   \"source\": []\n  },\n  {\n "
  },
  {
    "path": "chapter12/gaussian_process.ipynb",
    "chars": 136861,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"fd7a4738-8476-45aa-951a-b79bed1ed9a6\",\n   \"metadata\": {},\n   \"so"
  },
  {
    "path": "chapter12/test_models.ipynb",
    "chars": 5562995,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"fd7a4738-8476-45aa-951a-b79bed1ed9a6\",\n   \"metadata\": {},\n   \"so"
  },
  {
    "path": "chapter2/Air Pollution.ipynb",
    "chars": 158871,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"<a href=\\\"https://colab.research.go"
  },
  {
    "path": "chapter2/EEG Signals.ipynb",
    "chars": 401064,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"<a href=\\\"https://colab.research.go"
  },
  {
    "path": "chapter2/README.md",
    "chars": 331,
    "preview": "# Chapter 2 - Time-Series Analysis with Python\n\nThe CSV file `spm.csv` was downloaded from the [Our World in Data github"
  },
  {
    "path": "chapter2/monthly_csv.csv",
    "chars": 82182,
    "preview": "Source,Date,Mean\r\nGCAG,2016-12-06,0.7895\r\nGISTEMP,2016-12-06,0.81\r\nGCAG,2016-11-06,0.7504\r\nGISTEMP,2016-11-06,0.93\r\nGCAG"
  },
  {
    "path": "chapter2/spm.csv",
    "chars": 10831,
    "preview": "Entity,Year,Smoke (Fouquet and DPCC (2011)),Suspended Particulate Matter (SPM) (Fouquet and DPCC (2011))\nDelhi,1997,,363"
  },
  {
    "path": "chapter3/Preprocessing.ipynb",
    "chars": 16468,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"6a06a10a-ee82-40ce-8821-3da680af4b95\",\n   \"metadata\": {},\n   \"so"
  },
  {
    "path": "chapter5/Forecasting.ipynb",
    "chars": 10196,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"6a06a10a-ee82-40ce-8821-3da680af4b95\",\n   \"metadata\": {},\n   \"so"
  },
  {
    "path": "chapter6/Change-Points_Anomalies.ipynb",
    "chars": 4564,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"<a href=\\\"https://colab.research.go"
  },
  {
    "path": "chapter7/KNN_with_dynamic_DTW.ipynb",
    "chars": 6308,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"<a href=\\\"https://colab.research.go"
  },
  {
    "path": "chapter7/Kats.ipynb",
    "chars": 5636,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"7ea3881f-ddfc-475b-bfa9-bb46456ffee4\",\n   \"metadata\": {},\n   \"so"
  },
  {
    "path": "chapter7/Silverkite.ipynb",
    "chars": 6603,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"<a href=\\\"https://colab.research.go"
  },
  {
    "path": "chapter7/XGBoost.ipynb",
    "chars": 10360,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"<a href=\\\"https://colab.research.go"
  },
  {
    "path": "chapter8/Drift_Detection.ipynb",
    "chars": 3856,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"6d73980e-a0c4-4163-8819-1d70e60c8454\",\n   \"metadata\": {},\n   \"so"
  },
  {
    "path": "chapter8/Online_Learning.ipynb",
    "chars": 7733,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"6d0ec63d-ef95-48fa-b83d-eef4e02733e0\",\n   \"metadata\": {},\n   \"so"
  },
  {
    "path": "chapter9/Causal_Impact_Volkswagen.ipynb",
    "chars": 283016,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"<a href=\\\"https://colab.research.go"
  },
  {
    "path": "chapter9/Fuzzy_time_series_forecasting.ipynb",
    "chars": 297450,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"<a href=\\\"https://colab.research.go"
  },
  {
    "path": "chapter9/Markov_switching_model.ipynb",
    "chars": 200705,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"62a64814-3642-4320-bcd4-f7b9703afecb\",\n   \"metadata\": {},\n   \"so"
  },
  {
    "path": "chapter9/Prophet_model.ipynb",
    "chars": 106403,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"<a href=\\\"https://colab.research.go"
  }
]

// ... and 1 more files (download for full content)

About this extraction

This page contains the full source code of the PacktPublishing/Machine-Learning-for-Time-Series-with-Python GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 31 files (36.5 MB), approximately 2.0M tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!