HDS-M05: Module - Machine Learning for Time Series
November 8 - 12, 2021
Course designed by:
Dr. Andrew Creagh | Dr. Anshul Thakur | Dr. Davide Morelli | Prof. David Clifton |
---|---|---|---|
[email protected] | [email protected] | [email protected] | [email protected] |
The Institute of Biomedical Engineering,
Department of Engineering Science,
University of Oxford
This repository aims to introduce the basics of applying machine learning (ML) to medical time-series data. In this module you will learn how ML for time-series is not immediately similar to traditional image-based or static modelling. You will learn the important pre-processing steps that are appropriate for time-series data, and how to frame the problem and task in time. This workshop will introduce fundamental time-series models, such as Autogresssive (AR) proceess, Markov Chains, and Hidden Markov Models (HMM), right through to Recurrent Neural Networks (RNNs) - staples of time-series data applied to healthcare problems. Later stages of this course cover advanced deep-learning based time-series models, such as Temporal Convolution Neural Networks (TCNN), an understanding of latent embeddings (such as with autoencoders, noisy autoencoders, variational autoencoders, etc.), as well as useful ML techniques, such as data augmentation and transfer leanring in medical time-series settings.
- ML 4 time-series: Introduction to time-series analysis (lecture slides)
- ML 4 time-series: Essential Methodology (lecture slides)
- ML 4 time-series: Recurrent Neural Networks (lecture slides)
- ML 4 time-series: Advanced Recurrent Neural Networks (lecture slides)
- ML 4 time-series: Transformations (lecture slides)
- ML 4 time-series: Convolutional Neural Networks (lecture slides)
- ML 4 time-series: Getting started with Gaussian processes (lecture slides)
- ML 4 time-series: Advanced Gaussian processes (lecture slides)
- ML 4 time-series: Introduction to Survival Analysis (lecture slides)
- ML 4 time-series: Deep survival Analysis (lecture slides)
Further lecture materials can be found on canvas.ox.ac.uk
The accompanying pre-processed data for this module can be downloaded via canvas.ox.ac.uk
-
Load and initialize Anaconda. This needs to be done only once (you may not need to run this if you already see
(bash)
written in front of your prompt).module load Anaconda3 conda init bash
Exit and re-login so that the above takes effect.
-
Create an anaconda environment from the provided requirements YAML file:
conda env create -f ml4timeseries.yml
-
You are now ready to use the environment:
conda activate ml4timeseries
In future logins, you only need to run this last command.
-
In your remote machine, launch a Jupyter notebook with a specified port, e.g. 9000:
jupyter-notebook --no-browser --port=9000
This will output something like:
To access the notebook, open this URL: http://localhost:9000/?token= b3ee74d492a6348430f3b74b52309060dcb754e7bf3d6ce4
-
On your local machine, perform port-forwarding, e.g. the following forwards the remote port 9000 to the local port 8888:
ssh -N -f -L localhost:8888:localhost:9000 username@remote_address
Note: You can use the same port numbers for both local and remote.
-
Finally, copy the URL from step 1. Then in your local machine, open Chrome and paste the URL, but change the port to the local port (or do nothing else if you used the same port). You should be able see the notebooks now.