本文为您介绍PAI-Studio提供的采样与过滤算法,包括随机采样、加权采样、过滤与映射和分层采样。

随机采样

以随机方式生成采样数据,每次采样是各自独立的。

PAI-Studio支持通过可视化或PAI命令的方式,配置该组件参数:
  • 可视化方式
    页签 参数 描述
    参数设置 采样个数 取值为正整数。
    采样比例 取值为浮点数,范围(0,1)
    放回采样 默认为不放回,勾选后变为放回。
    随机数种子 默认系统自动生成。
    执行调优 核心数 取值为正在数,默认系统自动分配。
    核内存分配 取值为正整数,范围(1, 65536),默认系统自动分配。
  • PAI命令方式
    PAI -name WeightedSample
        -project algo_public \
        -Dlifecycle="28" \
        -DoutputTableName="test2" \
        -DprobCol="previous" \
        -Dreplace="false" \
        -DsampleSize="500" \
        -DinputPartitions="pt=20150501" \
        -DinputTableName="bank_data_partition";
    参数名称 是否必选 参数描述 默认值
    inputTableName 输入表的名称
    inputTablePartitions 输入表中,参与训练的分区。支持以下格式:
    • Partition_name=value
    • name1=value1/name2=value2:多级格式
    说明 如果指定多个分区,则使用英文逗号(,)分隔。
    outputTableName 输出结果表
    sampleSize 采样个数
    说明
    • 当sampleSize与sampleRatio都为空时,系统会报错。
    • 当sampleSize与sampleRatio都不为空时,以sampleSize为准。
    sampleRatio 采样比例,浮点数,范围(0,1)
    replace 是否放回,BOOLEAN类型。 false
    randomSeed 随机数种子,取值范围为正整数。 系统自动分配
    lifecycle 输出表的生命周期,取值范围为[1,3650]
    coreNum 计算的核心数目,取值范围为正整数。 系统自动分配
    memSizePerCore 每个核心的内存(单位是MB),取值范围为(1, 65536) 系统自动分配

加权采样

以加权方式生成采样数据。权重列必须为DOUBLE或BIGINT类型,按照该列值的大小采样。比如所选权重列的值是1.2和1.0,则值为1.2所属样本的被采样的概率就大一些。

PAI-Studio支持通过可视化或PAI命令的方式,配置该组件参数:
  • 可视化方式
    页签 参数 描述
    参数设置 采样个数 取值为正整数。
    采样比例 取值为浮点数,范围(0,1)
    放回采样 默认为不放回,勾选后变为放回。
    权重列 下拉框选择加权列,加权列支持DOUBLE型和BIGINT型。每个值代表所在记录出现的权重,不需要归一化。
    随机数种子 默认系统自动生成。
    执行调优 核心数 取值为正在数,默认系统自动分配。
    核内存分配 取值为正整数,范围(1, 65536),默认系统自动分配。
  • PAI命令方式
    PAI -name WeightedSample
        -project algo_public \
        -Dlifecycle="28" \
        -DoutputTableName="test2" \
        -DprobCol="previous" \
        -Dreplace="false" \
        -DsampleSize="500" \
        -DinputPartitions="pt=20150501" \
        -DinputTableName="bank_data_partition";
    参数名称 是否必选 参数描述 默认值
    inputTableName 输入表的名称
    inputTablePartitions 输入表中,参与训练的分区。支持以下格式:
    • Partition_name=value
    • name1=value1/name2=value2:多级格式
    说明 如果指定多个分区,则使用英文逗号(,)分隔。
    所有分区
    outputTableName 输出结果表
    sampleSize 采样个数
    说明
    • 当sampleSize与sampleRatio都为空时,系统会报错。
    • 当sampleSize与sampleRatio都不为空时,以sampleSize为准。
    sampleRatio 采样比例,浮点数,范围(0,1)。
    probCol 要加权的列,每个值代表所在记录出现的权重,不需要归一化,支持DOUBLE型和BIGINT型。
    replace 是否放回,BOOLEAN类型。 false(默认不放回)
    randomSeed 随机数种子,取值范围为正整数。 系统自动分配
    lifecycle 输出表的生命周期,取值范围为[1,3650]
    coreNum 计算的核心数目,取值范围为正整数。 系统自动分配
    memSizePerCore 每个核心的内存(单位是MB),取值范围为(1, 65536) 系统自动分配

过滤与映射

对数据按照过滤表达式进行筛选,可以修改输出字段名称。

PAI-Studio支持通过可视化或PAI命令的方式,配置该组件参数:
  • 可视化方式
    参数 描述
    选择字段 选择要筛选的列,默认选择全部列。也可以修改输出字段名称。
    过滤条件 通过where条件实现数据过滤,与SQL类似,例如age>40
    说明 仅支持以下操作符:
    • =
    • !=
    • >
    • <
    • >=
    • <=
    • like
    • rlike
  • PAI命令方式
    PAI -name Filter
        -project algo_public \
        -DoutTableName="test_9" \
        -DinputPartitions="pt=20150501" \
        -DinputTableName="bank_data_partition" \
        -Dfilter="age>=40";
    参数名称 是否必选 参数描述
    outputTableName 输出表的名称
    inputPartitions 训练输入表分区。输入表对应的输入分区,选中全表则为None。
    inputTableName 输入表的名称
    filter 通过where条件实现数据过滤,与SQL类似,例如age>40
    说明 仅支持以下操作符:
    • =
    • !=
    • >
    • <
    • >=
    • <=
    • like
    • rlike

分层采样

数据集分层抽取一定比例或者一定数据的随机样本。

PAI-Studio支持通过可视化或PAI命令的方式,配置该组件参数:
  • 可视化方式
    页签 参数 描述
    字段设置 分组列 选择分组列字段,分层按照此列划分。
    参数设置 采样个数 取值为正整数。
    采样比例 取值为浮点数,范围(0,1)
    随机数种子值 系统自动生成,默认值为1234567。
    执行调优 核心数 取值为正在数,默认系统自动分配。
    每个核内存大小 取值为正整数,范围(1, 65536),默认系统自动分配。
  • PAI命令方式
    PAI -name StratifiedSample
        -project algo_public \
        -DinputTableName="test_input" \
        -DoutputTableName="test_output" \
        -DstrataColName="label" \
        -DsampleSize="A:200,B:300,C:500" \
        -DrandomSeed=1007 \
        -Dlifecycle=30;
    参数名称 是否必选 参数描述 默认值
    inputTableName 输入表的名称
    inputTablePartitions 输入表中,参与训练的分区。支持以下格式:
    • Partition_name=value
    • name1=value1/name2=value2:多级格式
    说明 如果指定多个分区,则使用英文逗号(,)分隔。
    所有分区
    outputTableName 输出结果表
    strataColName 层次列,即按照此列作为key分层。
    sampleSize 采样个数
    • 正整数:表示每个层的采样个数。
    • 字符串:格式为strata0:n0,strata1:n1,表示每个层分别配置的采样个数。
    说明
    • 当sampleSize与sampleRatio都为空时,系统会报错。
    • 当sampleSize与sampleRatio都不为空时,以sampleSize为准。
    sampleRatio 采样比例
    • 数字:范围(0,1),表示每个stratum的采样比例。
    • 字符串:格式为strata0:r0,strata1:r1,表示每个层分别配置采样比例。
    randomSeed 随机数种子,取值范围为正整数。 123456
    lifecycle 输出表的生命周期,取值范围为[1,3650]
    coreNum 计算的核心数目,取值范围为正整数。 系统自动分配
    memSizePerCore 每个核心的内存(单位是MB),取值范围为(1, 65536) 系统自动分配