Dataset Usage#

Univariate time series#

Detection, evaluation and visualization. Note that the gray line is the ground truth of anomalies.

from streamad.util import StreamGenerator, UnivariateDS, plot
from streamad.model import SpotDetector

ds = UnivariateDS()
stream = StreamGenerator(ds.data)
model = SpotDetector()

scores = []

for x in stream.iter_item():
    score = model.fit_score(x)
    scores.append(score)

data, label, date, features = ds.data, ds.label, ds.date, ds.features
plot(data=data,scores=scores,date=date,features=features,label=label)

Multivariate time series#

An example of multivariate time series detection.

from streamad.util import StreamGenerator, MultivariateDS, plot
from streamad.model import xStreamDetector

ds = MultivariateDS()
stream = StreamGenerator(ds.data)
model = xStreamDetector()

scores = []

for x in stream.iter_item():
    score = model.fit_score(x)
    scores.append(score)

data, label, date, features = ds.data, ds.label, ds.date, ds.features
plot(data=data,scores=scores,date=date,features=features,label=label)

Customized time series#

import numpy as np
from streamad.util import StreamGenerator, CustomDS, plot
from streamad.model import SpotDetector

# Customized data
n, A, center, phi = 730, 50, 100, 30
T = 2 * np.pi / 100
t = np.arange(n)
ds = A * np.sin(T * t - phi * T) + center
ds[235:255] = 80
label = np.array([0] * n)
label[235:255] = 1

ds = CustomDS(ds, label)  # You can also use a file path here
stream = StreamGenerator(ds.data)
model = SpotDetector()

scores = []

for x in stream.iter_item():
    score = model.fit_score(x)
    scores.append(score)

data, label, date, features = ds.data, ds.label, ds.date, ds.features
plot(data=data, scores=scores, date=date, features=features, label=label)