...
概述
CBLOF(Cluster-Based Local Outlier Factor,基于聚类的本地异常因子)是一个异常检测节点,原理是先用聚类算法把为数据分为K个簇,而后通过设定占比阈值和突降倍数阈值,把簇区分为大簇和小簇,聚类完成后,计算每个点到最邻近大簇的距离(邻近距离),邻近距离越大的数据点为异常数据的概率越大。
CBLOF算法适用于当没有已知正常的数据时,对所有输入的新数据进行异常值的辨别。
输入/输出
输入 | 一个输入端口,接收要异常检测的数据 |
输出 | 一个输出端口,用于输出检测后的结果 |
参数设置
参数名称 | 说明 | 备注 |
选择特征列 | 选择用于计算的特征列 | 选择多个列,建议使用标准化后的特征列 |
绝对多数占比 | 0到1之间的小数, 用于区分大簇和小簇的阈值 | 占比和超过这个数值的会被区分为大簇 |
突降倍数 | 用于区分大簇和小簇的阈值 | 大簇和小簇界限间两个簇大小的倍数差 |
异常占比 | 异常数据点的占比 | 设的越大,判定为异常的数据越多 |
聚类K值 | 聚类训练的K参数 | 把数据分成K个簇 |
示例
如图,对数据进行标准化后接入CBLOF节点,运行完成后输出结果如下:
异常数据会在isOutlier列被标记为1。
注意事项
K值大小会影响聚类后每个簇的大小,应该选择合适的突降倍数来区分大簇和小簇。