Skip to main content

A machine learning interface for isolated temporal sequence classification algorithms in Python.

Project description

Sequentia

A machine learning interface for isolated temporal sequence classification algorithms in Python.

Introduction

Temporal sequences are sequences of observations that occur over time. Changing patterns over time naturally provide many interesting opportunities and challenges for machine learning.

This library specifically aims to tackle classification problems for isolated temporal sequences by creating an interface to a number of classification algorithms.

Despite these types of sequences sounding very specific, you probably observe some of them on a regular basis!

Some examples of classification problems for isolated temporal sequences include classifying:

  • word utterances in speech audio signals,
  • hand-written characters according to their pen-tip trajectories,
  • hand or head gestures in a video or motion-capture recording.

Features

Sequentia offers the use of multivariate observation sequences with varying durations in conjunction with the following algorithms and methods:

Classification algorithms

  • Hidden Markov Models (via Pomegranate [1])
    • Multivariate Gaussian emissions
    • Gaussian Mixture Model emissions (full and diagonal covariances)
    • Left-right and ergodic topologies
  • Approximate Dynamic Time Warping k-Nearest Neighbors (implemented with FastDTW [2])
    • Custom distance-weighted predictions
    • Multi-processed predictions
  • Long Short-Term Memory Networks (soon!)


Example of a classification algorithm: a multi-class HMM isolated sequence classifier

Preprocessing methods

  • Centering, standardization and min-max scaling
  • Decimation and mean downsampling
  • Mean and median filtering

Installation

pip install sequentia

Documentation

Documentation for the package is available on Read The Docs.

Tutorials and examples

For tutorials and examples on the usage of Sequentia, look at the notebooks here.

References

[1] Jacob Schreiber. "pomegranate: Fast and Flexible Probabilistic Modeling in Python." Journal of Machine Learning Research 18 (2018), (164):1-6.
[2] Stan Salvador, and Philip Chan. "FastDTW: Toward accurate dynamic time warping in linear time and space." Intelligent Data Analysis 11.5 (2007), 561-580.

Contributors

All contributions to this repository are greatly appreciated. Contribution guidelines can be found here.

Edwin Onuonga
Edwin Onuonga

✉️ 🌍

Sequentia © 2019-2020, Edwin Onuonga - Released under the MIT License.
Authored and maintained by Edwin Onuonga.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sequentia-0.7.0.tar.gz (36.6 kB view details)

Uploaded Source

File details

Details for the file sequentia-0.7.0.tar.gz.

File metadata

  • Download URL: sequentia-0.7.0.tar.gz
  • Upload date:
  • Size: 36.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.2.0.post20200511 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.4

File hashes

Hashes for sequentia-0.7.0.tar.gz
Algorithm Hash digest
SHA256 b433021440b44d43b1bc12d111f19593ed0d3167884374713477d7c68978fee7
MD5 df03910a9249d36f47db980a69210537
BLAKE2b-256 e5da278c185fd510a426e573d3db89f1e65b7e88b6ce887a11932643c25658db

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page