4. 特征异常平滑

缺前端控件截图

## 功能说明 该算子该组件可以将输入特征中含有异常的数据平滑到一定区间。特征平滑组件只是将异常取值的特征值修正成正常值,本身不过滤或删除任何记录,输入数据维度和条数都不变。

## 参数说明 | 参数名称 | 参数取值范围 | 默认值 | 参数描述 | | —— | :—-: | :—-: | —— | | 平滑函数 | 字符串 | “zscore” | 平滑函数,包括Zscore平滑、百分位平滑、阈值平滑,暂时仅支持Zscore平滑 | | 置信范围 | 整型 | 3 | Zscore平滑,置信范围默认值为3 | | 是否保留原列 | Y/N | N | 选择是否保留原始的数据列 | | 字段集合 | 字符串 | “” | 选择需要计算的列,如果不选则默认转换全部字段 |

## 算子原理 算子目前使用的平滑方法为Zscore平滑,功能如下: Zscore平滑:如果特征分布遵循正态分布,那么噪音一般集中在-3×alpha和3×alpha之外,ZScore是将该范围的数据平滑到[-3×alpha,3×alpha]之间。 例如某个特征遵循正态分布,均值为0,标准差为3,因此-10的特征值会被识别为异常而修正为-3×3+0,即为-9。同理10会被修正为3×3+0,即为9,如下图所示。 .. image:: uploads/655aa5eaef1851c6adf487aebfe573c9/图片16.png

## 平滑方法介绍 平滑方法包括Zscore平滑、百分位平滑和阈值平滑,功能如下:

  • Zscore平滑:如果特征分布遵循正态分布,那么噪音一般集中在-3×alpha和3×alpha之外,ZScore是将该范围的数据平滑到[-3×alpha,3×alpha]之间。

    例如某个特征遵循正态分布,均值为0,标准差为3,因此-10的特征值会被识别为异常而修正为-3×3+0,即为-9。同理10会被修正为3×3+0,即为9,如下图所示。

https://zos.alipayobjects.com/rmsportal/ZKahLEskaXXUSkR.png
  • 百分位平滑:将分布在[minPer, maxPer]分位之外的数据平滑到minPer和maxPer这两个分位点。

    例如age特征取值0~200,设置minPer为0,maxPer为50%,那么在0~100之外的特征取值都会被修正成0或100。

  • 阈值平滑:将分布在[minThresh, maxThresh]之外的数据平滑到minThresh和maxThresh这两个数据点。

    例如age特征取值0~200,设置minThresh为10,maxThresh为80,那么在0~80之外的特征取值都会被修正成0或80。

## 参数

名称 | 类型 | 是否必传 | 备注 |
——– | —– | —- | ——|
inputarg | array | Y | 字段集合 |
inputarg.#.tbname1 | string | Y | 表名 |
inputarg.#.k | int | Y | 平滑方法,1-Zscore平滑;2-百分位平滑;3-阈值平滑 |
inputarg.#.strategy | String | Y | 平滑参数,不同方法使用不同参数 |
| | | Zscore平滑:置信范围;例如:3 |
| | | 阈值平滑:阈值下/上限,下限在前;例如:-100,100 |
| | | 百分位平滑:百分位下/上限,下限在前;例如:0.0,57.8 |
inputarg.#.signal | int | Y | 是否保留原表数据,默认0,0-不保留,1-保留 |
inputarg.#.columnArray | array | Y | 字段名称集合 |

## 返回

名称 | 类型 | 是否必传 | 备注 |
——– | —– | —- | ——|
result | String | Y | 所有输出的JSON,按节点类型解析 |

## 算法入口及参数

名称 | 示例 | 备注 |
——– | —- | ——|
args[0] | tmptb2019062511473300088201 | 输入表名 |
args[1] | sepal_length,petal_width | 需要异常平滑的列 |
args[2] | tmptb2019062511473300088304 | 输出表名 |
args[3] | 1 | 平滑方法,Zscore平滑 |
args[4] | 3 | 平滑参数,置信范围:3 |
args[5] | 1 | 保留原列 |