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)
- Host: GitHub
- URL: https://github.com/selimfirat/pysad
- Owner: selimfirat
- License: bsd-3-clause
- Created: 2020-06-05T01:17:44.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-10-12T21:34:53.000Z (over 1 year ago)
- Last Synced: 2024-12-06T19:33:21.274Z (4 months ago)
- Topics: anomaly, anomaly-detection, fraud-detection, incremental-learning, intrusion-detection, machine-learning, outlier-detection, outliers, python, real-time, streaming-data, unsupervised-learning
- Language: Python
- Homepage:
- Size: 400 KB
- Stars: 243
- Watchers: 7
- Forks: 22
- Open Issues: 3
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGES.txt
- Contributing: docs/contributing.rst
- License: LICENSE
Awesome Lists containing this project
- awesome-AIOps - Anomaly Detection
- awesome-TS-anomaly-detection - PySAD - Clause | ❌ (Anomaly Detection Software)
README
.. image:: docs/logo.png
:align: centerPython 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}
}