通过数据转换模块可以对数据进行归一化、离散化、Index化或WOE转换。

配置组件

PAI-Studio支持通过可视化或PAI命令方式,配置数据转换模块组件的参数:
  • 可视化方式
    页签 参数 描述
    字段设置 输入表选择的特征列 输入的特征列,默认选择全表。
    不进行转换的数据列 选中的列会原样输出,可以在此指定Label。
    数据转换的类型 支持的转换类型包括归一化离散化转换为WOE值Index
    默认WOE值

    仅当数据转换的类型取值为转换为WOE值时,该参数生效。

    如果配置了该参数,当样本值落入无WOE值的分箱时,使用该值进行替换。如果未配置该参数,则当样本值落入无WOE值的分箱时,算法报错。

    执行调优 核心数 使用的CPU Core数量,默认系统自动分配。
    每个核内存数 每个CPU Core所使用的内存大小,默认系统自动分配。
  • PAI命令方式
    PAI -name data_transform
    -project algo_public
    -DinputFeatureTableName=feature_table
    -DinputBinTableName=bin_table
    -DoutputTableName=output_table
    -DmetaColNames=label
    -DfeatureColNames=feaname1,feaname2
    参数 描述 是否必选 默认值
    inputFeatureTableName 输入特征数据表。
    inputBinTableName 输入分箱结果表。
    inputFeatureTablePartitions 输入特征表选择的分区。 全表
    outputTableName 输出表。
    featureColNames 输入表选择的特征列。 所有列
    metaColNames 不进行转换的数据列,选中的列会原样输出。可以在此列中指定Label及sample_id等。
    transformType 数据转换的类型,取值包括:
    • normalize:归一化。
    • dummy:离散化。
    • woe:转换为WOE值。
    dummy
    itemDelimiter 特征分隔符,仅在进行离散化时有效。 英文逗号(,)
    kvDelimiter KV分隔符,仅在进行离散化时有效。 英文冒号(:)
    lifecycle 输出表的生命周期。
    coreNum 使用的CPU Core数量。 系统自动计算
    memSizePerCore 每个CPU Core所使用的内存大小,单位为MB。 系统自动计算
归一化是指根据输入的分箱信息,将变量值转换为0~1之间,缺失值填充为0。具体的算法如下。
if feature_raw_value == null or feature_raw_value == 0 then
    feature_norm_value = 0.0
else
    bin_index = FindBin(bin_table, feature_raw_value)
    bin_width = round(1.0 / bin_count * 1000) / 1000.0
    feature_norm_value = 1.0 - (bin_count - bin_index - 1) * bin_width
通过数据转换模块进行不同类型的数据转换,其输出格式不同:
  • 归一化和WOE转换的输出为普通表。
  • 离散化将数据转换成Dummy变量时,输出为KV格式的表,生成的变量格式为${feaname}]\_bin\_${bin_id}。以sns变量为例,生成的变量如下:
    • 如果sns落入第二个桶中,则生成的变量为[sns]_bin_2
    • 如果sns为空,则落入空桶,生成的变量为[sns]_bin_null
    • 如果sns不为空,且未落入任何一个已经定义的桶中,则落入else桶,生成的变量为[sns]_bin_else