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

背景信息

平滑方法如下:
  • ZScore平滑

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

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

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

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

  • 阈值平滑

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

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

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

参数配置

PAI-Studio支持通过可视化或PAI命令的方式,配置该组件参数,如下所示:
  • 可视化方式
    页签 参数 描述
    字段设置 选择平滑特征列 需要平滑处理的特征列。
    标签列 如果您设置了该字段,则可以通过可视化方式查看特征到目标变量的x-y分布直方图。
    参数设置 平滑方法 平滑方法如下:
    • ZScore平滑
    • 百分位平滑
    • 阈值平滑
    • 箱线图平滑
    置信范围 置信水平。当平滑方法为ZScore平滑时需要配置该参数。
    阈值下限 阈值最小值,默认为-9999,表示不设置。

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

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

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

    百分位下限 最低百分位。

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

    百分位上限 最高百分位。

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

  • PAI命令方式
    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