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

使用限制

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

组件配置

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

方式一:可视化方式

在PAI-Designer工作流页面配置组件参数。
页签 参数名称 描述
字段设置 特征列名数组 特征列名的数组。
分组列名数组 分组列名的数组。
tensor列 tensor列。
向量列名 向量列对应的列名。
参数设置 预测结果列名 预测结果列的列名。
距离度量方式 聚类使用的距离类型,默认为EUCLIDEAN。取值如下:
  • EUCLIDEAN
  • COSINE
  • INNERPRODUCT
  • CITYBLOCK
  • JACCARD
  • PEARSON
每组最大异常点数目 每组最大的异常点数目。
最大异常点比例 算法检测异常点的最大比例。
每组最大样本数目 每组最大的样本数目。
相邻点个数 构造近邻图使用的相邻点个数,默认为5。
异常评分阈值 当评分大于该阈值时,判定为异常点。
预测详细信息列名 预测详细信息列的列名。
组件多线程线程个数 组件多线程的线程个数,默认为1。
执行调优 节点个数 节点个数,与参数单个节点内存大小配对使用,正整数。范围[1, 9999]。
单个节点内存大小,单位M 单个节点内存大小,单位MB,正整数。范围[1024, 64*1024]。

方式二:Python代码方式

使用Python脚本V2组件,配置该组件参数。您可以使用Python脚本V2组件进行Python代码调用,详情请参见Python脚本V2
参数名称 是否必选 描述 默认值
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)