主要内容

检测漂移

使用新数据更新漂移检测器状态和漂移状态

自 R2024b 起

  • Detect Drift Block Icon

库:
Statistics and Machine Learning Toolbox / Incremental Learning / Drift Detection

描述

Detect Drift 模块在给定新数据时更新漂移检测器的内部统计量和漂移状态。

通过指定包含该对象的工作区变量的名称,将初始化的增量概念漂移检测器对象 (incrementalConceptDriftDetector) 导入该模块中。输入端口 x 接收用于计算漂移的数据流。输入端口 reset 接收重置漂移检测器内部状态的信号。输出端口 IsWarm 返回指示漂移检测器是否已预热的值,这意味着它会跟踪漂移状态。输出端口 status 返回当前漂移状态。可选输入端口 w 接收观测值权重。

示例

端口

输入

全部展开

输入数据,指定为 n×1 数值向量(其中 n 是观测值数量),或指定为逻辑向量。在模型初始化期间:

  • 如果在调用 incrementalConceptDriftDetectorInputType 值为 "continuous",则 x 必须为数值向量。

  • 如果在调用 incrementalConceptDriftDetectorInputType 值为 "binary",则 x 可以是逻辑向量。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

重置信号,指定为 0 (false) 或 1 (true) 或指定为数值标量。当 reset 信号是正标量(大于 0)时,漂移检测器会重置 incrementalConceptDriftDetector 的内部状态,包括 PreviousDriftStatusDriftStatus。在数据中检测到漂移后,该模块使用用户定义的重置逻辑子系统重置检测器。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

观测值权重,指定为数值向量。检测漂移 模块使用 w 中对应的值对 x 中的观测值进行加权。w 的大小必须等于 x 中的观测值数量。

您不能为使用指数加权移动平均值的霍夫丁界漂移检测方法 (HDDMW) 提供观测值权重。要使用观测值权重,请在调用 incrementalConceptDriftDetector 时将 DetectionMethod 指定为 "ddm""hddma"

依赖关系

要启用此端口,请在“模块参数”对话框的主要选项卡上选中添加观测值权重输入端口复选框。

数据类型: single | double

输出

全部展开

指示 Detect Drift 模块是否跟踪漂移状态的标志,以逻辑值 0 (false) 或 1 (true) 的形式返回。

描述
1 (true)incrementalConceptDriftDetector 对象已预热。因此,该模块会在信号输出中跟踪漂移状态。
0 (false)incrementalConceptDriftDetector 对象未预热。因此,该模块只会更新内部统计量,不跟踪漂移状态。

数据类型: Boolean

当前漂移状态,指定为 0(稳定,或无漂移)、1(漂移警告)或 2(检测到漂移)。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

参数

全部展开

要以交互方式编辑模块参数,请使用属性检查器。从 Simulink® 工具条的仿真选项卡的准备库中,选择属性检查器

主要

指定包含已配置的 incrementalConceptDriftDetector 对象的工作区变量的名称。

编程用法

模块参数:DriftDetector
类型:字符向量或字符串
值:incrementalConceptDriftDetector 对象名称
默认值:"IncCDDetector"

选中此复选框以在 检测漂移 模块中包含用于观测值权重的输入端口 w

编程用法

模块参数:ShowInputWeights
类型:字符向量
值:"off" | "on"
默认值:"off"

指定采样时间命中点之间的离散时间间隔,或指定其他类型的采样时间,例如连续 (0) 或继承 (–1)。有关更多选项,请参阅采样时间的类型 (Simulink)

默认情况下,检测漂移 模块根据其在模型中的上下文继承采样时间。

编程用法

模块参数:SystemSampleTime
类型:字符串标量或字符向量
值:标量
默认值:"–1"

数据类型

定点运算参数

指定定点运算的舍入模式。有关详细信息,请参阅舍入模式 (Fixed-Point Designer)

模块参数始终舍入到最邻近的可表示值。要控制模块参数的舍入方法,请使用 MATLAB® 舍入函数在封装字段中输入表达式。

编程用法

模块参数:RndMeth
类型:字符向量
值:"Ceiling" | "Convergent" | "Floor" | "Nearest" | "Round" | "Simplest" | "Zero"
默认值"Floor"

指定对溢出是进行饱和处理还是绕回处理。

操作基本原理对溢出的影响示例

选中此复选框 (on)。

您的模型可能有溢出,并且您希望在生成的代码中具有显式饱和保护。

将溢出饱和处理为数据类型能够表示的最小值或最大值。

int8(有符号 8 位整数)数据类型可以表示的最大值为 127。任何大于此最大值的模块运算结果都会导致 8 位整数溢出。如果选中此复选框,模块输出将在达到 127 时饱和。类似地,模块输出将在达到最小输出值 -128 时饱和。

清除此复选框 (off)。

您想优化所生成代码的效率。

您希望避免过度地指定信号超出范围时模块的处理方式。有关详细信息,请参阅信号范围错误故障排除 (Simulink)

溢出将绕回到数据类型可以表示的合适值。

int8(有符号 8 位整数)数据类型可以表示的最大值为 127。任何大于此最大值的模块运算结果都会导致 8 位整数溢出。在该复选框处于清除状态时,软件会将导致溢出的值解释为 int8,这可能产生意外结果。例如,以 int8 表示的模块结果 130(二进制 1000 0010)为 -126。

编程用法

模块参数:SaturateOnIntegerOverflow
类型:字符向量
值:"off" | "on"
默认值"off"

选择此参数可防止定点工具覆盖您对模块指定的数据类型。有关详细信息,请参阅Use Lock Output Data Type Setting (Fixed-Point Designer)

编程用法

模块参数:LockScale
类型:字符向量
值:"off" | "on"
默认值"off"

数据类型

指定漂移状态输出的数据类型。该类型可以继承、直接指定或表示为数据类型对象,如 Simulink.NumericType

如果您选择 Inherit: auto,该模块将使用继承数据类型的规则。

有关数据类型的详细信息,请参阅控制信号的数据类型 (Simulink)

点击显示数据类型助手按钮 以显示数据类型助手,这有助于您设置数据类型属性。有关详细信息,请参阅使用数据类型助手指定数据类型 (Simulink)

编程用法

模块参数DriftStatusDataTypeStr
类型:字符向量或字符串
"Inherit: auto" | "double" | "single" | "half" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "boolean" | "fixdt(1,16,0)" | "fixdt(1,16,2^0,0)" | "<data type expression>"
默认值"Inherit: auto"

指定 Simulink 检查的漂移状态范围的下限值。

Simulink 使用最小值执行下列操作:

编程用法

模块参数DriftStatusOutMin
类型:字符向量
'[]' | 标量
默认值'[]'

指定 Simulink 检查的漂移状态范围的上限值。

Simulink 使用最大值执行下列操作:

编程用法

模块参数DriftStatusOutMax
类型:字符向量
'[]' | 标量
默认值'[]'

指定均值(输入观测值的移动平均值)的数据类型。该类型可以继承、直接指定或表示为数据类型对象,如 Simulink.NumericType

有关数据类型的详细信息,请参阅控制信号的数据类型 (Simulink)

点击显示数据类型助手按钮 以显示数据类型助手,这有助于您设置数据类型属性。有关详细信息,请参阅使用数据类型助手指定数据类型 (Simulink)

编程用法

模块参数MeanDataTypeStr
类型:字符向量或字符串
"Inherit: auto" | "double" | "single" | "half" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "boolean" | "fixdt(1,16,0)" | "fixdt(1,16,2^0,0)" | "<data type expression>"
默认值"Inherit: auto"

指定 Simulink 检查的均值范围的下限值。

Simulink 使用最小值执行下列操作:

编程用法

模块参数MeanOutMin
类型:字符向量
'[]' | 标量
默认值'[]'

指定 Simulink 检查的均值范围的上限值。

Simulink 使用最大值执行下列操作:

编程用法

模块参数MeanOutMax
类型:字符向量
'[]' | 标量
默认值'[]'

指定方差(输入观测值的移动方差)的数据类型。该类型可以继承、直接指定或表示为数据类型对象,如 Simulink.NumericType

有关数据类型的详细信息,请参阅控制信号的数据类型 (Simulink)

点击显示数据类型助手按钮 以显示数据类型助手,这有助于您设置数据类型属性。有关详细信息,请参阅使用数据类型助手指定数据类型 (Simulink)

编程用法

模块参数VarianceDataTypeStr
类型:字符向量或字符串
"Inherit: auto" | "double" | "single" | "half" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "boolean" | "fixdt(1,16,0)" | "fixdt(1,16,2^0,0)" | "<data type expression>"
默认值"Inherit: auto"

指定 Simulink 检查的方差范围的下限值。

Simulink 使用最小值执行下列操作:

编程用法

模块参数VarianceOutMin
类型:字符向量
'[]' | 标量
默认值'[]'

指定 Simulink 检查的方差范围的上限值。

Simulink 使用最大值执行下列操作:

编程用法

模块参数VarianceOutMax
类型:字符向量
'[]' | 标量
默认值'[]'

指定权重加和(加权输入观测值的移动和)的数据类型。该类型可以继承、直接指定或表示为数据类型对象,如 Simulink.NumericType

有关数据类型的详细信息,请参阅控制信号的数据类型 (Simulink)

点击显示数据类型助手按钮 以显示数据类型助手,这有助于您设置数据类型属性。有关详细信息,请参阅使用数据类型助手指定数据类型 (Simulink)

编程用法

模块参数WeightsSumDataTypeStr
类型:字符向量或字符串
"Inherit: auto" | "double" | "single" | "half" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "boolean" | "fixdt(1,16,0)" | "fixdt(1,16,2^0,0)" | "<data type expression>"
默认值"Inherit: auto"

指定 Simulink 检查的权重加和范围的下限值。

Simulink 使用最小值执行下列操作:

编程用法

模块参数WeightsSumOutMin
类型:字符向量
'[]' | 标量
默认值'[]'

指定 Simulink 检查的权重加和范围的上限值。

Simulink 使用最大值执行下列操作:

编程用法

模块参数WeightsSumOutMax
类型:字符向量
'[]' | 标量
默认值'[]'

模块特性

数据类型

Boolean | double | enumerated | fixed point | half | integer | single

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

全部展开

C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。

版本历史记录

在 R2024b 中推出