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)

Exercises

Try to solve the following exercises in Python:

  • Divide by hand the y axis for the 16 = 24 cardinality. Did you divide it into 16 areas or 17 areas? How many breakpoints did you use?
  • Divide by hand the y axis for the 64 = 26 cardinality. Did you divide it into 64 areas?
  • Use the cardinality.py utility to plot the breakpoints of the 16 = 24 cardinality.
  • Use the cardinality.py utility to plot the breakpoints of the 128 = 2 7 cardinality.
  • Find the SAX representation of the {0, 2, -1, 2, 3, 4, -2, 4} subsequence using 4 segments and a cardinality of 4 (2 2). Do not forget to normalize it first.
  • Find the SAX representation of the {0, 2, -1, 2, 3, 4, -2, 4} subsequence using 2 segments and a cardinality of 2 (2 1). Do not forget to normalize it first.
  • Find the SAX representation of the {0, 2, -1, 2, 3, 1, -2, -4} subsequence using 4 segments and a cardinality of 2.
  • Given the {0, -1, 1.5, -1.5, 0, 1, 0} time series and a sliding window size of 4, find the SAX representation of all its subsequences using 2 segments and a cardinality of 2.
  • Create a synthetic time series and process it using using_tsfresh.py.
  • Create a synthetic time series with 1,000 elements and process it using histogram.py.
  • Create a synthetic time series with 5,000 elements and process it using histogram.py.
  • Create a synthetic time series with 10,000 elements and process it using counting.py.
  • Create a synthetic time series with 100 elements and process it using percentiles.py.
  • Create a synthetic dataset with 100 elements and examine it using counting.py.
  • Modify histogram.py to save its graphical output in a PNG file.
  • Plot a time series using histogram.py and then process it using using_tsfresh.py