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

背景信息

平滑方法如下:
  • 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)

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

组件配置

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

方式一:可视化方式

在PAI-Designer(原PAI-Studio)工作流页面配置组件参数。
页签参数描述
字段设置选择平滑特征列需要平滑处理的特征列。
标签列如果您设置了该字段,则可以通过可视化方式查看特征到目标变量的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