局部异常因子异常检测

局部异常因子异常检测根据数据样本的局部异常因子值(Local Outlier Factor, LOF)判断样本是否异常。本文为您介绍局部异常因子异常检测的参数配置。

使用限制

支持运行的计算资源为MaxCompute。

组件配置

您可以通过以下任意一种方式,配置局部异常因子异常检测参数。

方式一:可视化方式

Designer工作流页面配置组件参数。

页签

参数名称

描述

字段设置

特征列名数组

特征列名的数组。

分组列名数组

分组列名的数组。

tensor

tensor列。

向量列名

向量列对应的列名。

参数设置

预测结果列名

预测结果列的列名。

距离度量方式

聚类使用的距离类型,默认为EUCLIDEAN。取值如下:

  • EUCLIDEAN

  • COSINE

  • INNERPRODUCT

  • CITYBLOCK

  • JACCARD

  • PEARSON

每组最大异常点数目

每组最大的异常点数目。

最大异常点比例

算法检测异常点的最大比例。

每组最大样本数目

每组最大的样本数目。

相邻点个数

构造近邻图使用的相邻点个数,默认为5。

异常评分阈值

当评分大于该阈值时,判定为异常点。

预测详细信息列名

预测详细信息列的列名。

组件多线程线程个数

组件多线程的线程个数,默认为1。

执行调优

节点个数

节点个数,与参数单个节点内存大小配对使用,正整数。范围[1, 9999]。

单个节点内存大小,单位M

单个节点内存大小,单位MB,正整数。范围[1024, 64*1024]。

方式二:Python代码方式

使用PyAlink脚本组件配置该组件参数。您可以使用PyAlink脚本组件进行Python代码调用,详情请参见PyAlink脚本。

参数名称

是否必选

描述

默认值

predictionCol

预测结果列的列名。

distanceType

聚类使用的距离类型,取值如下:

  • EUCLIDEAN

  • COSINE

  • INNERPRODUCT

  • CITYBLOCK

  • JACCARD

  • PEARSON

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)