Book Image

Time Series Indexing

By : Mihalis Tsoukalos
Book Image

Time Series Indexing

By: Mihalis Tsoukalos

Overview of this book

Time series are everywhere, ranging from financial data and system metrics to weather stations and medical records. Being able to access, search, and compare time series data quickly is essential, and this comprehensive guide enables you to do just that by helping you explore SAX representation and the most effective time series index, iSAX. The book begins by teaching you about the implementation of SAX representation in Python as well as the iSAX index, along with the required theory sourced from academic research papers. The chapters are filled with figures and plots to help you follow the presented topics and understand key concepts easily. But what makes this book really great is that it contains the right amount of knowledge about time series indexing using the right amount of theory and practice so that you can work with time series and develop time series indexes successfully. Additionally, the presented code can be easily ported to any other modern programming language, such as Swift, Java, C, C++, Ruby, Kotlin, Go, Rust, and JavaScript. By the end of this book, you'll have learned how to harness the power of iSAX and SAX representation to efficiently index and analyze time series data and will be equipped to develop your own time series indexes and effectively work with time series data.
Table of Contents (11 chapters)

Implementing the joining of iSAX indexes

For the implementation of the iSAX index join, we are going to assume that we have two iSAX indexes ready to be used saved in two separate Python variables, and continue from there. We are going to need a Python function that accepts two iSAX indexes and returns a list of Euclidean distances, which are the nearest neighbors of all subsequences in both time series. Keep in mind that if a node from one of the iSAX indexes does not match the other iSAX index, then that node, and as a consequence its subsequences, is not going to get processed. Therefore, the list of Euclidean distances might be a little shorter than expected. That is the main reason why we must not use unnecessarily big iSAX parameters. Put simply, do not use 16 segments when 4 segments can do the job.

Additionally, keep in mind that the real nearest neighbor of a subsequence might not be located in the terminal node with the same SAX representation – this is the price...