分层采样算法是一种数据抽样方法,通过指定的分组列将数据集划分为多个层或组,并在每个组内独立地进行随机抽样。此方法确保每个组在样本中都有适当的代表性,从而提高样本的整体代表性,特别适用于处理数据不平衡问题。通过这种方式,分层采样有助于提升模型训练的准确性和稳定性。
配置组件
方式一:可视化方式
在Designer工作流页面添加分层采样组件,并在界面右侧配置相关参数:
参数类型 | 参数 | 描述 |
字段设置 | 分组列 | 选择分组列字段,分层按照此列划分。 |
参数设置 | 采样个数 | 取值为正整数。 |
采样比例 | 取值为浮点数,范围(0,1)。 | |
随机种子值 | 系统自动生成,默认值为1234567。 | |
执行调优 | 计算核心数 | 取值为正整数,默认系统自动分配。 |
每个核内存大小 | 取值为正整数,范围(1, 65536),默认系统自动分配。 |
方式二:PAI命令方式
使用PAI命令配置分层采样组件参数。您可以使用SQL脚本组件进行PAI命令调用,详情请参见场景4:在SQL脚本组件中执行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 | 否 | 所有分区 | 输入表中,参与训练的分区。支持以下格式:
说明 指定多个分区时,分区之间使用英文逗号(,)分隔,例如name1=value1,value2。 |
outputTableName | 是 | 无 | 输出结果表。 |
strataColName | 是 | 无 | 层次列,即按照此列作为key分层。 |
sampleSize | 否 | 无 | 采样个数,取值:
说明
|
sampleRatio | 否 | 无 | 采样比例,取值:
|
randomSeed | 否 | 123456 | 随机数种子,取值范围为正整数。 |
lifecycle | 否 | 无 | 输出表的生命周期,取值范围为[1,3650]。 |
coreNum | 否 | 系统自动分配 | 计算的核心数目,取值范围为正整数。 |
memSizePerCore | 否 | 系统自动分配 | 每个核心的内存(单位是MB),取值范围为(1, 65536)。 |