局部异常因子异常检测根据数据样本的局部异常因子值(Local Outlier Factor, LOF)判断样本是否异常。本文为您介绍局部异常因子异常检测的参数配置。
使用限制
支持运行的计算资源为MaxCompute。
组件配置
您可以通过以下任意一种方式,配置局部异常因子异常检测参数。
方式一:可视化方式
在Designer工作流页面配置组件参数。
页签 | 参数名称 | 描述 |
字段设置 | 特征列名数组 | 特征列名的数组。 |
分组列名数组 | 分组列名的数组。 | |
tensor列 | tensor列。 | |
向量列名 | 向量列对应的列名。 | |
参数设置 | 预测结果列名 | 预测结果列的列名。 |
距离度量方式 | 聚类使用的距离类型,默认为EUCLIDEAN。取值如下:
| |
每组最大异常点数目 | 每组最大的异常点数目。 | |
最大异常点比例 | 算法检测异常点的最大比例。 | |
每组最大样本数目 | 每组最大的样本数目。 | |
相邻点个数 | 构造近邻图使用的相邻点个数,默认为5。 | |
异常评分阈值 | 当评分大于该阈值时,判定为异常点。 | |
预测详细信息列名 | 预测详细信息列的列名。 | |
组件多线程线程个数 | 组件多线程的线程个数,默认为1。 | |
执行调优 | 节点个数 | 节点个数,与参数单个节点内存大小配对使用,正整数。范围[1, 9999]。 |
单个节点内存大小,单位M | 单个节点内存大小,单位MB,正整数。范围[1024, 64*1024]。 |
方式二:Python代码方式
使用PyAlink脚本组件配置该组件参数。您可以使用PyAlink脚本组件进行Python代码调用,详情请参见PyAlink脚本。
参数名称 | 是否必选 | 描述 | 默认值 |
predictionCol | 是 | 预测结果列的列名。 | 无 |
distanceType | 否 | 聚类使用的距离类型,取值如下:
| EUCLIDEAN |
featureCols | 否 | 特征列名数组。 | 全选 |
groupCols | 否 | 分组列名,支持多列。 | 无 |
maxOutlierNumPerGroup | 否 | 每组最大的异常点数目。 | 无 |
maxOutlierRatio | 否 | 算法检测异常点的最大比例。 | 无 |
maxSampleNumPerGroup | 否 | 每组最大的样本数目。 | 无 |
outlierThreshold | 否 | 当评分大于该阈值时,判定为异常点。 | 无 |
predictionDetailCol | 否 | 预测详细信息列的列名。 | 无 |
tensorCol | 否 | tensor列。 | 无 |
vectorCol | 否 | 向量列对应的列名。 | 无 |
numNeighbors | 否 | 构造近邻图使用的相邻点个数。 | 5 |
numThreads | 否 | 组件多线程的线程个数。 | 1 |
Python代码方式的使用示例如下。
import pandas as pd
df = pd.DataFrame([
[0.73, 0],
[0.24, 0],
[0.63, 0],
[0.55, 0],
[0.73, 0],
[0.41, 0]
])
dataOp = BatchOperator.fromDataframe(df, schemaStr='val double, label int')
outlierOp = LofOutlierBatchOp()\
.setFeatureCols(["val"])\
.setOutlierThreshold(3.0)\
.setPredictionCol("pred")\
.setPredictionDetailCol("pred_detail")
evalOp = EvalOutlierBatchOp()\
.setLabelCol("label")\
.setPredictionDetailCol("pred_detail")\
.setOutlierValueStrings(["1"])
metrics = dataOp\
.link(outlierOp)\
.link(evalOp)\
.collectMetrics()
print(metrics)