IidChangePointEstimator 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
根据自适应内核密度估计和马丁加尔,检测 独立相同分布 (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。
输入和输出列
只有一个输入列。 输入列必须是 Single 值 Single 在时序中的时间戳处指示值的位置。
它生成一个包含 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}$ 在 DetectChangePointBySsa 或 DetectIidChangePoint 的签名中定义。
有关使用示例的链接,请查看“另请参阅”部分。
方法
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> 估算器链生成一系列估算器,以便我们要获取转换器的估算器被埋在此链中的某个位置。 对于这种情况,我们可以通过此方法附加调用一次将调用的委托。 |