阈值过滤器
重要
对机器学习工作室(经典)的支持将于 2024 年 8 月 31 日结束。 建议在该日期之前转换到 Azure 机器学习。
从 2021 年 12 月 1 日开始,你将无法创建新的机器学习工作室(经典)资源。 在 2024 年 8 月 31 日之前,可继续使用现有的机器学习工作室(经典)资源。
ML 工作室(经典)文档即将停用,将来可能不会更新。
创建一个限制值的阈值滤波器
类别: 数据转换/筛选器
模块概述
本文介绍如何使用 studio 机器学习 Studio 中的阈值筛选器模块 (经典) 来定义限制数值到指定范围的筛选器。
阈值筛选器通常用于数字信号处理。 阈值筛选器检查输入数据集的每个值,并更改不符合边界条件的所有值。 通常将这种类型的筛选器用于以下应用程序:
- 将所有标记为负号的度量值替换为零值。
- 通过定义所有像素的数值边界值将灰度图像转换为黑色和白色区域。
定义满足需求的筛选器后,可以通过将数据集和筛选器连接到 “应用筛选器 ”模块,将筛选器应用于数据。
“应用筛选器”模块的输出是包含所选列的数据集,由阈值筛选器设置指定。
如果你选择了“指示器”选项,则不会返回过滤器值,而是返回一个包含布尔值的列,指示每行中的值是否符合指定的过滤条件。 在测试新筛选器时,这非常有用。
提示
需要筛选数据集中的数据或删除缺失值? 请改用以下模块:
如何配置阈值筛选器
将 阈值筛选器 模块添加到试验中。 可以在“筛选”类别的“数据转换”下找到此模块。
对于 Type,指定要应用的筛选器类型:
LessThan:将小于指定级别的值更改为边界级别,并遍历所有其他值。
GreaterThan:将大于指定级别的值更改为边界级别,并遍历所有其他值。
MagnitudeLessThan:将小于指定级别的值更改为边界级别,但保留原始值的符号。
MagnitudeGreaterThan:将大于指定级别的值更改为边界级别,但保留原始值的符号。
InRange:遍历指定范围内的所有值,并将范围之外的值更改为最接近的边界值。
OutOfRange:传递超出指定范围的所有值,并将范围内的值更改为最接近的边界值。
InRangeWithStd:传递属于指定标准偏差范围的所有值,并将范围之外的值更改为最接近的边界值。
OutOfRangeWithStd:传递超出指定标准偏差范围的所有值,并将范围内的值更改为最接近的边界值。
对于 级别,请键入要在每种类型的阈值中应用的边界值。
如果选择 LessThan 筛选器,则指定的数字定义可在不替换的情况下传递的最低值。
如果选择 GreaterThan 筛选器,则指定的数字定义可以传递的最大值,而无需替换。
如果选择 MagnitudeLessThan 筛选器,请为 Level 键入单个正数或负数。 任何小于该值的值都替换为级别值。
如果选择 MagnitudeGreaterThan 筛选器,请为 Level 键入单个正数或负数。 大于该值的任何值都替换为级别值。
如果选择筛选器, InRange 或OutOfRange,请指定上限或下限。 对于 “下限”,请键入要包含在范围内的最低数字。 对于 上限,请键入要包含在范围内的最高数字。
如果选择了使用标准偏差的筛选器类型之一, (InRangeWithStd、 OutOfRangeWithStd) ,则必须指定 Alpha 常量。 偏差用于计算筛选结果的 alpha 时间值。
(可选)选择 “指示器” 选项以生成仅指示值是否受筛选器影响的列。 如果保持 “指示器 ”未选中状态,筛选器将生成替换值。
连接应用筛选器的筛选器,并连接数据集。
使用列选择器指定应应用筛选器的列。 默认情况下, “应用筛选器” 模块将筛选器转换应用于所有选定的数值列。
运行试验。
在将数据集连接到 应用筛选器 模块并运行试验之前,不会执行任何计算。 此时,指定的转换将应用于所选数值列。
示例
有关如何在机器学习中使用筛选器的示例,请参阅 Azure AI 库中的此试验:
- 筛选器:此试验使用工程的波形数据集演示所有筛选器类型。
指示器值的示例
以下示例假定你应用了一个阈值筛选器,该筛选器指定一个范围,其下边界为 2,上限为 4:
值 | 指示器 | 替换为 |
---|---|---|
1 | false | 2 |
2 | true | 2 |
3 | true | 3 |
4 | true | 4 |
5 | FALSE | 4 |
筛选器中数量级的示例
筛选器类型 MagnitudeLessThan 和MagnitudeGreaterthan 首先根据指定的级别评估值,然后提供一个根据原始值的符号而变化的替换值。
数量级筛选器的示例
筛选器类型 MagnitudeLessThan 和MagnitudeGreaterthan 首先根据指定的级别评估值,然后提供一个根据原始值的符号而变化的替换值。
例如,下表显示了使用 ValuesLessThan 筛选器和值为 5 和 -5 的结果。
源值 | 级别 | 新值 |
---|---|---|
3.07 | 5 | 5 值小于 5;因此,值替换为 Level |
3.07 | -5 | 3.07 值不小于 -5;因此,未替换值 |
-3.93 | 5 | -5 值小于 5;因此,将值替换为 Level ,但保留原始值的符号 |
-3.93 | -5 | -3.93 值不小于 -5;因此,未替换值 |
5.75 | 5 | 5.75 值不小于 -5;因此,未替换值 |
-5.75 | -5 | -5.75 值不小于 -5;因此,未替换值 |
技术说明
本部分包含实现详情、使用技巧和常见问题解答。
实现详细信息
“阈值过滤器”模块使用以下方法来根据过滤器类型定义阈值:
LessThan:小于模式的定义如下:
MagnitudeLessThan:小于数量级模式定义为:
对于复杂输入,每个元素的量值由如下所示的公式限制:
MagnitudeGreaterThan:大于震级模式定义为:
对于复杂输入,每个元素的量值由如下所示的公式限制:
模块参数
名称 | 范围 | 类型 | 默认 | 说明 |
---|---|---|---|---|
类型 | Any | ThresholdType | LessThan | 选择要使用的阈值方法 |
指示器 | 任意 | Boolean | false | 选择此选项会返回包含 True/False(指示该值是否满足过滤条件)的列,而不是过滤的值。 |
级别 | Any | Float | 0.0 | 设置替换值 |
下限 | Any | Float | -1.0 | 指定范围的下限 |
上限 | Any | Float | 1.0 | 指定范围的上限 |
Alpha | Any | Float | 3.0 | 使用此值乘以计算的标准偏差作为阈值 |
输出
名称 | 类型 | 说明 |
---|---|---|
“筛选器” | IFilter 接口 | 过滤器实现 |