BaseAnomalyDetector

class BaseAnomalyDetector(axis)[source]

异常检测算法的基类。

异常检测算法用于识别时间序列数据中的异常子序列。这些算法接收一个长度为m的序列,并返回一个长度为m的布尔、整数或浮点数数组,其中每个元素指示相应的子序列是否异常或其异常分数。

输入和内部数据格式(其中m是时间点的数量,d是通道的数量):

Univariate series (default):

np.ndarray, 形状 (m,), (m, 1)(1, m) 取决于轴。 这在内部被转换为2D np.ndarray。 pd.DataFrame, 形状 (m, 1)(1, m) 取决于轴。 pd.Series, 形状 (m,).

Multivariate series:

np.ndarray 数组,形状为 (m, d)(d, m),取决于轴。 pd.DataFrame (m, d)(d, m),取决于轴。

Output data format (one of the following):
Anomaly scores (default):

np.ndarray,形状为(m,),类型为float。对于输入时间序列的每个点,异常分数是一个浮点值,表示异常程度。分数越高,点越异常。

Binary classification:

np.ndarray, 形状 (m,) 类型为布尔或整数。对于输入时间序列的每个点,输出是一个布尔或整数值,指示该点是否为异常点(True/1)或不是(False/0)。

Detector learning types:
Unsupervised (default):

无监督检测器不需要任何训练数据,可以直接用于目标时间序列。它们的标签设置为fit_is_empty=Truerequires_y=False。您通常会调用这些检测器的fit_predict方法。

Semi-supervised:

半监督检测器需要在没有异常的时间序列(正常行为的时间序列)上进行训练步骤。目标值y将仅由零组成。因此,这些算法在fit方法中有逻辑,但不需要目标值。它们的标签设置为fit_is_empty=Falserequires_y=False。通常,您会首先在训练数据上调用fit方法,然后为目标时间序列调用predict方法。

Supervised:

监督检测器需要在已知异常的时间序列上进行训练步骤(异常应该存在并且必须被标注)。检测器实现了fit方法,目标值y由零和一组成。因此,它们的标签被设置为fit_is_empty=Falserequires_y=True。通常,您会首先在训练数据上调用fit方法,然后为目标时间序列调用predict方法。

Parameters:
axisint

输入序列的时间点轴,如果是2D的。如果axis==0,则假设每列是一个时间序列,每行是一个时间点。即数据的形状为(n_timepoints, n_channels)axis==1表示时间序列在行中,即数据的形状为(n_channels, n_timepoints)。设置此类的变量将把输入数据转换为所选的轴。

方法

clone([random_state])

获取具有相同超参数的对象的克隆。

fit(X[, y, axis])

将时间序列异常检测器拟合到X。

fit_predict(X[, y, axis])

拟合时间序列异常检测器并查找X的异常。

get_class_tag(tag_name[, raise_error, ...])

从估计器类获取标签值(仅限类标签)。

get_class_tags()

从估计器类及其所有父类中获取类标签。

get_fitted_params([deep])

获取拟合参数。

get_metadata_routing()

Sklearn 元数据路由。

get_params([deep])

获取此估计器的参数。

get_tag(tag_name[, raise_error, ...])

从估计器类中获取标签值。

get_tags()

从估计器中获取标签。

predict(X[, axis])

在X中查找异常。

reset([keep])

将对象重置为初始化后的干净状态。

set_params(**params)

设置此估计器的参数。

set_tags(**tag_dict)

将动态标签设置为给定值。

final fit(X, y=None, axis=1)[source]

将时间序列异常检测器拟合到X。

如果标签 fit_is_empty 为真,这只会将 is_fitted 标签设置为真。否则,它会检查 self 是否可以处理 X,将 X 格式化为 self 所需的结构,然后将 X(可能还有 y)传递给 _fit

Parameters:
Xone of aeon.base._base_series.VALID_SERIES_INPUT_TYPES

用于拟合模型的时间序列。 一个有效的aeon时间序列数据结构。有关aeon支持的类型,请参见 aeon.base._base_series.VALID_SERIES_INPUT_TYPES。

yone of aeon.base._base_series.VALID_SERIES_INPUT_TYPES, default=None

时间序列的目标值。 一个有效的aeon时间序列数据结构。请参阅 aeon.base._base_series.VALID_SERIES_INPUT_TYPES以了解aeon支持的类型。

axisint

输入序列的时间点轴,如果是2D的。如果axis==0,则假设每列是一个时间序列,每行是一个时间点。即数据的形状为(n_timepoints, n_channels)axis==1表示时间序列在行中,即数据的形状为(n_channels, n_timepoints)

Returns:
BaseAnomalyDetector

拟合的估计器,引用自身。

final predict(X, axis=1) ndarray[source]

在X中查找异常。

Parameters:
Xone of aeon.base._base_series.VALID_SERIES_INPUT_TYPES

用于拟合模型的时间序列。 一个有效的aeon时间序列数据结构。有关aeon支持的类型,请参见 aeon.base._base_series.VALID_SERIES_INPUT_TYPES。

axisint, default=1

输入序列的时间点轴,如果是2D的。如果axis==0,则假设每列是一个时间序列,每行是一个时间点。即数据的形状为(n_timepoints, n_channels)axis==1表示时间序列在行中,即数据的形状为(n_channels, n_timepoints)

Returns:
np.ndarray

一个布尔、整数或浮点数数组,长度为len(X),其中每个元素指示相应的子序列是否异常或其异常分数。

final fit_predict(X, y=None, axis=1) ndarray[source]

拟合时间序列异常检测器并查找X的异常。

Parameters:
Xone of aeon.base._base_series.VALID_SERIES_INPUT_TYPES

用于拟合模型的时间序列。 一个有效的aeon时间序列数据结构。请参阅 aeon.base._base_series.VALID_INPUT_TYPES以了解aeon支持的类型。

yone of aeon.base._base_series.VALID_SERIES_INPUT_TYPES, default=None

时间序列的目标值。 一个有效的aeon时间序列数据结构。请参阅 aeon.base._base_series.VALID_SERIES_INPUT_TYPES以了解aeon支持的类型。

axisint, default=1

输入序列的时间点轴,如果是2D的。如果axis==0,则假设每列是一个时间序列,每行是一个时间点。即数据的形状为(n_timepoints, n_channels)axis==1表示时间序列在行中,即数据的形状为(n_channels, n_timepoints)

Returns:
np.ndarray

一个布尔、整数或浮点数数组,长度为len(X),其中每个元素指示相应的子序列是否异常或其异常分数。

clone(random_state=None)[source]

获取具有相同超参数的对象克隆。

克隆是一个没有共享引用的不同对象,处于初始化后的状态。 这个函数等同于返回自身的sklearn.clone。 在值上等同于type(self)(**self.get_params(deep=False))

Parameters:
random_stateint, RandomState instance, or None, default=None

设置克隆的随机状态。如果为None,则不设置随机状态。 如果为int,random_state是随机数生成器使用的种子。 如果为RandomState实例,random_state是随机数生成器。

Returns:
estimatorobject

type(self) 的实例,self 的克隆(见上文)

classmethod get_class_tag(tag_name, raise_error=True, tag_value_default=None)[source]

从估计器类获取标签值(仅限类标签)。

Parameters:
tag_namestr

标签值的名称。

raise_errorbool, default=True

当未找到标签时是否引发ValueError。

tag_value_defaultany type, default=None

如果未找到标签且未引发错误,则使用默认/回退值。

Returns:
tag_value

cls中tag_name标签的值。 如果未找到,当raise_error为True时返回错误,否则返回tag_value_default

Raises:
ValueError

如果 raise_error 为 True 并且 tag_name 不在 self.get_tags().keys()

示例

>>> from aeon.classification import DummyClassifier
>>> DummyClassifier.get_class_tag("capability:multivariate")
True
classmethod get_class_tags()[source]

从估计器类及其所有父类获取类标签。

Returns:
collected_tagsdict

标签名称和标签值对的字典。 通过嵌套继承从_tags类属性中收集。 这些不会被set_tags或类__init__调用设置的动态标签覆盖。

get_fitted_params(deep=True)[source]

获取拟合参数。

State required:

需要状态为“已拟合”。

Parameters:
deepbool, default=True

如果为True,将返回此估计器的拟合参数以及包含的作为估计器的子对象。

Returns:
fitted_paramsdict

拟合参数名称映射到它们的值。

get_metadata_routing()[source]

Sklearn 元数据路由。

不支持 aeon 估计器。

get_params(deep=True)[source]

获取此估计器的参数。

Parameters:
deepbool, default=True

如果为True,将返回此估计器及其包含的子对象的参数。

Returns:
paramsdict

参数名称映射到它们的值。

get_tag(tag_name, raise_error=True, tag_value_default=None)[source]

从估计器类获取标签值。

包括动态和覆盖的标签。

Parameters:
tag_namestr

要检索的标签名称。

raise_errorbool, default=True

当未找到标签时是否引发ValueError。

tag_value_defaultany type, default=None

如果未找到标签且未引发错误,则使用默认/回退值。

Returns:
tag_value

自身中tag_name标签的值。 如果未找到,当raise_error为True时返回错误,否则返回tag_value_default

Raises:
ValueError

如果 raise_error 是 True 并且 tag_name 不在 self.get_tags().keys()

示例

>>> from aeon.classification import DummyClassifier
>>> d = DummyClassifier()
>>> d.get_tag("capability:multivariate")
True
get_tags()[source]

从估计器中获取标签。

包括动态和覆盖的标签。

Returns:
collected_tagsdict

标签名称和标签值对的字典。 通过嵌套继承从_tags类属性收集,然后从__init__set_tags中收集任何被覆盖和新添加的标签。

reset(keep=None)[source]

将对象重置为初始化后的干净状态。

在调用self.reset()之后,self的值等于或类似于type(self)(**self.get_params(deep=False)),假设没有使用keep保留其他属性。

Detailed behaviour:
removes any object attributes, except:

超参数(__init__的参数) 包含双下划线的对象属性,即字符串“__”

使用当前超参数的值(get_params的结果)运行__init__

Not affected by the reset are:

包含双下划线的对象属性 类和对象方法,类属性 在keep参数中指定的任何属性

Parameters:
keepNone, str, or list of str, default=None

如果为None,则除了超参数外,所有属性都将被移除。 如果为str,则仅保留具有此名称的属性。 如果为str列表,则仅保留具有这些名称的属性。

Returns:
selfobject

自我引用。

set_params(**params)[source]

设置此估计器的参数。

该方法适用于简单的估计器以及嵌套对象(如Pipeline)。后者具有<component>__<parameter>形式的参数,以便可以更新嵌套对象的每个组件。

Parameters:
**paramsdict

估计器参数。

Returns:
selfestimator instance

估计器实例。

set_tags(**tag_dict)[source]

将动态标签设置为给定值。

Parameters:
**tag_dictdict

标签名称和标签值对的字典。

Returns:
selfobject

自我引用。