IidChangePointEstimator 类

定义

根据自适应内核密度估计和马丁加尔,检测 独立相同分布 (i.i.d.) 时序上的信号更改。

public sealed class IidChangePointEstimator : Microsoft.ML.Data.TrivialEstimator<Microsoft.ML.Transforms.TimeSeries.IidChangePointDetector>
type IidChangePointEstimator = class
    inherit TrivialEstimator<IidChangePointDetector>
Public NotInheritable Class IidChangePointEstimator
Inherits TrivialEstimator(Of IidChangePointDetector)
继承

注解

若要创建此估算器,请使用 DetectIidChangePoint

输入和输出列

只有一个输入列。 输入列必须是 SingleSingle 在时序中的时间戳处指示值的位置。

它生成一个包含 4 个元素的向量列。 输出向量按顺序包含警报级别 (非零值意味着更改点) 、评分、p 值和马丁加尔值。

估算器特征

此估算器是否需要查看数据来训练其参数?
输入列数据类型 Single
输出列数据类型 4 元素向量Double
可导出到 ONNX

估算器特征

机器学习任务 异常检测
规范化是否需要?
是否需要缓存?
除 Microsoft.ML 外所需的 NuGet Microsoft.ML.TimeSeries

训练算法详细信息

此训练器假定在时序中收集的数据点独立于同一分布 (独立分布) 采样。 因此,当前时间戳处的值可以视为预期下一个时间戳处的值。 如果时间戳$t-1$ 处观察到的值为 $p$,则$t$ 时间戳处的预测值也将为 $p$ 。

异常评分器

计算时间戳时的原始分数后,它会馈送到异常评分器组件,以在该时间戳处计算最终异常分数。 此记分器、p 值和马丁加尔分数涉及两个统计信息。

P 值分数

p 值分数根据原始分数的分布指示当前计算的原始分数的 p 值。 此处,根据最新的原始分数值估计分布,这些值可追溯到历史记录中的特定深度。 更具体地说,使用具有自适应带宽的 Gaussian 内核内核密度估算来估计此分布。 p 值分数始终以 $[0, 1]$ 为单位,其值越低,当前点就越有可能是一个离群值 (也称为峰值) 。

基于马丁加尔分数更改点检测

马丁格尔分数是一个额外的评分级别,建立在 p 值分数之上。 该想法基于 Exchangeability Martingales ,用于检测通过 i.i.d. 值流的分布变化。 简言之,当行中检测到一系列小 p 值时,马丁格尔分数的值开始显著增加:这表示基础数据生成过程的分布更改。 因此,马丁格尔分数用于更改点检测。 给定最近观察到的 p 值序列,$p 1、\dots、p_n$,马丁加尔分数计算为:? $s (p1、\dots、p_n) = \prod_{i=1}^n \beta (p_i) $。 $\beta$有两种选择:$\beta (p) = e p^{\epsilon - 1}$ 表示 $0 < \epsilon < 1$ 或 $\beta (p) = \int_{0}^1 \epsilon p^{\epsilon - 1} d\epsilon$。

如果 martingle 分数超过 $s (q_1,\dots, q_n) $,其中 $q_i=1 - \frac{\text{confidence}}{100}$,则关联的时间戳可能会获取非零警报值来检测更改点。 请注意,$\text{confidence}$ 在 DetectChangePointBySsaDetectIidChangePoint 的签名中定义。

有关使用示例的链接,请查看“另请参阅”部分。

方法

Fit(IDataView)

根据自适应内核密度估计和马丁加尔,检测 独立相同分布 (i.i.d.) 时序上的信号更改。

(继承自 TrivialEstimator<TTransformer>)
GetOutputSchema(SchemaShape)

返回 SchemaShape 由转换器生成的架构。 用于管道中的架构传播和验证。

扩展方法

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

将“缓存检查点”追加到估算器链。 这将确保针对缓存的数据训练下游估算器。 在执行多个数据传递的训练器之前,拥有缓存检查点会很有帮助。

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

给定估算器后,返回将调用委托的 Fit(IDataView) 包装对象。 估算器通常必须返回有关拟合情况的信息,这就是为什么 Fit(IDataView) 该方法返回特定类型化对象的原因,而不仅仅是常规 ITransformer对象。 但是,同时, IEstimator<TTransformer> 通常形成为包含许多对象的管道,因此,我们可能需要通过 EstimatorChain<TLastTransformer> 估算器链生成一系列估算器,以便我们要获取转换器的估算器被埋在此链中的某个位置。 对于这种情况,我们可以通过此方法附加调用一次将调用的委托。

适用于

另请参阅