华为云AI开发平台ModelArts特征异常检测_云淘科技

概述

特征异常检测的方法包括箱型图(Box-plot)和AVF(Attribute Value Frequency)

箱型图用于检测连续值类特征的数据,根据四分位数检测异常特征。

AVF用于检测枚举值类特征的数据,根据枚举特征的取值频率及阈值检测异常特征。

箱型图异常检测

箱形图可以用来观察数据整体的分布情况,利用中位数,25%分位数,75%分位数,上边界,下边界等统计量来描述数据的整体分布情况。通过计算这些统计量,生成一个箱体图,箱体包含了大部分的正常数据,而在箱体上边界和下边界之外的,就是异常数据。

其中上下边界的计算公式如下:

UpperLimit=Q3+1.5IQR=75%分位数+(75%分位数-25%分位数)*1.5,

LowerLimit=Q1-1.5IQR=25%分位数-(75%分位数-25%分位数)*1.5

(将数据由小到大排序,处于中间的为中位数,即50%分位数,在75%位置的即为75%分位数或四分之三分位数——Q3,在25%位置的即为25%分位数或四分之一分位数——Q1)

AVF异常检测(Attribute Value Frequency)

AVF算法全称Attribute Value Frequency,针对非数值型的数据,即类别离散数据的算法。具体步骤如下:

将所有的数据点都标为非异常点;
计算所有每一个属性值的频数;
计算每一个点的AVF score,即样本点x的每一个属性值对应的频数之和除以属性总数,这里的属性指的都是category的属性。

AVF score值越小,样本越异常。

输入

参数

子参数

参数说明

inputs

dataframe

inputs为字典类型,dataframe为pyspark中的DataFrame类型对象

输出

参数

子参数

参数说明

outputs

pipeline_model

输出的模型文件

output_dataframe

过滤后的数据表

model_info_dataframe

模型信息表

参数说明

参数名称

参数描述

是否必选

默认值

selected_cols

输入特征,字段类型没有限制。

detect_strategy

系统支持Box-plot和AVF选项。Box-plot用于检测连续值类特征;AVF用于检测枚举值类特征。取值“Box-plot”、“AVF”

Box-plot

样例

数据样本

point

1

2

3

4

5

6

7

8

9

1

1

1

1

1

2

10

3

1

1

2

2

1

1

1

2

1

2

1

1

3

1

1

1

1

2

3

3

1

1

4

4

1

1

1

2

1

2

1

1

5

4

1

1

1

2

1

3

1

1

6

6

1

1

1

2

1

3

1

1

7

7

3

2

10

5

10

5

4

4

8

3

1

1

1

2

1

2

1

1

9

1

1

1

1

2

1

3

1

1

10

3

2

1

1

1

1

2

1

1

11

5

1

1

1

2

1

2

1

1

12

2

5

3

3

6

7

7

5

1

配置流程

运行流程

运行示例

Box_plot

params = {     
"inputs": inputs,     
"selected_cols": "1,2,3,4,5,6,7,8,9",      
"detect_strategy": "Box_plot"
} 

过滤后数据表

过滤掉了第1、7、10、12行

point

1

2

3

4

5

6

7

8

9

2

2

1

1

1

2

1

2

1

1

3

1

1

1

1

2

3

3

1

1

4

4

1

1

1

2

1

2

1

1

5

4

1

1

1

2

1

3

1

1

6

6

1

1

1

2

1

3

1

1

8

3

1

1

1

2

1

2

1

1

9

1

1

1

1

2

1

3

1

1

11

5

1

1

1

2

1

2

1

1

模型表

model_key

model_value

detect_model

{‘featureName’: ‘1’, ‘mid’: 3.0, ‘q1’: 1.0, ‘q3’: 4.0, ‘upper_bound’: 8.5, ‘lower_bound’: -3.5}

detect_model

{‘featureName’: ‘2’, ‘mid’: 1.0, ‘q1’: 1.0, ‘q3’: 1.0, ‘upper_bound’: 1.0, ‘lower_bound’: 1.0}

detect_model

{‘featureName’: ‘3’, ‘mid’: 1.0, ‘q1’: 1.0, ‘q3’: 1.0, ‘upper_bound’: 1.0, ‘lower_bound’: 1.0}

detect_model

{‘featureName’: ‘4’, ‘mid’: 1.0, ‘q1’: 1.0, ‘q3’: 1.0, ‘upper_bound’: 1.0, ‘lower_bound’: 1.0}

detect_model

{‘featureName’: ‘5’, ‘mid’: 2.0, ‘q1’: 2.0, ‘q3’: 2.0, ‘upper_bound’: 2.0, ‘lower_bound’: 2.0}

detect_model

{‘featureName’: ‘6’, ‘mid’: 1.0, ‘q1’: 1.0, ‘q3’: 3.0, ‘upper_bound’: 6.0, ‘lower_bound’: -2.0}

detect_model

{‘featureName’: ‘7’, ‘mid’: 3.0, ‘q1’: 2.0, ‘q3’: 3.0, ‘upper_bound’: 4.5, ‘lower_bound’: 0.5}

detect_model

{‘featureName’: ‘8’, ‘mid’: 1.0, ‘q1’: 1.0, ‘q3’: 1.0, ‘upper_bound’: 1.0, ‘lower_bound’: 1.0}

detect_model

{‘featureName’: ‘9’, ‘mid’: 1.0, ‘q1’: 1.0, ‘q3’: 1.0, ‘upper_bound’: 1.0, ‘lower_bound’: 1.0}

AVF

params = {     
"inputs": inputs,     
"selected_cols": "1,2,3,4,5,6,7,8,9",
"detect_strategy": "AVF"} 

过滤后数据表

过滤掉了第12行

point

1

2

3

4

5

6

7

8

9

1

1

1

1

1

2

10

3

1

1

2

2

1

1

1

2

1

2

1

1

3

1

1

1

1

2

3

3

1

1

4

4

1

1

1

2

1

2

1

1

5

4

1

1

1

2

1

3

1

1

6

6

1

1

1

2

1

3

1

1

8

3

1

1

1

2

1

2

1

1

9

1

1

1

1

2

1

3

1

1

10

3

2

1

1

1

1

2

1

1

11

5

1

1

1

2

1

2

1

1

模型表

model_key

model_value

detect_model

{‘featureName’: [‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’], ‘frequency_info’: {‘mid’: 73.0, ‘q1’: 58.0, ‘q3’: 74.0, ‘threshold’: 34.0}}

父主题: 特征工程

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家