Giter VIP home page Giter VIP logo

pysax's Introduction

pysax

python implementation of SAX (Symbolic Aggregate Approximation) for time series data

Idea

  1. Convert time series data into symbolic representation, where the (Euclidean) distance/similarity is lower bound by the distance in the symbolic space
  2. The symbolic representation can be viewed as a low-dim (aggregate) representation of time series
  3. Symbol based algorithms such as suffix-tree, markov chain can be used to analyze time-series

References

  1. paper
  2. website
  3. jmotif application
  4. tutorial
  5. R package
  6. Another python implementation
  7. GrammarVis
  8. GrammarVis github
  9. GrammarVis VSM github
  10. jMotif github

Why are we re-implementing it?

  1. SAX has certain assumptions on time-series data, such as (1) local Gaussian, (2) fixed frequence, (3) real-valued signals. We want to explore more possiblities for other data
  2. We want a vector representation of time-series pieces, similiar to the idea of representing words a vectors (Google's word2vec)
  3. we need a fast parallel implementation

TODO

examples

python wrapper for sequitur

Idea

  1. sequitur will be used as the context-free grammar extractor for SAXed data
  2. the mined rules will be used for outlier/motif detection
  3. we wrap the c++ implementation for python usage - so it is just a quick workaround for now.

References

  1. three papers listed on Grammarviz website
  2. sequitur site
  3. another python sequitur implementation
  4. java implementation can be found in grammarviz2 implementation

how to use the wrapper

  1. download c++ code http://sequitur.info/latest/sequitur.tgz
  2. put the sequitur code from the uncompressed folder in a convienet place
  3. use the pysequitur package and pass the path to sequitur as constructor parameter

why do we wrap it?

  1. to make it easier to use with pysax
  2. we understand that the c++ implementation treats rule terminals as single characters, whereas in pysax we are dealing with words, so we need to map the words to single characters first - this might change in future based on our understanding of the code.

TODO

examples

grammar-based outlier detection

Idea

  1. to implement the idea based on Time series anomaly discovery with grammar-based compression - using grammar analysis for time series outlier detection
  2. main steps: a. SAX-symbolize the time series b. numerosity reduction c. grammar induction by sequitur d. map rules to subsequences e. mine the patten

TODO

examples

pysax's People

Contributors

dolaameng avatar

Stargazers

 avatar  avatar Anubhav avatar  avatar Subash Prakash avatar  avatar  avatar  avatar Charlene avatar  avatar fred monroe avatar Nekruz Vatanshoev avatar José Oñate López avatar Sulaiman Malik avatar  avatar Albert Perrien II avatar Robert Firth avatar Toinsson avatar Chris M avatar  avatar Richard avatar Xuanyu Wang avatar TyrionW avatar Richard Pruss avatar  avatar Valentino Constantinou avatar Kyle Jackson avatar  avatar Bhavika Tekwani avatar Mack avatar Dan Ofer avatar Asif Rahman avatar Hiroshi Yamamoto avatar Krzysztof Joachimiak avatar Mark E. Madsen avatar Alexander avatar Jonathan Whitmore avatar  avatar Vishal Belsare avatar Mike Stringer avatar Jean Odoux avatar Jeff Schroeder avatar  avatar Eugene Lazin avatar Michael Burman avatar

Watchers

 avatar James Cloos avatar  avatar  avatar Xuanyu Wang avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.