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)