目录
【第六章:Sentosa_DSML社区版-行处理】
Sentosa_DSML社区版-行处理:行处理类算子是数据读出后,对表状结构数据,行维度的处理,包括行的增加,修改,删除,查询等。行处理类算子属于算子流中的中间算子。
6.1 填充
1.算子介绍
填充算子(FillNode)是可以对数据列的值根据表达式进行填充,对选中的列用相应填充值进行填充。
2.算子类型
行处理算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
column_name | 填充列 | 必填 | String | 默认(无) | 必须是inputDataModel中的列 | 指定填充列 |
expr_condition | 填充条件 | 必填 | String | 默认(无) | 合法的 spark sql表达式 | 填充条件表达式 |
expr_value | 填充值 | 必填 | String | 默认(无) | 合法的 spark sql表达式 | 填充值表达式 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作
(2)算子属性设置
填充列可以为连续型和离散型字段;填充条件和填充值必须是合法的spark sql表达式;即将填充列中满足填充条件的数据,用填充值替换。
填充算子属性设置
填写填充条件和填充值时算子会给出函数列表以帮助填写,
填充条件表达式构建示例
属性设置表示当class列和english列中的第一个非空值大于3时,将填充列“class”中的值替换为0;原始数据如图所示,
原始数据
由于class列中的数据不为空,所以class列和english列中的第一个非空值即为class列的值,即class中大于3的数据行都是满足替换条件的,因此填充算子的运行结果如图所示。
填充算子运行结果
当填充值为String类型时,需要用英文双引号或单引号包裹填充值,
当填充值为String时的属性设置
(3)算子的运行
通过数据源算子读取数据,中间可以接任意个数据处理算子,然后接一个填充算子,后可接任意个数据处理算子。
6.2 排序
1.算子介绍
排序算子(SortNode)是用来对数据按照指定的列进行升序或降序排列。
2.算子类型
行处理算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
expr | 表达式 | 必填 | Map<String,Object> | 无 | 排序方式支持asc和desc | 指定排序列和排序方式 |
order | 列排序次序 | 必填 | Array<String> | 无 | 排序列列表 | 排序列列表 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作
(2)算子属性设置
算子属性说明表格中属性“表达式”为Map类型,key为排序列,前端显示为“列名”;value为排序方式,分为为asc(升序)和desc(降序),前端显示为“排序方式”。列排列次序前端不显示,记录对数据排序时各“列名”的顺序。排序列可以是离散型和连续型。
排序算子属性设置
该设置表示对数据按照Sepal_Length列的大小进行升序排序,当有多行Sepal_Length列的取值相同时按照Petal_Length列进行降序排序。
排序算子运行结果
(3)算子的运行
通过数据源算子读取数据,中间可以接任意个数据处理算子,然后接一个排序算子,后可接任意个数据处理算子。
6.3 过滤
1.算子介绍
过滤算子(FilterNode)用来对数据按照指定表达式过滤出符合条件的数据。
2.算子类型
行处理算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
Keep | 是否保留过滤项 | 必填 | Boolean | 是 | 单选:是,否 | 保留的数据是否是满足条件的数据 |
expr | 构建表达式 | 必填 | String | 无 | string 为合法的spark sql 表达式 | 指定过滤表达式 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作
(2)算子属性设置
算子属性说明表格中属性“表达式”必须是合法的spark sql表达式。
过滤算子属性设置
图中表达式表示保留 id取值不为空且当class列和english列中的第一个非空值大于3的数据;
原始数据
由于class列中的数据不为空,所以class列和english列中的第一个非空值即为class列的值,即id不为空且class中大于3的数据行都是满足替换条件的。
过滤算子运行结果
如图保留数据中去掉了不满足表达式的数据。
(3)算子的运行
通过数据源算子读取数据,中间可以接任意个数据处理算子,然后接一个过滤算子,后可接任意个数据处理算子。
6.4 聚合
1.算子介绍
聚合算子(AggregateNode) 能够对数据进行聚合操作,可以对当前数据按照指定列进行聚合,并使用聚合函数统计其余列的信息。
2.算子类型
行处理算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
key | 用来聚合的列 | 可选 | List<String> | 无 | 指定聚合的key键 | |
count | 是否生成count列 | 必选 | Boolean | true | count列和可用列至少要生成一个 | 是否生成count列 |
count_name | count列列名 | count为true时必填 | String | count | count列 列名 | |
agg_columns | 可用列的聚合方式 | 可选 | Map<String,List<String>> | 无 | 要计算平均数的列 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作
(2)算子属性设置
聚合算子的属性设置界面如图所示。
聚合算子属性设置界面
图中右上方“用来聚合的列”即为聚合时的key健;“可用的列”对应下方表格中的“字段”,每一个字段对应14种聚合方式。当选择生成count列时,必须填count列列名,默认值为“count”
14种聚合方式
可拖动侧边栏,或滚动条查看所有聚合方式。可用列和集合方式存储为Map,可用列为key,聚合方式为value,聚合方式为多选用List<String>存储。
聚合算子属性设置
聚合算子运行结果
(3)算子的运行
通过数据源算子读取数据,中间可以接任意个数据处理算子,然后接一个聚合算子,后可接任意个数据处理算子。
6.5 样本
1.算子介绍
样本算子(SampleNode)主要是为了数据采样使用的,可以帮助人们快速、直观地了解总体分布中数据的结构特性。
2.算子类型
行处理算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
sample_method | 取样方式 | 必填 | String | line | [line,fraction]中的一种 | 指定取样方式 |
line_number | 行数 | 必填 | Integer | 100 | >0 | 指定取样的行数 |
fraction | 取样比 | 必填 | Double | 无 | (0,1)之间的数 | 选fraction取样,每一行数据被抽取的概率 |
with_replacement | 是否把原数据放回 | 必填 | Boolean | 否 | 单选:是,否 | 选fraction取样,设置是否每次把原数据放回 |
is_random | 是否随机采样 | 必填 | Boolean | 是 | 单选:是,否 | 选fraction取样,是否随机采样 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作
(2)算子属性设置
样本算子取样方式可以分为“按行取样”和“按样本取样”,当按行取样时,需要设置取样的行数。
按行取样属性设置
按行取样运行结果
当“按样本取样”时,需要设置取样的比例,是否返回取样等。
按样本取样属性设置
如果原数据有20条,那么抽样后数据为10条。
(3)算子的运行
通过数据源算子读取数据,中间可以接任意个数据处理算子,然后接一个样本算子,后可接任意个数据处理算子。
6.6 时序数据重采样
1.算子介绍
时序数据重采样算子(TimeSeriesResampleNode)主要用于时间序列预测数据预处理,按照指定的分析频率和采样频率,对时序数据做数据处理。
2.算子类型
行处理算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
time_col | 时间列 | 必选 | String | 无 | Data/ Datatime | 设置时间列 |
value_col | 数据列 | 必选 | String | 无 | 设置数据列 | |
key_col | key列 | 可选 | String | 无 | 不选择即为auto | 设置key键列 |
sample_frequency | 采样频率 | 必选 | String | minute | 单选:year,month,day,hour,minute,second | 设置数据的采样频率 |
analyze_frequency | 分析频率 | 必选 | String | minute | 单选:year,month,day,hour,minute,second | 设置数据的分析频率 |
sample_time_span | 采样时间间隔 | 必填 | Integer | 1 | 设置采样的时间间隔 | |
analyze_time_span | 分析时间间隔 | 必填 | Integer | 1 | 设置分析的时间间隔 | |
aggr_function | 聚合方法 | 必选 | String | sum | 单选:sum,mean,max,min | 设置聚合方法 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作。
(2)算子属性设置
时序数据重采样算子的输入数据必须是时序数据清洗算子处理后的数据。时间列必须为DataTime/Data类型,时序数据清洗后的部分数据如图所示。
清洗后的时序数据
对图中数据进行重采样,时序数据采样算子的属性设置如图所示。
时序数据采样算子属性设置
图中时序数据采样算子的采样时间间隔需大于等于图中原数据的时间间隔,分析时间间隔需大于等于采样时间间隔。
时序数据采样算子计算结果
(3)算子的运行
通过数据源算子读取数据,中间可以接任意个数据处理算子,再接时序数据采样算子,然后可继续接任意个数据处理算子。
6.7 时序数据清洗
1.算子介绍
时序数据清洗算子(TimeSeriesCleaningNode)主要用于时间序列预测的数据预处理,按照指定的的填充方式,对时间序列预测数据做填充。
2.算子类型
行处理算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
time_col | 时间列 | 必选 | String | 无 | Data/ Datatime | 设置时间列 |
key_col | key列 | 可选 | String | 无 | 不选择即为auto | 设置key键列 |
sample_frequency | 采样频率 | 必填 | String | minute | 单选:year,month,day,hour,minute,second | 设置采样频率 |
sample_time_span | 采样时间间隔 | 必填 | Integer | 1 | 设置采样时间间隔 | |
fill_method | 填充方法 | 必填 | Map<String,HashMap<String,String>> | 无 | 填充方式支持:linear,nearest,next,previous | 设置填充表达式 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作。
(2)算子属性设置
时序数据清洗算子的时间列必须为Data/DataTime类型,其属性设置如图所示。
时序清洗算子属性设置
设置表示按照时间列“time”进行数据处理,使得同一key列的数据时间相隔5分钟,对于原始数据中不存在的数据进行填充,原数据间隔不到5分钟的时间进行删改规范,“value1”列填充时用相邻最近的下一时间数据进行填充。
填充前数据
填充后数据
其中填充方式的可选项如图所示。
缺失值填充方式
各填充方式的说明如下表所示。
方法 | 说明 |
previous | 上一个非缺失值 |
next | 下一个非缺失值 |
nearest | 距离最近的非缺失值 |
linear | 相邻非缺失值的线性插值 |
userSpecifiedValue | 用户自定义值 |
缺失值填充方式说明
当选择userSpecifiedValue时,需要输入自定义的填充值
自定义填充值设置
(3)算子的运行
通过数据源算子读取数据,中间可以接任意个数据处理算子,然后接一个时序数据清洗算子,后可接任意个数据处理算子。
6.8 存储重分区
1.算子介绍
存储重分区算子(RepartitionNode)是对数据进行重新分区。
2.算子类型
行处理算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
repartition_model | 重分区模式 | 必填 | String | hash | 可选项为:hash,range,coalesce | 重分区模式 |
num_partitions | 重分区数 | 必填 | String | 无 | >0 | 重分区数 |
partition_expr | 重分区指定列 | 必填 | Array[String] | 无 | 针对DataModel中的各列,支持多列(重分区模式为hash,range时设置) | 重分区指定列 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作
(2)算子属性设置
存储重分区算子支持的分区方式有hash,range和coalesce,
存储重分区算子属性设置
当分区方式为coalesce时,默认shuffle为false,如果重分区数大于输入数据的重分区数,则分区无效。
(3)算子的运行
通过数据源算子读取数据,中间可以接任意个数据处理算子,然后接一个样本重分区算子,后可接数据输出算子查看分区结果或任意个数据处理算子。
6.9 去重
1.算子介绍
去重算子(DistinctNode)是一个进行数据行处理的算子,它可以去除数据中用户定义的重复行。
2.算子类型
行处理算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
distinct_mode | 去重方法 | 必选 | String | “keep_first” | 枚举,必须是 “keep_first” 或者“delete_first” | 去重方法,举例,{“distinct_mode”:“delete_first”} |
distinct_columns | 去重列 | 必选 | List<String> | 无 | List 成员必须是inputDataModel中的列,List 长度大于等于 1 | 用来去重的列,举例,{“distinct_columns ”:[“id”,“age”]} |
distinct_mode | 去重方法 | 必选 | String | “keep_first” | 枚举,必须是 “keep_first” 或者“delete_first” | 去重方法,举例,{“distinct_mode”:“delete_first”} |
order_columns | 排序列 | 可选 | List<String> | 无 | List 成员必须是inputDataModel中的列,List 长度大于等于 1 | 用来排序的列,举例,{“order_columns”:[“math”,“english”]} |
order_mode | 排序方式 | 可选 | List<String> | 无 | List 长度等于 order_columns,指明是升序还是降序 | 排序方法,举例,{“order_columns”:[“asc”,“desc”]} |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作
(2)算子属性设置
去重算子的属性设置界面如图所示
去重算子属性设置
去重列可以为多列。图中设置的执行逻辑为:按照去重列Species进行分组,然后按照排序列Speal_Length进行排序,再按照去重列进行去重,keep_first为保留各分组中的第一条数据。运行结果如图所示。
去重算子运行结果
当去重方法为delete_first时,表示删去各分组中的第一行数据,保留其他数据,
删除第一行数据运行结果
(3)算子的运行
通过数据源算子读取数据,中间可以接任意个数据处理算子,然后接去重算子,后可接任意个数据处理算子。
6.10 异常值缺失值填充
1.算子介绍
异常值缺失值填充算子(OutlierAndMissingValProNode)是对数据中的异常值和缺失值按照检测规则和填充规则进行处理。
2.算子类型
行处理算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
columns | 配置列选择 | 必选 | HashMap<String, HashMap<String,Object>> | 无 | Map的Key值必须是inputDataModel中的列 | 参数集合 |
outlier_detect_method | 异常检测策略 | 必选 | HashMap<String,String> | 默认(outlier_detect_none) | Map的Key值必须是inputDataModel中的列 | 异常值检测策略:outlier_detect_statistics,简单统计,由用户输入规则;outlier_detect_third_principle,3∂原则:这个原则有个条件:数据需要服从正态分布;outlier_detect_iqr,四分位距(IQR);outlier_detect_none,保留 |
outlier_fill_method | 异常值填充策略 | 必选 | HashMap<String,String> | 默认(outlier_fill_hold) | Map的Key值必须是inputDataModel中的列 | 异常值填充方法:outlier_fill_delete,删除异常值;outlier_fill_as_miss,按照缺失值方法填充;outlier_fill_hold,保留异常值 |
miss_fill_method | 缺失值填充策略 | 必选 | HashMap<String,String> | 默认(miss_fill_delete_val) | Map的Key值必须是inputDataModel中的列 | 缺失值填充策略:miss_fill_none,保留;miss_fill_fixed_val,固定值;miss_fill_mean_val,平均值;miss_fill_median_val,中位数;miss_fill_mode_val,众数;miss_fill_interpolate_val,插值法 暂没实现;miss_fill_predict_val,模型预测 暂没实现;miss_fill_delete_val,删除;miss_fill_knn_val,KNN 暂没实现 |
expression | 列表达式组合参数 | 必选 | HashMap<String,String> | Map的Key值必须是inputDataModel中的列 | 列表达式组合参数,多列用分号分格 | |
fix_value | 固定值 | 必选 | HashMap<String,String> | Map的Key值必须是inputDataModel中的列 | 固定值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作。
(2)算子属性设置
异常值缺失值填充算子的属性设置界面如图所示。
异常值缺失值填充算子的属性设置界面
点击图中配置列选择,选择需要进行缺失值、异常值处理的列,如图4.2.10-2所示。
选择配置列
异常值检测策略和缺失值填充策略如图所示。
异常值检测策略和缺失值填充策略
异常值检测策略可以选择保留、3∂原则(只适用于正态分布数据)、四分位距、或者保留。
注:当配置列为非数值型数据时,检测策略无法使用3∂原则和四分位距原则,填充策略无法选择平均值、中位数
配置列选择非数值型数据时属性设置
当选择输入规则时需要指定异常值的判断规则,属性设置如图所示。
指定异常值的判断规则
原始数据如图所示
原始数据
异常值缺失值填充算子点击输入规则后属性设置如图所示。
图4.2.10-7算子属性设置
算子处理后数据
(3)算子的运行
通过数据源算子读取数据,中间可以接任意个数据处理算子,然后接异常值缺失值算子,后可接任意个数据处理算子。
6.11 样本分区
1.算子介绍
样本分区算子(PartitionNode)主要是为了将数据随机分为训练集,测试集,验证集(可以没有),在新生成的数据添加一列Partition_Column,用以区别不同的数据集,方便后续模型化算子在不同数据集模型的训练,验证和测试。
2.算子类型
行处理算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
isSerialData | 是否为序列数据 | 必选 | Boolean | 否 | 单选:是,否 | 用于分区的数据是否是序列数据 |
colData | 排序列,排序方式 | 当“是否为序列数据”为“是”时必选 | List<String> | 无 | 排序列为连续型列 | 排序列以及排序方式 |
key | key | 非必选 | String | 无 | 离散列 | 根据key对数据划分后再进行分区 |
validation | 设置有无验证数据集 | 必选 | Boolean | 否 | 单选:是,否 | 设置有无验证数据集 |
Percentage | 训练集占总数据量的百分比(%) | 必选 | Double | 80 | 总和加起来等于100 | 设置不同数据集占总数据集的百分比 |
percentage | 测试集占总数据量的百分比(%) | 必选 | Double | 20 | 总和加起来等于100 | 设置不同数据集占总数据集的百分比 |
percentage | 验证集占总数据量的百分比(%) | 设置有无验证数据集选择“是”时必选 | Double | 0 | 总和加起来等于100 | 设置不同数据集占总数据集的百分比 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作。
(2)算子属性设置
样本分区算子的属性设置界面如图所示
样本分区算子的属性设置界面
验证集可以设置可以不设置,训练集、测试集和验证集的总和为1.运行结果的部分数据如图所示。
样本分区算子的运行结果
当数据为序列数据时,可以设置排序列,也可以设置key列,根据key列取值划分后进行排序,再根据比例进行分区。
样本分区算子属性
运行结果
(3)算子的运行
通过数据源算子读取数据,中间可以接任意个数据处理算子,然后接样本分区算子,后可接任意个数据处理算子。
6.12 差分
1.算子介绍
差分算子(DiffNode)是一个对数据进行行处理的算子,它可以对指定列进行逐行求差。
2.算子类型
行处理算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
diff_columns | 差分列 | 必选 | List<List<String>> | 无 | List 成员必须是inputDataModel中的列,并且只能选择时间类型及数字类型的列,List 长度大于等于 1 | 用来去重的列,举例,{diff_columns: [id,id_diff], [age,age_diff]} |
order_columns | 排序列 | 必选 | List<List<String>> | 无 | List 成员必须是inputDataModel中的列,并且只能选择时间类型及数字类型的列,List 长度大于等于 1 | 用来排序的列,举例,{order_columns: [math,asc], [English,desc]} |
diff_times | 设置差分阶数 | 必选 | Integer | 1 | 大于等于1的整数 | 设置差分阶数 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作
(2)算子属性设置
差分算子的属性设置界面如图所示。
差分算子属性配置
排序列可以为多列,并且指定排序方式,但必须为时间类型或数字类型,后台会先根据排序列对数据进行排序,然后逐行求差。差分列也可以为多列,但必须为时间类型或数字类型,后台会对每一列数据进行求差,并将差值数据作为新的列附加在数据表中。新列名即为这些差值列的列名。假设原数据如图下图:
原数据详情
按照上述配置,time1和time2 为时间类型的数据,其差值列代表两行数据的毫秒数差值,其余数字类型为数值差。
差分后的数据详情
(3)算子的运行
通过数据源算子读取数据,中间可以接任意个数据处理算子,然后接差分算子,后可接任意个数据处理算子。
6.13 数据平衡
1.算子介绍
数据平衡算子(DatasetBalanceNode)按照用户指定的条件来选择数据集,并根据用户指定的系数来对选中数据集进行调整。调整分为两种,一种是对数据集中样本较多的数据进行部分删除来达到数据平衡。一种是对训练集中较少的样本进行复制来达到数据平衡。
2.算子类型
行处理算子
3.算子属性说明
属性 | 前端显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 注释 |
balance_method | 数据平衡方式 | 必选 | String | 自动平衡 | 单选:自动平衡,手动平衡 | 选择数据平衡方式 |
expression | 构建表达式及缩放系数 | 必填 | List<HashMap<String,Double>> | 缩放系数(0,infinite) | 当系数为1时原样返回 | |
balance_name | 平衡列 | 必填 | List<List<String>> | List 成员必须是inputDataModel中的列 | 选择要用来平衡的数据列 | |
label_handle | 采样方式 | 必选 | String | 上采样 | 单选:上采样,下采样 | 选择采样方式 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作
(2)算子属性设置
自动平衡根据选择的平衡列和采样方式,自动进行数据平衡。
自动平衡属性设置
手动平衡中,表达式必须是合法的spark sql表达式。数据平衡算子根据表达式筛选出满足条件的数据集,根据“缩放系数”对满足条件的数据进行放缩,然后和不满足条件的数据集合并后返回。缩放系数为大于0的浮点型数。当缩放系数小于1时,对满足条件的数据不放回采样“缩放系数%”,与不满足条件的数据集合并后返回;当缩放系数大于1时,将满足条件的数据集复制“采样系数的向下取整”次,再对满足条件的数据不放回采样“采样系数的小数部分%”,将复制和采样后的数据与不满足条件的数据合并后返回;当缩放系数等于1时,返回原数据。注意:采样后的数据个数不会严格等于(数据个数*采样百分比),例如:满足条件的数据有10条,缩放系数为0.5,采样得到的数据个数不是一定为5。用户可以输入多个“表达式,缩放系数”对,每次的数据缩放在前一个表达式的处理结果上进行。
数据平衡算子属性设置
图中点击表达式框会给出函数列表以帮助填写
填充条件表达式构建示例
原始数据
数据平衡算子运行结果
(3)算子的运行
通过数据源算子读取数据,中间可以接任意个数据处理算子,然后接一个数据平衡算子,后可接任意个数据处理算子。
6.14 Shuffle
1.算子介绍
通过Shuffle算子对数据集进行按行打乱排序的处理。
2.算子类型
Shuffle算子属于行处理算子。
3.算子属性说明
Shuffle算子无参数。
4.算子使用介绍
Shuffle算子为行处理算子,无属性参数;具体使用如下:通过数据读入算子读取数据,然后接一个Shuffle算子,后连接一个表格算子形成算子流执行,
Shuffle算子流示例
原始数据示例
结果示例
6.15 分层抽样算子
1.算子介绍
分层抽样算子(SampleStartifiedNode)主要是为了数据采样使用的,可以保证在不同类别下分配更加均衡,它是从一个可以分成不同子总体(或称为层)的总体中,按规定的比例从不同层中随机抽取样品(个体)的方法。抽样误差比较小。输入列测量类型为Categorical或者Flag。这种方法的优点是,样本的代表性比较好。
2.算子类型
行处理算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
column_name | 抽样列 | 必填 | Categorical或Flag | 无 | 选择抽样列 | 选择需要进行分层抽样的列 |
sample_method | 样本取样方式 | 必填 | String | line | [line,fraction]中的一种 | 指定取样方式 |
line_number | 行数 | 必填 | Integer | 100 | >0 | 指定取样的行数 |
fraction | 取样比 | 必填 | Double | 无 | (0,1)之间的数 | 选fraction取样,每一行数据被抽取的概率 |
with_replacement | 是否放回采样 | 必填 | Boolean | 否 | 单选:是,否 | 选fraction取样,设置是否每次把原数据放回 |
is_random | 是否打乱数据 | 必填 | Boolean | 是 | 单选:是,否 | 是否打乱采样样本 |
Distribution_method | 分配方式 | 必填 | String | 等比例分配 | 单选:等比例分;Neyman分配 | 分层抽样选择不同的分配方式 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作。
(2)算子属性设置
分层样本算子首先选择抽样列,例如选择Species列进行分层抽样,取样方式可以分为“按样本数”和“按样本比例”。是否放回采样默认为false,是否打乱数据默认为true,分配方式按等比例分配和等比例分配进行抽样,当按行取样时,需要设置取样的行数,
按样本数属性设置
按样本抽样结果
当“按样本比例”时,需要设置取样的比例,
按样比例及Neyman分配比例分配属性设置
按样本比例及Neyman分配执行结果
(3)算子的运行
通过数据源算子读取数据,中间可以接任意个数据处理算子,然后接一个样本算子,后可接任意个数据处理算子
分层抽样算子流
6.16 生成行
1.算子介绍
生成行算子(GenerateRowNode)可以追加若干行数据。
2.算子类型
行处理算子。
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
col_name | 列名 | 必填 | String | 无 | 列名 | |
data | 值 | 必填 | Object | 无 | 生成行的值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作。
(2)算子属性设置
生成行算子通过追加数据生成新的行数据,用于少量数据补充,算子属性设置如图所示。可以通过加号增加一行或多行数据。
生成行算子属性
生成行算子运行结果
(3)算子的运行
通过数据源算子读取数据,中间可以接任意个数据处理算子,然后接生成行算子,后可接任意个数据处理算子。
为了非商业用途的科研学者、研究人员及开发者提供学习、交流及实践机器学习技术,推出了一款轻量化且完全免费的Sentosa_DSML社区版。以轻量化一键安装、平台免费使用、视频教学和社区论坛服务为主要特点,能够与其他数据科学家和机器学习爱好者交流心得,分享经验和解决问题。文章最后附上官网链接,感兴趣工具的可以直接下载使用
Sentosa_DSML社区版https://sentosa.znv.com/
Sentosa_DSML算子流开发视频