过滤异常模型¶
FilteringAnomalyModel 封装了一个 Darts 过滤模型和一个或多个异常评分器,通过比较实际值与模型预测值(过滤后的序列)的偏差来计算异常分数。
- class darts.ad.anomaly_model.filtering_am.FilteringAnomalyModel(model, scorer)[source]¶
- 基类: - AnomalyModel- 基于过滤的异常检测模型 - 过滤模型可能已经拟合,也可能尚未拟合。其基本假设是,在没有异常的情况下,该模型应该能够充分过滤时间序列。因此,建议提供一个已经拟合并评估过、在无异常序列上表现良好的模型,或者确保对模型调用 - fit()函数足以在无异常序列上将其训练至令人满意的性能。- 只有在调用 fit() 时将 allow_model_training 设置为 True,对异常模型调用 - fit()才会拟合底层过滤模型。此外,调用- fit()也会拟合可拟合的评分器(如果有)。- 参数
- model ( - FilteringModel) – 用于过滤实际时间序列的 Darts FilteringModel。
- scorer ( - Union[- AnomalyScorer,- Sequence[- AnomalyScorer]]) – 用于比较实际和预测时间序列以获得异常分数 TimeSeries 的一个或多个评分器。如果是一个评分器列表,- score()将为每个评分器输出异常分数。
 
 - 属性 - 是否有任何评分器是可训练的。 - 是否有任何评分器是单变量的。 - 方法 - eval_metric(anomalies, series[, metric])- 计算模型计算出的异常分数的指标。 - fit(series[, allow_model_training])- 拟合底层过滤模型(如果适用)和可拟合的评分器(如果有)。 - predict_series(series, **kwargs)- 使用过滤模型过滤给定的目标时间序列序列。 - score(series[, return_model_prediction])- 计算给定时间序列(或序列)的异常分数。 - show_anomalies(series[, anomalies, ...])- 绘制异常模型的结果。 - eval_metric(anomalies, series, metric='AUC_ROC', **filter_kwargs)[source]¶
- 计算模型计算出的异常分数的指标。 - 使用过滤模型预测 series,并在过滤后的时间序列和给定的目标时间序列上应用评分器。返回基于评分器给出的异常分数的与阈值无关的指标分数。 - 参数
- anomalies ( - Union[- TimeSeries,- Sequence[- TimeSeries]]) – 地面真实二进制异常时间序列(或序列)(1 表示异常,0 表示非异常)。
- series ( - Union[- TimeSeries,- Sequence[- TimeSeries]]) – 用于预测异常的时间序列(或序列)。
- metric ( - Literal[‘AUC_ROC’, ‘AUC_PR’]) – 要使用的指标函数的名称。必须是 “AUC_ROC” (接收者操作特征曲线下面积) 和 “AUC_PR” (分数平均精度) 之一。默认值:“AUC_ROC”。
- **filter_kwargs – 传递给过滤模型的 filter() 方法的附加参数。 
 
- 返回类型
- Union[- dict[- str,- float],- dict[- str,- Sequence[- float]],- Sequence[- dict[- str,- float]],- Sequence[- dict[- str,- Sequence[- float]]]]
- 返回
- Dict[str, float] – 单个单变量 series 的结果指标字典,键代表异常评分器,值代表指标值。 
- Dict[str, Sequence[float]] – 与 Dict[str, float] 相同,但用于多变量 series,以及独立处理序列分量/列的异常评分器(取决于评分器本身特性或 component_wise=True)。 
- Sequence[Dict[str, float]] – 与 Dict[str, float] 相同,但用于单变量序列的序列。 
- Sequence[Dict[str, Sequence[float]]] – 与 Dict[str, float] 相同,但用于多变量序列的序列。 
 
 
 - fit(series, allow_model_training=False, **filter_fit_kwargs)[source]¶
- 拟合底层过滤模型(如果适用)和可拟合的评分器(如果有)。 - 在给定的时间序列上训练过滤器(如果尚未拟合且 allow_model_training 为 True)和可拟合的评分器(如果有)。 - 过滤器模型将应用于给定的序列,结果将用于训练评分器。 - 参数
- series ( - Union[- TimeSeries,- Sequence[- TimeSeries]]) – 用于训练的时间序列(或序列)(通常假定无异常)。
- allow_model_training ( - bool) – 是否应在给定序列上拟合过滤模型。如果为 False,则模型必须已经拟合。
- **filter_fit_kwargs – 传递给过滤模型的 fit() 方法的附加参数。 
 
- 返回
- 已拟合的模型。 
- 返回类型
- self 
 
 - predict_series(series, **kwargs)[source]¶
- 使用过滤模型过滤给定的目标时间序列序列。 - 参数
- series ( - Sequence[- TimeSeries]) – 要过滤的序列。
- **kwargs – 传递给过滤模型的 filter() 方法的附加参数。 
 
- 返回类型
- Sequence[- TimeSeries]
 
 - score(series, return_model_prediction=False, **filter_kwargs)[source]¶
- 计算给定时间序列(或序列)的异常分数。 - 使用过滤模型预测给定的目标时间序列,并应用评分器比较预测(过滤)序列和提供的序列。 - 参数
- series ( - Union[- TimeSeries,- Sequence[- TimeSeries]]) – 要评分的时间序列(或序列)。
- return_model_prediction ( - bool) – 是否在返回异常分数的同时返回过滤模型的预测值。
- **filter_kwargs – 传递给过滤模型的 filter() 方法的附加参数。 
 
- 返回类型
- Union[- TimeSeries,- Sequence[- TimeSeries],- Sequence[- Sequence[- TimeSeries]]]
- 返回
- TimeSeries – 单个 series 使用单个异常评分器时返回的单个 TimeSeries。 
- Sequence[TimeSeries] – 一系列 TimeSeries,用于 - 单个 series 使用多个异常评分器。 
- 多个 series 使用单个异常评分器。 
 
- Sequence[Sequence[TimeSeries]] – 一系列序列的 TimeSeries,用于多个 series 和多个异常评分器。外层序列对应于 series,内层序列对应于评分器。 
 
 
 - property scorers_are_trainable¶
- 是否有任何评分器是可训练的。 
 - property scorers_are_univariate¶
- 是否有任何评分器是单变量的。 
 - show_anomalies(series, anomalies=None, names_of_scorers=None, title=None, metric=None, **score_kwargs)[source]¶
- 绘制异常模型的结果。 - 计算给定序列输入的得分,并显示不同异常分数随时间的变化。 - 图表将包含以下内容 - 时间序列本身及预测模型的输出。 
- 每个评分器的异常分数。具有不同窗口的评分器将分开显示。 
- 实际异常(如果提供)。 
 - 可以进行以下操作 - 使用参数 title 为图表添加标题 
- 使用 names_of_scorers 为评分器指定个性化名称 
- 如果提供了实际异常,可以显示每个异常分数的指标结果(AUC_ROC 或 AUC_PR)。 
 - 参数
- series ( - TimeSeries) – 要可视化异常的时间序列。
- anomalies ( - Optional[- TimeSeries,- None]) – 异常的地面真实值(1 表示异常,0 表示非异常)。
- names_of_scorers ( - Union[- str,- Sequence[- str],- None]) – 分数名称。必须是一个列表,其长度等于 anomaly_model 中的评分器数量。
- title ( - Optional[- str,- None]) – 图表标题。
- metric ( - Optional[- Literal[‘AUC_ROC’, ‘AUC_PR’],- None]) – (可选)要使用的指标函数的名称。必须是 “AUC_ROC” (接收者操作特征曲线下面积) 和 “AUC_PR” (分数平均精度) 之一。默认值:“AUC_ROC”。
- score_kwargs – score() 方法的参数。