• Stars
    star
    428
  • Rank 101,481 (Top 2 %)
  • Language
    Jupyter Notebook
  • License
    MIT License
  • Created over 3 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Modern Time Series Forecasting with Python, published by Packt

Modern Time Series Forecasting with Python

Modern Time Series Forecasting with Python

This is the code repository for Modern Time Series Forecasting with Python, published by Packt.

Explore industry-ready time series forecasting using modern machine learning and deep learning

What is this book about?

We live in a serendipitous era where the explosion in the quantum of data collected and a renewed interest in data-driven techniques such as machine learning (ML), has changed the landscape of analytics, and with it, time series forecasting. This book, filled with industry-tested tips and tricks, takes you beyond commonly used classical statistical methods such as ARIMA and introduces to you the latest techniques from the world of ML.

This book covers the following exciting features:

  • Find out how to manipulate and visualize time series data like a pro
  • Set strong baselines with popular models such as ARIMA
  • Discover how time series forecasting can be cast as regression
  • Engineer features for machine learning models for forecasting
  • Explore the exciting world of ensembling and stacking models
  • Get to grips with the global forecasting paradigm
  • Understand and apply state-of-the-art DL models such as N-BEATS and Autoformer
  • Explore multi-step forecasting and cross-validation strategies

If you feel this book is for you, get your copy today!

https://www.packtpub.com/

Instructions and Navigations

All of the code is organized into folders.

The code will look like the following:

#Does not support missing values, so using imputed ts instead
res = seasonal_decompose(ts, period=7*48, model="additive",
extrapolate_trend="freq")

Following is what you need for this book: The book is for data scientists, data analysts, machine learning engineers, and Python developers who want to build industry-ready time series models. Since the book explains most concepts from the ground up, basic proficiency in Python is all you need. Prior understanding of machine learning or forecasting will help speed up your learning. For experienced machine learning and forecasting practitioners, this book has a lot to offer in terms of advanced techniques and traversing the latest research frontiers in time series forecasting.

Setup the environment

The easiest way to setup the environment is by using Anaconda, a distribution of Python for scientific computing. You can use Miniconda, a minimal installer for conda as well if you do not want the pre-installed packages that come with Anaconda.

  1. Install Anaconda/Miniconda: Anaconda can be installed from https://www.anaconda.com/products/distribution. Depending on your operating system choose the corresponding file and follow instructions. Or you can install Miniconda from here: https://docs.conda.io/en/latest/miniconda.html#latest-miniconda-installer-links.
  2. Open conda prompt: To open Anaconda Prompt (or terminal on Linux or macOS):
    1. Windows: Open the Anaconda Prompt (Start >> Anaconda Prompt)
    2. macOS: Open Launchpad and then open Terminal. Type conda activate
    3. Linux: Open Terminal. Type conda activate
  3. Navigate to the downloaded code: Use operating system specific commands to navigate to the folder where you have downloaded the code. For instance, in Windows, use cd.
  4. Install the environment: Using the anaconda_env.yml file that is included install the environment. conda env create -f anaconda_env.yml This creates a new environment under the name, modern_ts, and will install all the required libraries in the environment. This can take a while.
  5. Checking the installation: We can check if all the libraries required for the book is installed properly by executing a script in the downloaded code folder python test_installation.py
  6. Activating the environment and Running Notebooks: Every time you want to run the notebooks, first activate the environment using the command conda activate modern_ts and then use Jupyter Notebook (jupyter notebook) or Jupyter Lab (jupyter lab) according to your preference.

If anaconda installation stalls

Sometimes the anaconda installation can stall at Solving Environment. This is because anaconda can sometimes be really slow at resolving package dependencies. We can get around this by using Mamba.

Mamba is a fast, robust, and cross-platform package manager.

It runs on Windows, OS X and Linux (ARM64 and PPC64LE included) and is fully compatible with conda packages and supports most of condaโ€™s commands.

All we need to do is:

  1. Install mamba - conda install mamba -n base -c conda-forge
  2. Instead of using conda, use mamba to install the environment - mamba env create -f anaconda_env.yml

Special Instructions for MacOS

If the installation doesn't work for MacOS, please try the following:

  1. In anaconda_env.yml, change the line python-kaleido==0.1.0 to python-kaleido>=0.1.0
  2. In anaconda_env.yml, change the line statsforecast==0.6.0 to statsforecast>=0.6.0

Now, try installing the environment again. If this doesn't work, please raise an issue on the GitHub repo.

Download the Data

You are going to be using a single dataset throughout the book. The book uses London Smart Meters Dataset from Kaggle for this purpose. Therefore, if you donโ€™t have an account with Kaggle, please go ahead and make one. https://www.kaggle.com/account/login?phase=startRegisterTab There are two ways you can download the data- automated and manual. For the automated way, we need to download a key from Kaggle. Letโ€™s do that first (if you are going to choose the manual way, you can skip this).

  1. Click on your profile picture on the top right corner of Kaggle
  2. Select "Accountโ€, and find the section for โ€œAPIโ€
  3. Click the โ€œCreate New API Tokenโ€ button. A file by the name kaggle.json will be downloaded.
  4. Copy the file and place it in the api_keys folder in the downloaded code folder. Now that we have the kaggle.json downloaded and placed in the right folder, letโ€™s look at the three methods to download data:

Method 1: Automated Download

  1. Activate the environment using conda activate modern_ts
  2. Run the provided script from the root directory of downloaded code python scripts/download_data.py Thatโ€™s it. Now just wait for the script to finish downloading, unzipping and organize the files in the expected format.

Method 2: Manual Download

  1. Go to https://www.kaggle.com/jeanmidev/smart-meters-in-london and download the dataset
  2. Unzip the contents to data/london_smart_meters
  3. Unzip hhblock_dataset to get the raw files we want to work with.
  4. Make sure the unzipped files are in the expected folder structure (next section) Now that you have downloaded the data, we need to make sure it is arranged in the below folder structure. Automated Download does it automatically, but for Manual Download this structure needs to be created. To avoid ambiguity, the expected folder structure can be found below:
data
โ”œโ”€โ”€ london_smart_meters
โ”‚   โ”œโ”€โ”€ hhblock_dataset
โ”‚   โ”‚   โ”œโ”€โ”€ hhblock_dataset
โ”‚   โ”‚       โ”œโ”€โ”€ block_0.csv
โ”‚   โ”‚       โ”œโ”€โ”€ block_1.csv
โ”‚   โ”‚       โ”œโ”€โ”€ ...
โ”‚   โ”‚       โ”œโ”€โ”€ block_109.csv
โ”‚   โ”‚โ”€โ”€ acorn_details.csv
โ”‚   โ”œโ”€โ”€ informations_households.csv
โ”‚   โ”œโ”€โ”€ uk_bank_holidays.csv
โ”‚   โ”œโ”€โ”€ weather_daily_darksky.csv
โ”‚   โ”œโ”€โ”€ weather_hourly_darksky.csv

There can be additional files as part of the extraction process. You can remove them without impacting anything. There is a helpful script which checks this structure. python test_data_download.py

Blocks vs RAM

Number of blocks to select from the dataset is dependent on how much RAM you have in your machine. Although, these are not rules, but rough guidelines on how much blocks to choose based on your RAM is given below. If you still face problems, please experiment with lowering the number of blocks to make it work better for you.

  • 1 or <1 Block for 4GB RAM
  • 1 or 2 Blocks for 8GB RAM
  • 3 Blocks for 16GB RAM
  • 5 Blocks for 32GB RAM

We also provide a PDF file that has color images of the screenshots/diagrams used in this book. Click here to download it.

Related products

Get to Know the Author

Manu Joseph is a self-made data scientist with more than a decade of experience working with many Fortune 500 companies, enabling digital and AI transformations, specifically in machine learningbased demand forecasting. He is considered an expert, thought leader, and strong voice in the world of time series forecasting. Currently, Manu leads applied research at Thoucentric, where he advances research by bringing cutting-edge AI technologies to the industry. He is also an active open source contributor and has developed an open source libraryโ€”PyTorch Tabularโ€”which makes deep learning for tabular data easy and accessible. Originally from Thiruvananthapuram, India, Manu currently resides in Bengaluru, India, with his wife and son.

Download a free PDF

If you have already purchased a print or Kindle version of this book, you can get a DRM-free PDF version at no cost.
Simply click on the link to claim your free PDF.

https://packt.link/free-ebook/9781803246802

More Repositories

1

Deep-Reinforcement-Learning-Hands-On

Hands-on Deep Reinforcement Learning, published by Packt
Python
2,831
star
2

The-Kaggle-Book

Code Repository for The Kaggle Book, Published by Packt Publishing
Jupyter Notebook
2,144
star
3

Advanced-Deep-Learning-with-Keras

Advanced Deep Learning with Keras, published by Packt
Python
1,790
star
4

Hands-On-Machine-Learning-for-Algorithmic-Trading

Hands-On Machine Learning for Algorithmic Trading, published by Packt
Jupyter Notebook
1,424
star
5

Machine-Learning-for-Algorithmic-Trading-Second-Edition_Original

Machine Learning for Algorithmic Trading, Second Edition - published by Packt
Jupyter Notebook
1,207
star
6

Node.js-Design-Patterns-Third-Edition

Node.js Design Patterns Third Edition, published by Packt
JavaScript
1,162
star
7

Deep-Reinforcement-Learning-Hands-On-Second-Edition

Deep-Reinforcement-Learning-Hands-On-Second-Edition, published by Packt
Jupyter Notebook
1,122
star
8

Deep-Learning-with-Keras

Code repository for Deep Learning with Keras published by Packt
Jupyter Notebook
1,047
star
9

Learning-JavaScript-Data-Structures-and-Algorithms-Third-Edition

Learning JavaScript Data Structures and Algorithms (Third Edition), published by Packt
JavaScript
1,037
star
10

Learn-CUDA-Programming

Learn CUDA Programming, published by Packt
Cuda
975
star
11

40-Algorithms-Every-Programmer-Should-Know

40 Algorithms Every Programmer Should Know, published by Packt
Python
949
star
12

3D-Graphics-Rendering-Cookbook

3D Graphics Rendering Cookbook, published by Packt.
C++
847
star
13

Vulkan-Cookbook

Code repository for Vulkan Cookbook by Packt
C++
823
star
14

Linux-Kernel-Programming

Linux Kernel Programming, published by Packt
Makefile
819
star
15

Django-4-by-example

Django 4 by example (4th Edition) published by Packt
Python
800
star
16

Learn-Algorithmic-Trading

Learn Algorithmic Trading, Published by Packt
Python
793
star
17

Causal-Inference-and-Discovery-in-Python

Causal Inference and Discovery in Python by Packt Publishing
Jupyter Notebook
734
star
18

Django-3-by-Example

Django 3 by Example (3rd Edition) published by Packt
Python
715
star
19

Python-for-Finance-Cookbook

Python for Finance Cookbook, published by Packt
Jupyter Notebook
709
star
20

Node.js_Design_Patterns_Second_Edition_Code

Code repository for Node.js Design Patterns Second Edition, published by Packt
JavaScript
706
star
21

Modern-Computer-Vision-with-PyTorch

Modern Computer Vision with PyTorch, published by Packt
Jupyter Notebook
704
star
22

Hands-On-Graph-Neural-Networks-Using-Python

Hands-On Graph Neural Networks Using Python, published by Packt
Jupyter Notebook
690
star
23

Hands-on-Exploratory-Data-Analysis-with-Python

Hands-on Exploratory Data Analysis with Python, published by Packt
Jupyter Notebook
676
star
24

Hands-On-Domain-Driven-Design-with-.NET-Core

Hands-On Domain-Driven Design with .NET Core, published by Packt
C#
636
star
25

Pandas-Cookbook

Pandas Cookbook, published by Packt
Jupyter Notebook
623
star
26

Java-Coding-Problems

Java Coding Problems, published by Packt
Java
615
star
27

Data-Engineering-with-Python

Data Engineering with Python, published by Packt
Python
613
star
28

Learn-Data-Structures-and-Algorithms-with-Golang

Learn Data Structures and Algorithms with Golang, published by Packt
Go
604
star
29

Learning-OpenCV-4-Computer-Vision-with-Python-Third-Edition

Learning OpenCV 4 Computer Vision with Python 3 โ€“ Third Edition, published by Packt
Python
593
star
30

Hands-On-GPU-Accelerated-Computer-Vision-with-OpenCV-and-CUDA

Hands-On GPU Accelerated Computer Vision with OpenCV and CUDA, published by Packt
C++
593
star
31

Mastering-Embedded-Linux-Programming-Third-Edition

Mastering Embedded Linux Programming Third Edition, published by Packt
C
572
star
32

Django-2-by-Example

Django 2 by Example (2nd Edition) published by Packt
Python
567
star
33

TensorFlow-Machine-Learning-Cookbook

Code repository for TensorFlow Machine Learning Cookbook by Packt
Python
552
star
34

Transformers-for-Natural-Language-Processing

Transformers for Natural Language Processing, published by Packt
Jupyter Notebook
547
star
35

Clean-Code-in-Python

Clean Code in Python, published by Packt
Python
541
star
36

Mastering-Graphics-Programming-with-Vulkan

C++
539
star
37

Mastering-OpenCV-4-Third-Edition

Mastering OpenCV 4, Third Edition, published by Packt publishing
Assembly
531
star
38

Cpp17-STL-Cookbook

Code files by Packt
C++
524
star
39

Hands-On-Data-Structures-and-Algorithms-with-Rust

Hands-On Data Structures and Algorithms with Rust, published by Packt
Rust
504
star
40

Software-Architecture-with-Cpp

Software Architecture with C++, published by Packt
C++
493
star
41

Getting-Started-with-TensorFlow

Getting Started with TensorFlow, published by Packt
Python
491
star
42

Linux-Device-Drivers-Development

Linux Device Drivers Development, published by Packt
C
482
star
43

Python-Machine-Learning-Second-Edition

Python Machine Learning - Second Edition, published by Packt
Jupyter Notebook
477
star
44

Modern-CMake-for-Cpp

Modern CMake for C++, published by Packt
Dockerfile
472
star
45

Learn-LLVM-12

Learn LLVM 12, published by Packt
C++
471
star
46

Python-3-Object-Oriented-Programming-Third-Edition

Python 3 Object-Oriented Programming โ€“ Third Edition, published by Packt
Python
469
star
47

Full-Stack-React-Projects-Second-Edition

Full-Stack React Projects - Second Edition, published by Packt
JavaScript
463
star
48

Hands-On-Microservices-with-Spring-Boot-and-Spring-Cloud

Hands-On Microservices with Spring Boot and Spring Cloud, published by Packt
Java
459
star
49

Python-Feature-Engineering-Cookbook

Python Feature Engineering Cookbook, published by Packt
Jupyter Notebook
458
star
50

Deep-Learning-with-PyTorch

Deep Learning with PyTorch, published by Packt
Jupyter Notebook
451
star
51

Interpretable-Machine-Learning-with-Python

Interpretable Machine Learning with Python, published by Packt
Jupyter Notebook
439
star
52

Mastering-Python-for-Finance-Second-Edition

Mastering Python for Finance โ€“ Second Edition, published by Packt
Jupyter Notebook
432
star
53

Hands-On-Machine-Learning-with-CPP

Hands-On Machine Learning with C++, published by Packt
C++
425
star
54

Hands-On-Software-Engineering-with-Golang

Hands-On Software Engineering with Golang, published by Packt
Go
425
star
55

Python-Machine-Learning-Cookbook

Code files for Python-Machine-Learning-Cookbook
Python
416
star
56

Artificial-Intelligence-with-Python

Code repository for Artificial Intelligence with Python, published by Packt
Python
408
star
57

Mastering-Python-Design-Patterns-Second-Edition

Mastering-Python-Design-Patterns-Second-Edition, published by Packt
Python
404
star
58

Go-Design-Patterns

This is the code repository for the book, Go Design Patterns, published by Packt
Go
399
star
59

Python-Algorithmic-Trading-Cookbook

Python Algorithmic Trading Cookbook, published by Packt
Jupyter Notebook
395
star
60

Mastering-Go-Second-Edition

Mastering Go Second Edition, published by Packt
Go
394
star
61

Learn-OpenCV-4-By-Building-Projects-Second-Edition

Learn OpenCV 4 By Building Projects, Second Edition, published by Packt
C++
378
star
62

Hands-On-Computer-Vision-with-TensorFlow-2

Hands-On Computer Vision with TensorFlow 2, published by Packt
Jupyter Notebook
366
star
63

Hands-On-Design-Patterns-with-CPP

Hands-On Design Patterns with C++, published by Packt
C
362
star
64

Mastering-OpenCV-4-with-Python

Mastering OpenCV 4 with Python, published by Packt
Python
362
star
65

Hands-On-Microservices-with-Rust

Hands-On Microservices with Rust 2018, published by Packt
Rust
357
star
66

Machine-Learning-for-Finance

Machine Learning for Finance, published by Packt
Jupyter Notebook
355
star
67

Python-Machine-Learning-Blueprints

Code repository for Python Machine Learning Blueprints, published by Packt
Jupyter Notebook
349
star
68

Practical-Time-Series-Analysis

Practical Time-Series Analysis, published by Packt
Jupyter Notebook
345
star
69

Machine-Learning-for-Algorithmic-Trading-Bots-with-Python

Jupyter Notebook
337
star
70

Python-Artificial-Intelligence-Projects-for-Beginners

Python Artificial Intelligence Projects for Beginners, published by Packt
Jupyter Notebook
337
star
71

Effective-Python-Penetration-Testing

Effective Python Penetration Testing by Packt Publishing
Python
334
star
72

Micro-State-Management-with-React-Hooks

Micro State Management with React Hooks, published by Packt
TypeScript
329
star
73

Event-Driven-Architecture-in-Golang

Event-Driven Architecture in Golang, published by Packt
Go
329
star
74

The-Azure-Cloud-Native-Architecture-Mapbook

The Azure Cloud Native Architecture Mapbook, published by Packt
C#
324
star
75

Hands-On-Intelligent-Agents-with-OpenAI-Gym

Code for Hands On Intelligent Agents with OpenAI Gym book to get started and learn to build deep reinforcement learning agents using PyTorch
Python
322
star
76

Hands-On-Reactive-Programming-in-Spring-5

Hands-On Reactive Programming in Spring 5, published by Packt
Java
320
star
77

Python-GUI-Programming-Cookbook-Second-Edition

Python GUI Programming Cookbook, Second Edition, published by Packt
Python
316
star
78

Godot-Game-Engine-Projects

Godot Game Engine Projects, published by Packt
GDScript
315
star
79

Computer-Vision-with-OpenCV-3-and-Qt5

Computer Vision with OpenCV 3 and Qt5, published by Packt
C++
314
star
80

Deep-Learning-with-TensorFlow-2-and-Keras

Deep Learning with TensorFlow 2 and Keras, published by Packt
Jupyter Notebook
312
star
81

Mastering-Transformers

Mastering Transformers, published by Packt
Jupyter Notebook
307
star
82

OpenGL-4-Shading-Language-Cookbook-Third-Edition

OpenGL 4 Shading Language Cookbook - Third Edition, published by Packt
C
307
star
83

Building-Data-Science-Applications-with-FastAPI

Building Data Science Applications with FastAPI, Published by Packt
Python
306
star
84

PyTorch-Computer-Vision-Cookbook

PyTorch Computer Vision Cookbook, Published by Packt
Jupyter Notebook
306
star
85

Hands-on-Python-for-Finance

Hands-on Python for Finance published by Packt.
Jupyter Notebook
304
star
86

Learning-PySpark

Code repository for Learning PySpark by Packt
Jupyter Notebook
303
star
87

Neural-Network-Projects-with-Python

Neural Network Projects with Python, Published by Packt
Python
303
star
88

Building-Python-Microservices-with-FastAPI

Building Python Microservices with FastAPI, published by Packt
Python
301
star
89

Machine-Learning-for-Cybersecurity-Cookbook

Machine Learning for Cybersecurity Cookbook, published by Packt
Jupyter Notebook
301
star
90

Mastering-Machine-Learning-for-Penetration-Testing

Mastering Machine Learning for Penetration Testing, published by Packt
Python
298
star
91

Learning-Vuejs-2

This is the code repository for Learning Vue.js 2, published by Packt.
JavaScript
296
star
92

CPP-Data-Structures-and-Algorithms

C++ Data Structures and Algorithms, published by Packt
C++
295
star
93

Full-Stack-React-TypeScript-and-Node

Full-Stack React, TypeScript, and Node, published by Packt
TypeScript
289
star
94

Bioinformatics-with-Python-Cookbook-Second-Edition

Bioinformatics with Python Cookbook Second Edition, published by Packt
OpenEdge ABL
287
star
95

Kotlin-Design-Patterns-and-Best-Practices

Kotlin Design Patterns and Best Practices - Second Edition, published by Packt
Kotlin
285
star
96

Pandas-Cookbook-Second-Edition

Pandas Cookbook Second Edition, published by Packt
Jupyter Notebook
283
star
97

The-Modern-Cpp-Challenge

The Modern C++ Challenge, published by Packt
C
276
star
98

Network-Programming-with-Rust

Network Programming with Rust, published by Packt
Rust
275
star
99

Full-Stack-React-Projects

Full-Stack React Projects, published by Packt
JavaScript
274
star
100

JavaScript-from-Beginner-to-Professional

JavaScript from Beginner to Professional, Published by Packt
HTML
274
star