华为云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)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家