# PhD 2024 - Alex Banwell ###### tags: `aeon-research` __Project:__ Regression __Supervisors:__ Tony Bagnall, Matthew Middlehurst, Leo Tsaprounis (HALEON) __Weekly meeting time:__ Thursday? ## Getting started tasks - [x] Go through the contributor guide on the _aeon_ website (https://www.aeon-toolkit.org/en/stable/contributing.html). - [x] Set up a development environment, (https://www.aeon-toolkit.org/en/stable/developer_guide/dev_installation.html). fork: clone locally: create environment: pip install --editable .[all_extras,dev] - [x] Review some of the important dependencies for developing aeon at a basic level: - [x] __scikit-learn__ the interface aeon estimators extend from. We aim to keep as compatile as possible with sklearn tools. - [x] __pytest__ for unit testing. Any code added will have to be covered by tests. - [x] __sphinx/myst__ for documentation. Adding new functions and classes will have to be added to the API docs. - [x] __numba__ for writing efficient functions. - [x] Make a basic Pull Request (PR) to gain some experience with contributing to _aeon_ through GitHub. ## First (informal) meeting: 3/10/24 items 1. Logistics: desk, money, meetings, pgrmanager etc 2. Getting started tasks to do: 1. get up speed with aeon 2. do the same with tsml-eval https://github.com/time-series-machine-learning/tsml-eval **Project overiew** 1. Get on top of standard techniques Exponential smoothing basics Hyndman implementation Exponential smoothing extensions Design forecasting base class for new aeon module 2. M4 competitions: Form a subset of these with long series. This will be the benchmark for all comparisons 3. Work out experimental set up. 4. https://github.com/mloning/sktime-m4 ## Meeting 8/10/24 - [x] Training plan - Completed. Added FML Module to it, haven't added any other training as of yet. - [x] Revise yeo-johnson as discussed - [x] Install and look at tsml-eval and base forecaster - [x] Fork tsml-eval - [x] Set up tsml-eval locally - [x] Look at base forecaster - What exactly do we need to define here? - [x] Set up account on HPC iridis - [x] Start literature review document on overleaf with formal definition of ETS (exponential trend smoothing?) - [x] Start Document - [x] Review papers - [x] Write notes on papers - How much detail do I need to go into in this - **basic**, do I need to include the different types of Exponential smoothing **YES**, is it fine to reference the book/should I be referencing individual papers **YES**? - [x] Read hydnman C code - Had a look at the python translation, basic understanding of what it's doing. What are we doing with it, so I can look at it more closely in relation to that.**Fit into Base Forecaster** ## Meeting 11/10/24 Agenda - [x] Review yeo-johnson PR - [x] Fork and look at NIXTLA statsforecast, part of review of base class structure - [x] Form list of alternative forecasting packages, review structure and functionality - [x] nixtla - [x] statsmodels - [x] prophet - [x] sktime - [x] Check admin complete - [x] schedule meetings in pgr manager ## Meeting 18/10/24 Continue on ETS, look to write up on overleaf, discuss base class at aeon meeting. ## Notes since meeting 18/10/24 - [x] Write AutoETS algorithms - [x] Write fast ETS algorithm - [x] Write Nelder-Mead algorithm - [x] Write L-BFGS-B algorithm ## Meeting 10/01/25 Target submission to conference - various routes depending on results/paper Aim to evaluate the TSER algorithms for forecasting Use longer series with a single horizon M4 hourly and monash repository Set up how we evaluate the algorithms Compare the regression algorithms with standard forecasters as well as deep learning forecasters in aeon Split each series into train and test set - machine learning model Short presentation to the group in February Todo: - [x] Read original M4 paper - [x] Look at M4 datasets, summarise them - length, etc (https://github.com/Mcompetitions/M4-methods/tree/master) - [x] Look at tidying up autoets, autoarima etc - submit a PR/ talk to ?? - [ ] https://onlinelibrary.wiley.com/doi/abs/10.1002/for.2963 - [ ] https://www.sciencedirect.com/science/article/pii/S0169207019300895 ## Meeting 17/1/2025 - [x] Look at some of Chris Bergmier's Work https://scholar.google.com/citations?user=_UG_SgUAAAAJ&hl=en - [x] Look at monash archive https://arxiv.org/abs/2105.06643 - [x] Work on background section of report ## Meetings 24/1/2025-28/3/2025 - [x] Fit against ETS - [x] Use MASE rather than MAPE for error values - [x] Convert the code used for transforming the dataset to a series to collection transformer - [x] Look at other algorithms (SETAR-Tree) write some background - [x] ~~Convert SETAR-Tree to python~~ -> Summer Student Job - [x] ~~Benchmark SETAR-Tree~~ -> After summer student ## Meeting 4/4/2025 - [x] Try algorithms on differenced data - [x] Look at deep learning algorithms - [x] ~~Try and get deep learing algorithm to compare~~ -> Summer student job - [x] VLC Day poster ## Meeting 4/7/2025 - [x] ~~Time-varying parameter (TVP) model? Adjusting parameters as you go along e.g. with TVP with kalman filter is like reinforcement learning, stochastic gradient decent~~ -> Tony done ## Meeting 11/7/2025 First progress report meeting on Wednesday? -> Now Friday 11:30 ideally. Send Tony a copy of the slides beforehand Work on getting stuff into Aeon for now. - [x] Slides for Viva thing ## Meeting 1/8/2025 ### Admin - [x] Do ECML Paper corrections - [x] Sort out conference registration, flights then accomodation - [x] Calculate number of datasets in Monash that fit our criteria ### Experiments - [ ] Use LiteTime - [ ] Increase window to 500 - exactly the same - [ ] Do direct vs iterative on last 100 points or so - [ ] Add 1 more series to forecast on - [ ] Evaluate 1 ahead forecast on 30 points, take 50%, test point evenly spread across the remaining 50% - window size based on which is better ### Code - [ ] Make it so that the experimental setup is time series -> experiment -> results file - [x] Check if nelder-mead algorithm is just going to bad local optima, or is there a bug. - [x] If there is a bad local optima then is there any way to detect it and restart the optimiser - [x] Add ETS auto parameters - [ ] Add Auto methods ### Future - [ ] Look at https://www.vldb.org/pvldb/vol17/p2363-hu.pdf and work out how they do it ## Meeting 22/8/2025 - [ ] Use VLDB paper method - do 1 ahead forecasting on last 'window' of the series - the test data (e.g. 12 for monthly, 24 for hourly), and also then iterative. Can compare in each different way, and also test the differencing on it. - [x] Poster for ECML - [x] A couple of slides (for 2 minute lightning presentation) on paper ## Meeting 26/9/2025 - [ ] Rough draft of background chapter(Oct time) ## Meeting 24/10/2025 - [ ] Set out paper in overleaf for forecasting - [ ] Bakeoff of algorithms using the same method as VDLB paper - [ ] Timing experiments **Project proposal** Forecasting involves the prediction of future values of a time series based on past values of that time series. This is useful in a wide variety of applications, such as sales forecasting, prediction of demand for services such as energy, transport and health, and weather forecasting. The ability to accurately predict future values of these variables allows for significantly better planning and optimisation. For example, sales forecasting allows businesses to ensure they have sufficient stock available and will help improve the efficiency of supply chains. Forecasting demand for various services allows those services to better plan for, and manage periods of high demand, and more accurate weather forecasting allows people and businesses to optimise their planning for activities. Currently, several different categories of machine learning approaches for forecasting exist. These include deep learning approaches such as InceptionTime[1], currently the leading algorithm in the field. This uses a neural network approach to learn latent features of the input time series, then forecasts the next value in the output time series through the learned weights in the neural network. Another category of approach is through using statistical transforms, mainly convolutions to extract features from the time series. These features can either be extracted from the whole time series such as in the FreshPRINCE algorithm proposed in [2] or from intervals of the input series, which are then combined together at the output, such as in the DrCIF algorithm [2]. These features are then used as input parameters into a linear regression model, which is used to forecast future values. Additionally with multi-variate forecasting problems, another category of approach is global (tree-based) methods such as SETAR-Tree[3], currently the leading algorithm in this category. This uses a global forecasting model, the pooled regression algorithm, in the leaf nodes of the tree. A global forecasting model combines the time series and learns the same parameters from all variables. This allows it to learn cross-series information, which could not be learned by local forecasting methods, such as most statistical methods[3]. The proposed project is to develop novel time series machine learning algorithms for forecasting by comparing various approaches in the literature and using this to propose new algorithms which improve upon them. [1] H. Ismail Fawaz et al., “InceptionTime: Finding alexnet for Time Series classification,” Data Mining and Knowledge Discovery, vol. 34, no. 6, pp. 1936–1962, Sep. 2020. doi:10.1007/s10618-020-00710-y [2] C. W. Tan, C. Bergmeir, F. Petitjean, and G. I. Webb, “Time series extrinsic regression,” Data Mining and Knowledge Discovery, vol. 35, no. 3, pp. 1032–1060, Mar. 2021. doi:10.1007/s10618-021-00745-9