An open API service indexing awesome lists of open source software.

https://github.com/selimfirat/pysad

Streaming Anomaly Detection Framework in Python (Outlier Detection for Streaming Data)
https://github.com/selimfirat/pysad

anomaly anomaly-detection fraud-detection incremental-learning intrusion-detection machine-learning outlier-detection outliers python real-time streaming-data unsupervised-learning

Last synced: about 1 month ago
JSON representation

Streaming Anomaly Detection Framework in Python (Outlier Detection for Streaming Data)

Awesome Lists containing this project

README

        

.. image:: docs/logo.png
:align: center

Python Streaming Anomaly Detection (PySAD)
==========================================

.. image:: https://img.shields.io/pypi/v/pysad
:target: https://pypi.org/project/pysad/
:alt: PyPI

.. image:: https://img.shields.io/github/v/release/selimfirat/pysad
:target: https://github.com/selimfirat/pysad/releases
:alt: GitHub release (latest by date)

.. image:: https://readthedocs.org/projects/pysad/badge/?version=latest
:target: https://pysad.readthedocs.io/en/latest/?badge=latest
:alt: Documentation status

.. image:: https://badges.gitter.im/selimfirat-pysad/community.svg
:target: https://gitter.im/selimfirat-pysad/community?utm_source=share-link&utm_medium=link&utm_campaign=share-link
:alt: Gitter

.. image:: https://dev.azure.com/selimfirat/pysad/_apis/build/status/selimfirat.pysad?branchName=master
:target: https://dev.azure.com/selimfirat/pysad/_build/latest?definitionId=2&branchName=master
:alt: Azure Pipelines Build Status

.. image:: https://travis-ci.org/selimfirat/pysad.svg?branch=master
:target: https://travis-ci.org/selimfirat/pysad
:alt: Travis CI Build Status

.. image:: https://ci.appveyor.com/api/projects/status/ceghuv517ghqgjce/branch/master?svg=true
:target: https://ci.appveyor.com/project/selimfirat/pysad/branch/master
:alt: Appveyor Build status

.. image:: https://circleci.com/gh/selimfirat/pysad.svg?style=svg
:target: https://circleci.com/gh/selimfirat/pysad
:alt: Circle CI

.. image:: https://coveralls.io/repos/github/selimfirat/pysad/badge.svg?branch=master
:target: https://coveralls.io/github/selimfirat/pysad?branch=master
:alt: Coverage Status

.. image:: https://img.shields.io/pypi/pyversions/pysad
:target: https://github.com/selimfirat/pysad/
:alt: PyPI - Python Version

.. image:: https://img.shields.io/badge/platforms-linux--64%2Cosx--64%2Cwin--64-green
:target: https://github.com/selimfirat/pysad/
:alt: Supported Platforms

.. image:: https://img.shields.io/github/license/selimfirat/pysad.svg
:target: https://github.com/selimfirat/pysad/blob/master/LICENSE
:alt: License

**PySAD** is an open-source python framework for anomaly detection on streaming multivariate data.

`Documentation `__

Features
========

Online Anomaly Detection
^^^^^^^^^^^^^^^^^^^^^^^^

`PySAD` provides methods for online/sequential anomaly detection, i.e. anomaly detection on streaming data, where model updates itself as a new instance arrives.

Resource-Efficient
^^^^^^^^^^^^^^^^^^

Streaming methods efficiently handle the limitied memory and processing time requirements of the data streams so that they can be used in near real-time. The methods can only store an instance or a small window of recent instances.

Complete
^^^^^^^^

`PySAD` contains stream simulators, evaluators, preprocessors, statistic trackers, postprocessors, probability calibrators and more. In addition to streaming models, `PySAD` also provides integrations for batch anomaly detectors of the `PyOD `_ so that they can be used in the streaming setting.

Comprehensive
^^^^^^^^^^^^^

`PySAD` serves models that are specifically designed for both univariate and multivariate data. Furthermore, one can experiment via `PySAD` in supervised, semi-supervised and unsupervised setting.

User Friendly
^^^^^^^^^^^^^

Users with any experience level can easily use `PySAD`. One can easily design experiments and combine the tools in the framework. Moreover, the existing methods in `PySAD` are easy to extend.

Free and Open Source Software (FOSS)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

`PySAD` is distributed under `BSD License 2.0 `_ and favors FOSS principles.

Installation
============

The PySAD framework can be installed via:

.. code-block:: bash

pip install -U pysad

Alternatively, you can install the library directly using the source code in Github repository by:

.. code-block:: bash

git clone https://github.com/selimfirat/pysad.git
cd pysad
pip install .

**Required Dependencies:**

* Python 3.8
* numpy==1.23.5
* scikit-learn>=1.3.0
* scipy==1.10.0
* pyod==1.1.0
* combo==0.1.3

**Optional Dependencies:**

* rrcf==0.4.3 (Only required for `pysad.models.robust_random_cut_forest.RobustRandomCutForest`)
* PyNomaly==0.3.3 (Only required for `pysad.models.loop.StreamLocalOutlierProbability`)
* mmh3==2.5.1 (Only required for `pysad.models.xstream.xStream`)
* pandas==2.0.3 (Only required for `pysad.utils.pandas_streamer.PandasStreamer`)

Quick Links
============

* `Github Repository `_

* `Documentation `__

* `PyPI Package `_

* `Travis CI `_

* `Azure Pipelines `_

* `Circle CI `_

* `Appveyor `_

* `Coveralls `_

* `License `_

Versioning
==========

`Semantic versioning `_ is used for this project.

License
=======

This project is licensed under the `BSD License 2.0 `_.

Citing PySAD
============
If you use PySAD for a scientific publication, please cite the following paper:

.. code-block::

@article{pysad,
title={PySAD: A Streaming Anomaly Detection Framework in Python},
author={Yilmaz, Selim F and Kozat, Suleyman S},
journal={arXiv preprint arXiv:2009.02572},
year={2020}
}