abimca

Autoencoder based iterative modeling and multivariate time-series subsequence clustering algorithm (ABIMCA)

https://github.com/jokonu/abimca

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.4%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

Autoencoder based iterative modeling and multivariate time-series subsequence clustering algorithm (ABIMCA)

Basic Info
  • Host: GitHub
  • Owner: Jokonu
  • License: bsd-3-clause
  • Language: Python
  • Default Branch: main
  • Size: 175 KB
Statistics
  • Stars: 12
  • Watchers: 2
  • Forks: 1
  • Open Issues: 1
  • Releases: 6
Created over 3 years ago · Last pushed over 3 years ago
Metadata Files
Readme Contributing License Citation

README.md

DOI Python 3.9

Autoencoder Based Iterative Modeling and Subsequence Clustering Algorithm (ABIMCA)

This repository contains the python code for the Autoencoder Based Iterative Modeling and Subsequence Clustering Algorithm (ABIMCA)[^koehn] which is a deep learning method to separate multivariate time-series data (MTSD) into subsequences. It is beneficial in a variety of fields, to cluster MTSD into smaller segments or subsequences in an unsupervised manner. The ability to filter measurement data based on specific subsequences can improve downstream development products such as anomaly detection or machine diagnosis in condition based maintenance (CbM) strategies. Our algorithm is specifically useful for MTSD generated by a mechatronic system in a transient environment. It can be used offline as well as online for streaming data. It utilizes recurrent neural network (RNN) based Autoencoders (AE) by iteratively training a Base Autoencoder (BAE), generating a segmentation score and saving the intermediate parameters of the BAE to recognize previously identified subsequences.

Autoencoder Based Iterative Modeling and Subsequence Clustering Algorithm (ABIMCA)

Usage

Package can be installed with pip

bash $ pip install abimca

or clone the repository, and cd into the directory. Then recommendation is to create a virtual environment after installing and using python 3.9 with pyenv

python python -m venv .venv activate the environment Linux: $ source .venv/bin/activate

Windows cmd: C:> .venv\Scripts\activate.bat

Then install with poetry

bash $ poetry install

Finally run the minimal example in main.py

bash $ python -m main

The above graphic example was generated with the run_lorenz.py script. The minimal example is as follows:

```python from abimca import SubsequenceIdentifier import numpy as np

def main(): # Generating random data. This will produce no class predictions or all points have the same class. For more reasonable results replace the data input with your mechatronic measurement data. # Number of datapoints (time-steps) np = 300 # Number of dimensions or features dim = 5 X = np.random.rand(np, dim) # Number of clusters nc = 5 y = np.random.randint(nc, size=n_p)

# Compute online clustering
si = SubsequenceIdentifier(disable_progress_bar=False)
si.fit(X)
print(f"Label array from online fitting: \n{si.label_array}")

# Compute offline clustering
labels = si.predict(X)
print(f"Label array from online fitting: \n{labels}")

if name == "main": main() ```

References

[^koehn]: Köhne, J. et al. Autoencoder based iterative modeling and multivariate time-series subsequence clustering algorithm

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
title: "Autoencoder Based Iterative Modeling and Subsequence Clustering Algorithm (ABIMCA)"
abstract: "This repository provides a new algorithm for online subsequence clustering of multivariate time-series data (MTSD) called 'Autoencoder Based Iterative Modeling and Subsequence Clustering Algorithm (ABIMCA)'"
authors:
- family-names: "Köhne"
  given-names: "Jonas"
  orcid: "https://orcid.org/0000-0001-5536-9604"
version: 0.2.5
doi: 10.5281/zenodo.7057821
date-released: 2022-09-07
url: "https://github.com/Jokonu/abimca"

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Committers

Last synced: about 3 years ago

All Time
  • Total Commits: 18
  • Total Committers: 2
  • Avg Commits per committer: 9.0
  • Development Distribution Score (DDS): 0.167
Top Committers
Name Email Commits
Jonas Köhne j****s@g****m 15
Jonas Köhne j****e@i****e 3
Committer Domains (Top 20 + Academic)
iav.de: 1

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 1
  • Total pull requests: 2
  • Average time to close issues: about 21 hours
  • Average time to close pull requests: 2 minutes
  • Total issue authors: 1
  • Total pull request authors: 2
  • Average comments per issue: 3.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • nsankar (1)
Pull Request Authors
  • dependabot[bot] (1)
  • Jokonu (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 43 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 2
  • Total maintainers: 1
pypi.org: abimca

Autoencoder based iterative modeling and multivariate time-series subsequence clustering algorithm (ABIMCA)

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 43 Last month
Rankings
Dependent packages count: 6.6%
Average: 26.7%
Forks count: 30.5%
Dependent repos count: 30.6%
Stargazers count: 39.1%
Maintainers (1)
Last synced: 7 months ago

Dependencies

poetry.lock pypi
  • astroid 2.11.7 develop
  • black 22.6.0 develop
  • bumpver 2022.1118 develop
  • click 8.1.3 develop
  • dill 0.3.5.1 develop
  • flake8 5.0.4 develop
  • isort 5.10.1 develop
  • lazy-object-proxy 1.7.1 develop
  • lexid 2021.1006 develop
  • mccabe 0.7.0 develop
  • mt3scm 0.4.7 develop
  • mypy-extensions 0.4.3 develop
  • pathlib2 2.3.7.post1 develop
  • pathspec 0.9.0 develop
  • platformdirs 2.5.2 develop
  • pycodestyle 2.9.1 develop
  • pyflakes 2.5.0 develop
  • pylint 2.14.5 develop
  • toml 0.10.2 develop
  • tomlkit 0.11.4 develop
  • wrapt 1.14.1 develop
  • colorama 0.4.5
  • coloredlogs 15.0.1
  • cycler 0.11.0
  • fonttools 4.34.4
  • humanfriendly 10.0
  • joblib 1.1.0
  • kiwisolver 1.4.4
  • matplotlib 3.5.3
  • numpy 1.23.2
  • packaging 21.3
  • pandas 1.4.3
  • pillow 9.2.0
  • pyparsing 3.0.9
  • pyreadline3 3.4.1
  • python-dateutil 2.8.2
  • pytz 2022.2.1
  • scikit-learn 1.1.2
  • scipy 1.9.0
  • setuptools-scm 6.4.2
  • six 1.16.0
  • threadpoolctl 3.1.0
  • tomli 2.0.1
  • torch 1.12.1
  • tqdm 4.64.0
  • typing-extensions 4.3.0
pyproject.toml pypi
  • black ^22.6.0 develop
  • bumpver ^2022.1118 develop
  • flake8 ^5.0.4 develop
  • isort ^5.10.1 develop
  • mt3scm ^0.4.7 develop
  • pylint ^2.14.5 develop
  • coloredlogs ^15.0.1
  • matplotlib ^3.5.3
  • numpy ^1.23.2
  • pandas ^1.4.3
  • python >=3.9,<3.12
  • scikit-learn ^1.1.2
  • scipy ^1.9.0
  • torch ^1.12.1
  • tqdm ^4.64.0