文档

特征异常平滑

更新时间:

特征平滑组件可以将输入特征中包含异常的数据平滑到一定区间,支持稀疏和稠密数据格式。

背景信息

平滑方法如下:

  • ZScore平滑

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

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

  • 百分位平滑

    用于将分布不在[minPer, maxPer]的数据平滑到minPermaxPer这两个分位点。

    例如,age特征取值0~200,设置minPer0maxPer50%,则不在0~100的特征取值都会被修正成0100

  • 阈值平滑

    用于将分布不在[minThresh, maxThresh]的数据平滑到minThreshmaxThresh这两个数据点。

    例如,age特征取值0~200,设置minThresh10maxThresh80,则不在0~80的特征取值都会被修正成080

  • 箱线图平滑

    通过数据的4分位线构造光滑的上下界阈值,构造方式为:minThresh=q1-1.5(q3-q1)maxThresh=q3+1.5(q3-q1)

说明

特征平滑算法组件只是将异常取值的特征值修正为正常值,本身不过滤或删除任何记录,输入数据维度和条数均不变。

组件配置

您可以使用以下任意一种方式,配置特征异常平滑组件参数。

方式一:可视化方式

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

页签

参数

描述

字段设置

选择平滑特征列

需要平滑处理的特征列。

标签列

如果您设置了该字段,则可以通过可视化方式查看特征到目标变量的x-y分布直方图。

参数设置

平滑方法

平滑方法如下:

  • ZScore平滑

  • 百分位平滑

  • 阈值平滑

  • 箱线图平滑

置信范围

置信水平。当平滑方法为ZScore平滑时需要配置该参数。

阈值下限

阈值最小值,默认为-9999,表示不设置。

当平滑方法为阈值平滑时需要配置该参数。

阈值上限

阈值最大值,默认为-9999,表示不设置。

当平滑方法为阈值平滑时需要配置该参数。

百分位下限

最低百分位。

当平滑方法为百分位平滑箱线图平滑时需要配置该参数。

百分位上限

最高百分位。

当平滑方法为百分位平滑箱线图平滑时需要配置该参数。

方式二:PAI命令方式

使用PAI命令方式,配置该组件参数。您可以使用SQL脚本组件进行PAI命令调用,详情请参见SQL脚本

PAI -name fe_soften_runner -project algo_public
    -DminThresh=5000
    -Dlifecycle=28
    -DsoftenMethod=min-max-thresh
    -DsoftenCols=nr_employed
    -DmaxThresh=6000
    -DinputTable=pai_dense_10_1
    -DoutputTable=pai_temp_2262_20381_1;

参数名称

是否必选

参数描述

默认值

inputTable

输入表的表名

inputTablePartitions

输入表中指定参与训练的分区,格式为Partition_name=value

如果是多级分区,格式为name1=value1/name2=value2;

如果指定多个分区,则需要使用,隔开。

输入表的所有分区。

outputTable

平滑后的结果表。

labelCol

标签字段。如果您设置了该字段,则可以通过可视化方式查看特征到目标变量的x-y分布直方图。

默认为空

categoryCols

将勾选的字段作为枚举特征处理。

默认为空

softenCols

选择需要平滑的特征。如果特征为稀疏特征时,系统会自动化筛选。

softenMethod

平滑方法如下:

  • ZScore:ZScore平滑

  • min-max-per:百分位平滑

  • min-max-thresh:阈值平滑

  • boxplot:箱线图平滑

ZScore

softenTopN

当未勾选softenCols参数时,系统自动挑选TopN个需要平滑的特征。取值为正整数。

10

cl

置信水平。当平滑方法为ZScore平滑时需要配置该参数。

10

minPer

最低百分位。当平滑方法为百分位平滑箱线图平滑时需要配置该参数。

0.0

maxPer

最高百分位。当平滑方法为百分位平滑箱线图平滑时需要配置该参数。

1.0

minThresh

阈值最小值。当平滑方法为阈值平滑时需要配置该参数。

-9999

maxThresh

阈值最大值。当平滑方法为阈值平滑时需要配置该参数。

-9999

isSparse

是否为k:v的稀疏特征,取值如下:

  • true

  • false

默认为稠密数据。

false

itemSpliter

稀疏特征item的分隔符。

,

kvSpliter

稀疏特征item的分隔符。

lifecycle

结果表生命周期。取值为正整数。

7

coreNum

节点个数。与memSizePerCore参数配对使用,取值为[1, 9999]的正整数。

系统自动分配。

memSizePerCore

单个节点内存大小,单位为兆。取值为[2048, 64 *1024]的正整数。

系统自动分配。

示例

  • 输入数据

    create table if not exists pai_dense_10_1 as
    select
        nr_employed
    from bank_data limit 10;

    nr_employed

    5228.1

    5195.8

    4991.6

    5099.1

    5076.2

    5228.1

    5099.1

    5099.1

    5076.2

    5099.1

  • 参数配置

    平滑特征选择nr_employed参数设置平滑方法选择阈值平滑阈值下限5000阈值上限6000,如下图所示。平滑特征

  • 运行结果

    nr_employed

    5228.1

    5195.8

    5000.0

    5099.1

    5076.2

    5228.1

    5099.1

    5099.1

    5076.2

    5099.1