autocluster 插件

autocluster 在数据中查找离散属性(维度)的常见模式。 然后,它将原始查询的结果(无论是 100 行还是 100,000 行)减少到少量模式。 开发该插件的目的是为了帮助分析故障(如异常或崩溃),但该插件也有可能用于处理任何筛选出的数据集。 该插件通过 evaluate 运算符调用。

注意

autocluster 主要基于以下文章中的 Seed-Expand 算法:使用离散属性的遥测数据挖掘算法

语法

T|evaluateautocluster([SizeWeight [,WeightColumn [,NumSeeds [,CustomWildcard [, ... ]]]]])

详细了解语法约定

参数

参数必须按语法中指定的顺序排序。 若要指示应使用默认值,请放置字符串波形值 ~。 有关详细信息,请参阅示例

名称 类型​​ 必需 说明
T string 输入表格表达式。
SizeWeight double 一个介于 0 和 1 之间的双精度值,用于控制泛型值(高覆盖率)和信息性(许多共享)值之间的平衡。 增加此值通常会减少模式的数量,同时扩大覆盖范围。 相反,减少此值会生成更具体的模式,这些模式的特点是共享值增加,覆盖百分比较小。 默认为 0.5。 公式是加权几何平均值,权重为 SizeWeight1-SizeWeight
WeightColumn string 根据指定的权重考虑输入中的每一行。 每行的默认权重为 1。 此参数必须是数字整数列的名称。 权重列的常见用法是考虑对已嵌入每一行的数据进行采样、存储或聚合。
NumSeeds int 确定初始本地搜索点的数量。 根据数据结构调整种子会影响结果数量或质量。 增加种子可以增强结果,但查询速度会相应较慢。 减少到 5 以下产生的改进可以忽略不计,而增加到 50 以上很少会产生更多模式。 默认为 25
CustomWildcard string 一个类型文本,用于设置结果表中特定类型的通配符值,用于指示对此列没有限制。 默认值为 null,这表示空字符串。 如果默认值是可行数据值,应使用其他通配符值,例如 *。 可以通过连续添加它们来包含多个自定义通配符。

返回

autocluster 插件通常会返回一小组模式。 这些模式在多个离散属性间捕获具有共享常见值的数据部分。 结果中的每种模式均由一行表示。

第一列是段 ID。 后两列是此模式从原始查询外所捕获行的数量和百分比。 其余列均来自原始查询。 它们的值是来自列中的特定值,或者是表示变量值的通配符值(默认为 null)。

这些模式并不是截然不同的,有可能会重叠,且通常不包括所有原始行。 某些行可能不属于任何模式。

提示

在输入管道中使用 whereproject 可将数据缩减到仅剩所需数据。

找到所需行时,可通过将该行的特定值添加到 where 筛选器,来对其进行深入研究。

示例

使用 evaluate

T | evaluate autocluster()

使用 autocluster

StormEvents
| where monthofyear(StartTime) == 5
| extend Damage = iff(DamageCrops + DamageProperty > 0 , "YES" , "NO")
| project State , EventType , Damage
| evaluate autocluster(0.6)

输出

段 ID 计数 百分比 状态 EventType 损害
0 2278 38.7 冰雹
1 512 8.7 雷雨大风 YES
2 898 15.3 德克萨斯

使用自定义通配符

StormEvents
| where monthofyear(StartTime) == 5
| extend Damage = iff(DamageCrops + DamageProperty > 0 , "YES" , "NO")
| project State , EventType , Damage
| evaluate autocluster(0.2, '~', '~', '*')

输出

段 ID 计数 百分比 状态 EventType 损害
0 2278 38.7 * 冰雹
1 512 8.7 * 雷雨大风 YES
2 898 15.3 德克萨斯 * *