A Python port of Twitter's AnomalyDetection R Package. The original source and examples are available here: https://github.com/twitter/AnomalyDetection.
This port uses a pure python stl implementation, and thus has no dependency on R installation.
As in Twitter's package, there are two top level functions, one for timeseries data and one for simple vector processing, detect_ts and detect_vec respectively. The first one expects a two-column Pandas DataFrame consisting of timestamps and values. The second expects either a single-column DataFrame or a Series.
Here's an example of loading Twitter's example data (included in the tests directory) with Pandas and passing it to Pyculiarity for processing.
from pyculiarity import detect_ts
import pandas as pd
twitter_example_data = pd.read_csv('raw_data.csv',
usecols=['timestamp', 'count'])
results = detect_ts(twitter_example_data,
max_anoms=0.02,
direction='both', only_last='day')
The tests are run with nose as follows:
nosetests .
Original Python port Copyright 2015 Nicolas Steven Miller Modified 2016 Jennifer Flynn
Original R source Copyright 2015 Twitter, Inc and other contributors
Licensed under the GPLv3