【第十二章:Sentosa_DSML社区版-机器学习之回归】
目录
12.1 线性回归
12.2 决策树回归
12.3 梯度提升决策树回归
12.4 保序回归
12.5 XGBoost回归
12.6 随机森林回归
12.7 广义线性回归
12.8 LightGBM回归
12.9 因子分解机回归
12.10 AdaBoost回归
12.11 KNN回归
12.12 高斯过程回归
12.13 多层感知机回归
【第十二章:Sentosa_DSML社区版-机器学习之回归】
12.1 线性回归
1.算子介绍
线性回归模型(BuildLRNode)是一个非常经典有效的回归模型,它假设所有特征变量和目标变量之间存在线性关系。通过训练来求得各个特征的权重以及截距。同时可以通过L1,L2正则化来减少模型的过拟合风险,增强模型的通用性。
2.算子类型
机器学习/回归算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
reg_param | 正则化参数 | 必填 | Double | 0.0 | >=0.0 | 正则化参数 |
fit_intercept | 是否拟合截距 | 必选 | Boolean | 是 | 单选:是,否 | 是否拟合截距 |
standardization | 是否对数据归一化 | 必选 | Boolean | 是 | 单选:是,否 | 是否对数据归一化 |
elastic_net | 弹性网络混合参数 | 必填 | Double | 0.0 | [0,1] 当loss=huber时,只能=0 | 弹性网络则是同时使用了L1和L2作为正则化项,参数中elastic_net为L1范数惩罚项所占比例。若=0时,弹性网络只剩L2范数的惩罚项。若等于1弹性网络退化为L1范数的惩罚项参数值越大对参数惩罚越大,越不容易过拟合 |
max_iteration | 最大迭代次数 | 必填 | Int | 100 | >0 | 最大迭代数 |
tolerance | 收敛偏差 | 必填 | Double | 1E-6 | >=0 | 收敛偏差,越小精确度越高,迭代次数越多 |
loss | 优化损失函数 | 必选 | String | squaredError | 单选:squaredError huber | 优化损失函数。支持的选项: “squaredError”和“huber”。 |
solver | 优化求解算法 | 必选 | String | auto | 单选:l-bfgs、normal、auto,loss=huber时,只支持l-bfgs | 优化求解算法。支持的选项:“l-bfgs”,“normal”和“auto”。默认值:“auto” ;l-bfgs:限制内存BFGS算法,normal:使用正规方程解决回归问题,auto:自动选择 |
aggregation_depth | 聚合树的深度 | 必填 | Int | 2 | >=2 | 设置聚合树的深度参数。如果特征的维度较大,或者分区较大时,该参数应该设置足够大 |
epsilon | shape参数 | 必填 | Double | 1.35 | loss=huber且>1.0 | 控制稳健性的shape参数。 必须是>1.0。在较大的epsilon值下,huber标准变得更接近于最小二乘回归; 对于小的epsilon值,该标准更类似于L1回归。默认值为1.35,以获得尽可能多的稳健性,同时保持正态分布数据的95%统计效率.仅在“损失”为“huber”时有效。 |
Wight | 权重列设置 | 非必填 | String | 无 | 无 | 在建模时,有时不同的样本可能有不同的权重。我们需要支持用户在建模时指定权重列。 |
feature_weight | 是否计算特征重要性 | 必填 | Boolean | 是 | 单选:是,否 | 是否计算特征重要性 |
Calculate_actual_predicted_scatter_plot | 是否计算实际值-预测值散点图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算实际值-预测值散点图 |
calculate_residual_histogram | 是否计算残差直方图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算残差直方图 |
skip_null_value | 是否跳过空值 | 必填 | Boolean | 是 | 单选:是,否 | 是否跳过空值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作。
(2)算子属性设置
当优化损失函数为squareError时,线性回归的属性设置如图所示
线性回归属性设置一
当优化损失函数为huber时,线性回归的属性设置如图所示
线性回归属性设置二
其中弹性网格混合参数是同时使用L1和L2作为正则化项时, L1范数惩罚项所占比例,具体参照算子属性表格。正则化参数是损失函数中整个正则化项的参数。当运行到达最大迭代次数或收敛偏差小于设定的收敛偏差时停止迭代。聚合树深度为spark优化算法的参数,默认为2,当特征维度过大或数据分区过大时,建议调为更大的值。
(3)算子的运行
线性回归为建模算子,需要先训练数据生成模型,再通过模型对相同结构的数据进行处理得到最终结果。具体运行过程如下所述。
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等);然后接类型算子,设置Feature列和Label列,再接线性回归算子,右击算子,点击运行,得到线性回归模型。
运行线性回归算子获得线性回归模型
模型后可接任意个数据处理算子,再接图表分析算子或数据写出算子,形成算子流执行。模型后也可接评估算子,对模型的预测结果进行评估。
线性回归模型算子流
右击模型,查看模型的模型信息,如图所示
线性回归模型信息
模型的运行结果如图所示
线性回归模型运行结果
模型的评估结果如图所示
线性回归模型评估结果
12.2 决策树回归
1.算子介绍
决策树分类器是一种简单易用的非参数分类器模型,它会在用户选定的特征列上不断进行分裂,使得在每一分支对目标变量纯度逐渐增高。直至到达分支目标变量一致,或者满足用户设置的终止条件。回归树与分类树比较类似,不同的是分类树最后的决策的结果是离散型的值,回归树决策的结果是输出一个实数。
2.算子类型
机器学习/回归算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
max_depth | 树的最大深度 | 必填 | Int | 5 | >=0且<=30 | 树的最大深度 |
max_bins | 连续型属性划分最大分桶数 | 必填 | Int | 32 | >=2 | 连续型属性划分最大分桶数 |
min_instances_per_node | 最小实例数 | 必填 | Int | 1 | >=1 | 最小实例数 |
min_infoGain | 最小信息增益 | 必填 | Double | 0.0 | >=0.0 | 在树节点上考虑分割的最小信息增益 |
Wight | 权重列设置 | 非必填 | String | 无 | 无 | 在建模时,有时不同的样本可能有不同的权重。我们需要支持用户在建模时指定权重列。 |
feature_weight | 是否计算特征重要性 | 必填 | Boolean | 是 | 单选:是,否 | 是否计算特征重要性 |
Calculate_actual_predicted_scatter_plot | 是否计算实际值-预测值散点图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算实际值-预测值散点图 |
calculate_residual_histogram | 是否计算残差直方图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算残差直方图 |
skip_null_value | 是否跳过空值 | 必填 | Boolean | 是 | 单选:是,否 | 是否跳过空值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作。
(2)算子属性设置
决策树回归算子属性设置如图所示
决策树回归算子属性设置
前端可配置属性如图所示,树的最大深度,连续型属性划分最大分桶数,最小实例数,最小信息增益都是用来控制构建聚合树时的分裂程度。
(3)算子的运行
决策树回归为建模算子,需要先训练数据生成模型,再通过模型对相同结构的数据进行处理得到最终结果。具体运行过程如下所述。
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等);然后接类型算子,设置Feature列和Label列,再接决策树回归算子,右击算子,点击运行,得到决策树回归模型。
运行决策树回归算子获得决策树回归模型
模型后可接任意个数据处理算子,再接图表分析算子或数据写出算子,形成算子流执行。模型后也可接评估算子,对模型的预测结果进行评估。
决策树回归模型算子流
右击模型,查看模型的模型信息,如图所示
决策树回归模型信息
模型的运行结果如图所示
决策树回归模型运行结果
模型的评估结果如图所示
决策树回归模型评估结果
12.3 梯度提升决策树回归
1.算子介绍
梯度提升树是一个Boosting聚合模型,它是由多个决策树一起组合来预测。多个决策树之间是顺序组合关系,每一个决策树模型都会修正之前所有模型预测的误差。这样经过多个模型的修正,从而提升了整个聚合模型的预测精度。
2.算子类型
机器学习/回归算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
max_depth | 树的最大深度 | 必填 | Int | 5 | >=0且<=30 | 树的最大深度 |
max_bins | 连续型属性划分最大分桶数 | 必填 | Int | 32 | >=2 | 连续型属性划分最大分桶数 |
min_instances_per_node | 最小实例数 | 必填 | Int | 1 | >=1 | 最小实例数 |
min_infoGain | 最小信息增益 | 必填 | Double | 0.0 | >=0.0 | 在树节点上考虑分割的最小信息增益 |
sub_sampling_rate | 子树的训练比例 | 必填 | String | 1.0 | (0,1] | 用于学习每个决策树的训练数据的比例 |
loss_type | 最小化的损失函数 | 必选 | String | squared | squared,absolute | GBT试图最小化的损失函数。(不区分大小写)支持:“squared”,“absolute” |
max_iter | 最大迭代次数 | 必填 | Int | 100 | >0 | 最大迭代次数 |
step_size | 步长 | 必填 | Double | 1.0 | (0.0,1.0] | |
feature_subset_strategy | 树节点拆分的策略 | 必选 | String | auto | 单选: auto,all,onethird,sqrt,log2,n,选择n时,则由用户输入具体>0的数值。 | “auto”:自动选择,如果子树个数为1时,则使用全部特征。如果子树个数> 1时(森林),则设置为onethird(特征数量);“all”:使用所有特征;“onethird”:使用1/3的特征;“sqrt”:使用sqrt(特征数量);“log2”:使用log2(特征数量);“n”:当n在范围(0,1.0]时,为n*特征数。当n在范围(1,+∞)时,为特征数和n值两个之间的最小值。 |
Wight | 权重列设置 | 非必填 | String | 无 | 无 | 在建模时,有时不同的样本可能有不同的权重。我们需要支持用户在建模时指定权重列。 |
feature_weight | 是否计算特征重要性 | 必填 | Boolean | 是 | 单选:是,否 | 是否计算特征重要性 |
Calculate_actual_predicted_scatter_plot | 是否计算实际值-预测值散点图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算实际值-预测值散点图 |
calculate_residual_histogram | 是否计算残差直方图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算残差直方图 |
skip_null_value | 是否跳过空值 | 必填 | Boolean | 是 | 单选:是,否 | 是否跳过空值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作
(2)算子属性设置
梯度提升决策树回归的属性设置如图所示
梯度提升决策树回归属性设置
前端可配置属性如图所示,树的最大深度,连续型属性划分最大分桶数,最小实例数,最小信息增益都是用来控制构建梯度提升决策树时的分裂程度。子树的训练比例指,在学习每个决策树时所用训练数据的比例。子树的训练比例和步长都是为了防止过拟合。树节点拆分策略为树的每个节点拆分时要考虑的特征数,各选项的具体意义见算子的属性说明表格。
(3)算子的运行
梯度提升决策树回归为建模算子,需要先训练数据生成模型,再通过模型对相同结构的数据进行处理得到最终结果。具体运行过程如下所述。
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等);然后接类型算子,设置Feature列和Label列,再接梯度提升决策树回归算子,右击算子,点击运行,得到梯度提升决策树回归模型。
运行梯度提升决策树回归算子获得梯度提升决策树回归模型
模型后可接任意个数据处理算子,再接图表分析算子或数据写出算子,形成算子流执行。模型后也可接评估算子,对模型的预测结果进行评估。
梯度提升决策树回归模型算子流
右击模型,查看模型的模型信息,如图所示
梯度提升决策树回归模型信息
模型的运行结果如图所示
梯度提升决策树回归模型运行结果
模型的评估结果如图所示
梯度提升决策树回归模型评估结果
12.4 保序回归
1.算子介绍
保序回归是一种特殊的线性回归,如果在业务上具有单调性,则可以使用保序回归。比如,药剂的使用量与毒性满足药剂使用量越大,毒性越大/越小这样的单调性。
2.算子类型
机器学习/回归算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
feature_index | 特征列 | 必选 | String | 无 | 连续型feature列 | 特征列名 |
isotonic | 输出序列设置 | 必选 | Boolean | 递增 | 单选:递增,递减 | 输出序列是否递增或递减 |
Wight | 权重列设置 | 非必填 | String | 无 | 无 | 在建模时,有时不同的样本可能有不同的权重。我们需要支持用户在建模时指定权重列。 |
Calculate_actual_predicted_scatter_plot | 是否计算实际值-预测值散点图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算实际值-预测值散点图 |
calculate_residual_histogram | 是否计算残差直方图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算残差直方图 |
skip_null_value | 是否跳过空值 | 必填 | Boolean | 是 | 单选:是,否 | 是否跳过空值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作。
(2)算子属性设置
保序回归的属性设置如图所示
保序回归属性设置
(3)算子的运行
保序回归为建模算子,需要先训练数据生成模型,再通过模型对相同结构的数据进行处理得到最终结果。具体运行过程如下所述。
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等);然后接类型算子,设置Label列,再接保序回归算子并设置Feature列,右击算子,点击运行,得到保序回归模型。
运行保序回归算子获得保序回归模型
模型后可接任意个数据处理算子,再接图表分析算子或数据写出算子,形成算子流执行。模型后也可接评估算子,对模型的预测结果进行评估。在保序回归模型后接排序算子对feature列进行排序,之后接折线图算子,可以看保序回归预测列的运行结果。
保序回归模型算子流
右击模型,查看模型的模型信息
保序回归模型信息
模型的运行结果如图所示
保序回归模型运行结果
模型的评估结果如图所示
保序回归模型评估结果
12.5 XGBoost回归
1.算子介绍
XGBoost是Extreme Gradient Boosting的缩写,它是一个优化的分布式梯度增强库,具有高效、灵活和可移植性。在梯度增强框架下实现了机器学习算法。XGBoost提供了一种并行树增强(也称为GBDT、GBM),可以快速、准确地解决许多数据科学问题。并且在分布式运行环境下进行了优化,可以解决数十亿规模的样本训练问题。
2.算子类型
机器学习/回归算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
num_round | 迭代次数 | 必填 | Int | 100 | [1,Int. MaxValue] | 算法的迭代次数(树的数量) |
eta | 学习率 | 必填 | Double | 1.0 | [0.0,1.0] | 更新中减少的步长来防止过拟合。 |
gamma | 最小分裂损失 | 必填 | Double | 0 | [0, Double.MaxValue] | 在节点分裂时,只有分裂后损失函数的值下降了,才会分裂这个节点。Gamma指定了节点分裂所需的最小损失函数下降值。 这个参数的值越大,算法越保守。这个参数的值和损失函数息息相关,所以是需要调整的。 |
max_depth | 树的最大深度 | 必填 | Int | 6 | [1, Int.MaxValue] | 这个值也是用来避免过拟合的。max_depth越大,模型会学到更具体更局部的样本。 |
min_child_weight | 最小叶子节点样本权重和 | 必填 | Double | 1 | [0, Double.MaxValue] | 这个参数用于避免过拟合。当它的值较大时,可以避免模型学习到局部的特殊样本。 但是如果这个值过高,会导致欠拟合。这个参数需要使用CV来调整。 |
subsample | 子采样率 | 必填 | Double | 1 | (0,1] | 将其设置为0.5意味着XGBoost随机收集了一半的数据实例以生成树,这将防止过度拟合,子采样将在每次boosting迭代中发生一次。 |
colsample_bytree | 每棵树随机采样的列数占比 | 必填 | Double | 0.8 | (0,1] | 用来控制每棵随机采样的列数的占比(每一列是一个特征)。 我们一般设置成0.8左右, 典型值:0.5-1范围: (0,1] |
tree_method | 树构造算法 | 必填 | String | auto | 可选择"auto",“hist”,“approx” | auto:使用启发式方法选择最快的方法, hist: 更快的直方图优化的近似贪婪算, approx:使用分位数草图和梯度直方图的近似贪婪算法 |
grow_policy | 添加节点方式 | 必填 | String | depthwise | 仅在tree_method为hist的时候生效可选择:depthwise, lossguide | depthwise: 在最靠近根的节点处拆分, lossguide: 在损耗变化最大的节点处拆分 |
max_bins | 最大箱数 | 必填 | Integer | 256 | 仅在tree_method设置为hist时使用, [1, Int. MaxValue) | 用于存储连续特征的最大不连续回收箱数,增加此数目可提高拆分的最佳性,但需要增加计算时间。 |
single_precision_histogram | 是否单精度 | 必填 | Boolean | 否 | 仅在tree_method设置为hist时使用, 可选:是,否 | 否:双精度 是: 单精度 |
scale_pos_weight | 正负样本不均衡调节权重 | 必填 | Double | 1 | >0 | 在各类别样本十分不平衡时,把这个参数设定为一个正值,可以使算法更快收敛。通常可以将其设置为负样本的数目与正样本数目的比值. |
lambda | L2正则化项 | 必填 | Double | 1 | >= 0 | 关于权重的L2正则化项。增加此值将使模型更加保守。 |
alpha | L1正则化项 | 必填 | Double | 0 | >=0 | 关于权重的L1正则化项。增加此值将使模型更加保守。 |
objective | 学习目标 | 必填 | String | reg: squarederror | 可选:reg:squarederror, reg:squaredlogerror, reg:gamma, reg:tweedie | reg:squarederror: 平方损失回归, reg:squaredlogerror: 对数平方损失回归, reg:gamma:使用对数链接进行伽马回归 |
eval_metric | 评估指标 | 必选 | String | 根据优化目标默认 | 可选择[“rmse”,”rmsle”,”mae”,”gamma-deviance”] | rmse:均方根误差; rmsle:均方根对数误差 mae:平均绝对误差; gamma-deviance:伽马回归偏差 |
base_score | 初始预测分数 | 必填 | Double | 0.5 | >0 | 所有实例的初始预测分数,全局偏差. 在迭代次数少的情况下,可加快收敛速度, 对于足够数量的迭代,更改此值不会产生太大影响 |
Wight | 权重列设置 | 非必填 | String | 无 | 无 | 在建模时,有时不同的样本可能有不同的权重。我们需要支持用户在建模时指定权重列。 |
feature_weight | 是否计算特征重要性 | 必填 | Boolean | 是 | 单选:是,否 | 是否计算特征重要性 |
Calculate_actual_predicted_scatter_plot | 是否计算实际值-预测值散点图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算实际值-预测值散点图 |
calculate_residual_histogram | 是否计算残差直方图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算残差直方图 |
skip_null_value | 是否跳过空值 | 必填 | Boolean | 是 | 单选:是,否 | 是否跳过空值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作。
(2)算子属性设置
XGBoost回归算子的属性设置如图所示
XGBoost回归算子属性设置
前端可配置属性如图所示,评估指标即算法的损失函数,有均方根误差、均方根对数误差、平均绝对误差、伽马回归偏差四种;学习率,树的最大深度,最小叶子节点样本权重和,子采样率,最小分裂损失,每棵树随机采样的列数占比,L1正则化项和L2正则化项都是用来防止算法过拟合。当子节点样本权重和不大于所设的最小叶子节点样本权重和时不对该节点进行进一步划分。添加节点方式、最大箱数、是否单精度,这三个参数是当树构造方法是为hist的时候,才生效。最小分裂损失指定了节点分裂所需的最小损失函数下降值。参数的具体意义参考算子属性说明表格。
(3)算子的运行
XGBoost回归算子为建模算子,需要先训练数据生成模型,再通过模型对相同结构的数据进行处理得到最终结果。具体运行过程如下所述。
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等);然后接类型算子,设置Feature列和Label列,再接XGBoost回归算子,右击算子,点击运行,得到XGBoost回归模型。
运行XGBoost回归算子获得XGBoost回归模型
模型后可接任意个数据处理算子,再接图表分析算子或数据写出算子,形成算子流执行。模型后也可接评估算子,对模型的预测结果进行评估。
XGBoost回归模型算子流
右击模型,查看模型的模型信息
XGBoost回归模型信息
模型的运行结果如图所示
XGBoost回归模型运行结果
模型的评估结果如图所示
XGBoost回归模型评估结果
12.6 随机森林回归
1.算子介绍
随机森林是一种常用的分类和回归方法。它是一种Bagging的模型聚合方法。它内部集成了大量的决策树模型。每个模型都会选取一部分特征和一部分训练样本。最终由多个决策树模型来共同决定预测值。随机森林算法可以充分利用集群的性能,提高最终聚合模型的精度,并且大大改善模型的过拟合问题。
2.算子类型
机器学习/回归算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
max_depth | 树的最大深度 | 必填 | Int | 5 | >=0且<=30 | 树的最大深度:深度0表示1叶节点; 深度1表示1个内部节点+ 2个叶节点 |
max_bins | 连续型属性划分最大分桶数 | 必填 | Int | 32 | >=2 | 用于离散连续特性和选择如何在每个节点上分割特性的最大容器数 |
min_instances_per_node | 最小实例数 | 必填 | Int | 1 | >=1 | 每个子节点在分割后必须拥有的最小实例数, |
min_infoGain | 最小信息增益 | 必填 | double | 0.0 | >=0.0 | 在树节点上考虑分割的最小信息增益 |
feature_subset_strategy | 树节点拆分的策略 | 必选 | String | auto | 单选:auto,all,onethird,sqrt,log2,选择n时,则由用户输入具体>0的数值。 | “auto”:自动选择,如果子树个数为1时,则使用全部特征。如果子树个数> 1时(森林),则设置为onethird(特征数量);“all”:使用所有特征;“onethird”:使用1/3的特征;“sqrt”:使用sqrt(特征数量);“log2”:使用log2(特征数量);“n”:当n在范围(0,1.0]时,为n*特征数。当n在范围(1,+∞)时,为特征数和n值两个之间的最小值。 |
num_trees | 树的数量 | 必填 | Int | 20 | >=1 | 要训练的树数 |
subsampling_rate | 子树的训练比例 | 必填 | Double | 1.0 | (0,1] | 用于学习每个决策树的训练数据的一部分,范围。(默认= 1.0) |
Wight | 权重列 | 非必填 | String | 无 | 无 | 在建模时,有时不同的样本可能有不同的权重。我们需要支持用户在建模时指定权重列。 |
feature_weight | 是否计算特征重要性 | 必填 | Boolean | 是 | 单选:是,否 | 是否计算特征重要性 |
Calculate_actual_predicted_scatter_plot | 是否计算实际值-预测值散点图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算实际值-预测值散点图 |
calculate_residual_histogram | 是否计算残差直方图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算残差直方图 |
skip_null_value | 是否跳过空值 | 必填 | Boolean | 是 | 单选:是,否 | 是否跳过空值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作。
(2)算子属性设置
随机森林回归的属性设置如图所示
随机森林回归算子属性设置
前端可配置属性如图所示,树的最大深度,连续型属性划分最大分桶数,最小实例数,最小信息增益都是用来控制构建随机森林时树的分裂程度。子树的训练比例指,在学习每个决策树时所用训练数据的比例。树节点拆分策略为树的每个节点拆分时要考虑的特征数,各选项的具体意义见算子的属性说明表格。
(3)算子的运行
随机森林回归算子为建模算子,需要先训练数据生成模型,再通过模型对相同结构的数据进行处理得到最终结果。具体运行过程如下所述。
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等);然后接类型算子,设置Feature列和Label列,再接随机森林回归算子,右击算子,点击运行,得到随机森林回归模型。
运行随机森林回归算子获得随机森林回归模型
模型后可接任意个数据处理算子,再接图表分析算子或数据写出算子,形成算子流执行。模型后也可接评估算子,对模型的预测结果进行评估。
随机森林回归模型算子流
右击模型,查看模型的模型信息
随机森林回归模型信息
模型的运行结果如图所示
随机森林回归模型运行结果
模型的评估结果如图所示
随机森林回归模型评估结果
12.7 广义线性回归
1.算子介绍
广义线性模型[generalize linear model]是线性模型的扩展,通过联结函数建立相应变量的数学期望值与线性组合的预测变量之间的关系。其特点是不强行改变数据的自然度量,数据可以具有非线性和非恒定方差结构。是线性模型在研究响应值的非正态分布以及非线性模型简洁直接的线性转化时的一种发展。
2.算子类型
机器学习/回归算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
family | 分布方式 | 必选 | String | gaussian | 单选gaussian,binomial,poisson,gamma,tweedie | 用于描述模型中使用的错误分布 |
link | 连接函数 | 必选 | String | idenity | 当family=tweedie时,无此项配置;当family=gaussian时,可选项有identity,log,inverse;family=binomial时,可选项有logit,probit,cloglog;family=poisson时,可选项为identity,log,sqrt;family=gamma时,可选项有identity,log,inverse | 为链接函数的名称提供了线性预测函数与分布函数平均值之间的关系 |
fit_intercept | 是否拟合截距 | 必选 | Boolean | 是 | 单选:是,否 | 是否拟合截距 |
variance_power | 方差函数的幂 | 必填 | double | 0.0 | 0 和 [1, 无穷大)family=Tweedie | 为Tweedie分布的方差函数的幂,提供了分布的方差和均值之间的关系,仅支持 Tweedie系分布方式0对应Gaussian1对应Poisson2对应Gamma系 |
link_power | 冥链函数的索引 | 必选 | double | 1 | family=Tweedie0,1,-1,0.5 | 冥链函数的索引,仅适用于Tweedie家族,0,1,-1或0.5分别对应于Log,Identity,Inverse或Sqrt链路。不设置时,默认值为1-variance_power |
max_iter | 最大迭代次数 | 必填 | Int | 25 | > 0 | 最大迭代次数 |
reg_param | 正则化参数 | 必填 | double | 0.0 | >=0 | 正则化参数 |
tol | 收敛偏差 | 必填 | double | 1E-6 | >= 0 | 收敛偏差 |
offset_column | 偏移量列名 | 非必填 | String | 前继算子的输出列 | 偏移量列名 | |
Wight | 权重列 | 非必填 | String | 无 | 无 | 在建模时,有时不同的样本可能有不同的权重。我们需要支持用户在建模时指定权重列。 |
feature_weight | 是否计算特征重要性 | 必填 | Boolean | 是 | 单选:是,否 | 是否计算特征重要性 |
Calculate_actual_predicted_scatter_plot | 是否计算实际值-预测值散点图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算实际值-预测值散点图 |
calculate_residual_histogram | 是否计算残差直方图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算残差直方图 |
skip_null_value | 是否跳过空值 | 必填 | Boolean | 是 | 单选:是,否 | 是否跳过空值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作
(2)算子属性设置
广义线性回归算子的属性设置如图所示
广义线性回归算子属性设置
(3)算子的运行
广义线性回归算子为建模算子,需要先训练数据生成模型,再通过模型对相同结构的数据进行处理得到最终结果。具体运行过程如下所述。
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等);然后接类型算子,设置Feature列和Label列,再接广义线性回归算子,右击算子,点击运行,得到广义线性回归模型。
运行广义线性回归算子获得广义线性回归模型
模型后可接任意个数据处理算子,再接图表分析算子或数据写出算子,形成算子流执行。模型后也可接评估算子,对模型的预测结果进行评估。
广义线性回归模型算子流
右击模型,查看模型的模型信息
广义线性回归模型信息
模型的运行结果如图所示
广义线性回归模型运行结果
模型的评估结果如图所示
广义线性回归模型评估结果
12.8 LightGBM回归
1.算子介绍
LightGBM属于Boosting集合模型中的一种,它和XGBoost一样是对GBDT的高效实现。LightGBM在很多方面会比XGBoost表现更为优秀。它有以下优势:更快的训练效率、低内存使用、更高的准确率、支持并行化学习、可处理大规模数据。
2.算子类型
机器学习/分类算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
objective | 学习目标 | 必填 | String | regression | regression,regression_l1,huber,fair,poisson,quantile,mape,gamma,tweedie | regression别名regression_l2、mse、mean_squared_error,采用l2损失; regression_l1别名mean_absolute_error、mae,采用l1损失; huber:huber损失; fair:fair损失; poisson:poisson损失; quantile:quantile损失; quantile_l2与quantile 类似,但是使用 L2 损失 mape别名mean_absolute_percentage_error gamma 目标符合gamma分布 tweedie 目标符合tweedie分布 |
boosting_tye | 基学习器 | 必填 | String | gbdt | gbdt,rf,dart,goss | gbdt:梯度提升数,rf:随机森林,dart:dropout+mart,goss:单边梯度重采样 |
num_iterations | 迭代次数 | 必填 | Integer | 100 | [1, Int.MaxValue] | 迭代次数 |
learning_rate | 学习率 | 必填 | Double | 0.1 | (0,1] | 学习率 |
max_depth | 最大深度 | 必填 | Integer | -1 | [Int.MinValue, Int.MaxValue] | 树模型最大深度的限制,当数据量较小时,用来处理过拟合,树仍然通过leaf-wise生长,<=0意味着没有限制 |
num_leaves | 叶子数量 | 必填 | Integer | 31 | [2, Int.MaxValue] | 叶子数量 |
min_sum_hessian_in_leaf | 最小叶子节点Hessian和 | 必填 | Double | 1e-3 | [0, Int.MaxValue] | 可以防止过拟合 |
bagging_fraction | Bagging比例 | 必填 | Double | 1.0 | (0,1] | 可以在不进行重采样的情况下随机选择部分数据来加速训练,为了启用bagging。rf时这个参数需要小于1,且bagging_freq > 0。 |
bagging_freq | Bagging频率 | 必填 | Integer | 0 | [0, Int.MaxValue] | 0意味着关闭bagging, k意味着k次迭代进行一次bagging,此外如果要用bagging,bagging_fraction必须同时小于1.0。 |
bagging_seed | Bagging种子 | 必填 | Integer | 3 | >0 | Bagging种子。 |
lambda_l2 | L2正则化项 | 必填 | Double | 0 | >= 0 | 关于权重的L2正则化项。增加此值将使模型更加保守。 |
lambda_l1 | L1正则化项 | 必填 | Double | 0 | >=0 | 关于权重的L1正则化项。增加此值将使模型更加保守。 |
feature_fraction | 特征采样比例 | 必填 | Double | 1.0 | (0.0,1.0] | 如果该参数小于1.0, 在每个迭代,lightgbm会随机选择部分特征进行训练,加速训练,防止过拟合 |
early_stopping_round | 提前终止迭代 | 必填 | Integer | 0 | >=0 | 如果一个验证集的metric在过去的 early_stopping_round轮次中没有提升则终止训练,<=0意味着关闭 |
max_bin | 最大箱数 | 必填 | Integer | 255 | (0,infinite) | 较少的箱数可能会降低精度,但是会避免过拟合 |
boost_from_average | 从均值开始提升 | 必填 | Boolean | 否 | 单选:是,否 | 只在regression中使用 调整初始分数到标签的平均值,以便更快地收敛 |
is_provide_training_metric | 输出训练metric结果 | 必填 | Boolean | 否 | 单选:是,否 | 训练时提供metric结果 |
Wight | 权重列设置 | 非必填 | String | 无 | 无 | 在建模时,有时不同的样本可能有不同的权重。我们需要支持用户在建模时指定权重列。 |
feature_weight | 是否计算特征重要性 | 必填 | Boolean | 是 | 单选:是,否 | 是否计算特征重要性 |
Calculate_actual_predicted_scatter_plot | 是否计算实际值-预测值散点图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算实际值-预测值散点图 |
calculate_residual_histogram | 是否计算残差直方图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算残差直方图 |
skip_null_value | 是否跳过空值 | 必填 | Boolean | 是 | 单选:是,否 | 是否跳过空值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作
(2)算子属性设置
LightGBM回归的属性设置如图所示
LightGBM回归属性设置
(3)算子的运行
LightGBM回归为建模算子,需要先训练数据生成模型,再通过模型对相同结构的数据进行处理得到最终结果。具体运行过程如下所述。
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等);然后接类型算子,设置Feature列和Label列,再接LightGBM回归算子,右击算子,点击运行,得到LightGBM回归模型。
运行LightGBM回归算子获得LightGBM回归模型
模型后可接任意个数据处理算子,再接图表分析算子或数据写出算子,形成算子流执行。模型后也可接评估算子,对模型的分类结果进行评估。算子流如图4.7.2.8-3所示。
LightGBM回归模型算子流
右击模型,查看模型的模型信息
LightGBM回归模型信息
模型的运行结果如图所示
LightGBM回归模型运行结果
模型的评估结果如图所示
LightGBM回归模型评估结果
12.9 因子分解机回归
1.算子介绍
因子分解机是一种基于矩阵分解的机器学习算法,可以解决特征组合以及高维稀疏矩阵问题的强大的机器学习算法,首先是特征组合,通过对两两特征组合,引入交叉项特征,提高模型得分;其次是高维灾难,通过引入隐向量(对参数矩阵进行矩阵分解),完成对特征的参数估计。目前FM算法是推荐领域被验证的效果较好的推荐方案之一。
2.算子类型
机器学习/回归算子。
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
solver | 优化求解算法 | 必选 | String | adamW | 单选:adamW,gd | 优化求解算法 |
bias | 是否拟合截距 | 必选 | Boolean | 是 | true,false | 是否拟合截距,即0次项 |
one_way_interaction | 是否拟合一次项 | 必选 | Boolean | 是 | true,false | 是否拟合一次项 |
dimension | 二次项维度 | 必选 | Int | 8 | >0 | 二次项维度 |
reg_params | 正则化参数 | 必选 | Double | 0.01 | >0 | 正则化系数 |
max_itert | 最大迭代次数 | 必选 | Int | 100 | >0 | 最大迭代次数 |
init_stdev | 二次项初始标准差 | 必选 | Double | 0.05 | >0.0 | 二次项初始标准差 |
step_size | 步长 | 必选 | Double | 0.01 | >0.0 | 步长 |
tolerance_conver_iter | 迭代的收敛误差 | 必选 | Double | 1E-6 | >0.0 | 迭代的收敛误差 |
feature_weight | 是否计算特征重要性 | 必填 | Boolean | 是 | 单选:是,否 | 是否计算特征重要性 |
Calculate_actual_predicted_scatter_plot | 是否计算实际值-预测值散点图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算实际值-预测值散点图 |
calculate_residual_histogram | 是否计算残差直方图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算残差直方图 |
skip_null_value | 是否跳过空值 | 必填 | Boolean | 是 | 单选:是,否 | 是否跳过空值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作。
(2)算子属性设置
当优化求解算法选择adamW时,因子分解机回归算子的属性设置如图所示
优化求解算法选择adamW时因子分解机属性设置
adamW(Adam Weight Decay Regularization):Adam可以看作是RMSprob和动量SGD的结合,目的在于抑制震荡加速收敛。 Adamw则是在Adam的更新策略中采用了计算整体损失函数的梯度来进行更新而不是只计算不带正则项部分的梯度进行更新之后再进行权重衰减。
当优化求解算法选择gd时,因子分解机的属性设置如图所示
优化求解算法选择GD时因子分解机属性设置
GD (Gradient Descent): 最为经典的凸优化优化器,通过loss反向传导计算参数的梯度,沿着负梯度的方向更新参数。
(3)算子的运行
因子分解机回归为建模算子,需要先训练数据生成模型,再通过模型对相同结构的数据进行处理得到最终结果。具体运行过程如下所述。为了训练得到更好的模型,训练数据需要使用标准化算子或者归一化算子进行处理。
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等);然后接类型算子,设置Feature列和Label列(Label列需满足:能转换为Double类型或者就是Double类型),再接因子分解机分类算子,右击算子,点击运行,得到因子分解机分类模型。
运行因子分解机分类算子获得模型
模型后可接任意个数据处理算子,再接图表分析算子或数据写出算子,形成算子流执行。模型后也可接评估算子,对模型的分类结果进行评估。
因子分解机模型算子流
右击模型,查看模型的模型信息
因子分解机回归模型信息
模型的运行结果如图所示
因子分解机模型运行结果
模型的评估结果如图所示
因子分解机模型评估结果
12.10 AdaBoost回归
1.算子介绍
AdaBoost是一种Boosting集成方法,主要思想就是将弱的基学习器提升(boost)为强学习器,根据上轮迭代得到的学习器对训练集的预测表现情况调整训练集中的样本权重, 然后据此训练一个新的基学习器,最终的集成结果是多个基学习器的组合。
2.算子类型
机器学习/分类算子。
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
max_depth | 树的最大深度 | 必填 | Int | 5 | >=0且<=30 | 树的最大深度 |
max_bins | 连续型属性划分最大分桶数 | 必填 | Int | 32 | >=2 | 连续型属性划分最大分桶数 |
min_instances_per_node | 最小实例数 | 必填 | Int | 1 | >=1 | 最小实例数 |
min_infoGain | 最小信息增益 | 必填 | Double | 0.0 | >=0.0 | 在树节点上考虑分割的最小信息增益 |
feature_subset_strategy | 树节点拆分的策略 | 必填 | String | auto | 单选:auto,all,onethird,sqrt,log2,选择n时,则由用户输入具体>0的数值。 | “auto”:自动选择,如果子树个数为1时,则使用全部特征。如果子树个数> 1时(森林),则设置为sqrt(特征数量);“all”:使用所有特征;“onethird”:使用1/3的特征;“sqrt”:使用sqrt(特征数量);“log2”:使用log2(特征数量);“n”:当n在范围(0,1.0]时,为n*特征数。当n在范围(1,+∞)时,为特征数和n值两个之间的最小值。 |
subsampling_rate | 子树的训练比例 | 必填 | String | 1.0 | (0,1] | 用于学习每个决策树的训练数据的比例 |
max_iter | 迭代次数 | 必填 | Int | 10 | >0 | 迭代次数,决定Adaboost子树的数量 |
feature_weight | 是否计算特征重要性 | 必填 | Boolean | 是 | 单选:是,否 | 是否计算特征重要性 |
Calculate_actual_predicted_scatter_plot | 是否计算实际值-预测值散点图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算实际值-预测值散点图 |
calculate_residual_histogram | 是否计算残差直方图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算残差直方图 |
skip_null_value | 是否跳过空值 | 必填 | Boolean | 是 | 单选:是,否 | 是否跳过空值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作。
(2)算子属性设置
AdaBoost回归算子的属性设置如图所示
AdaBoost回归属性设置
前端可配置属性如图所示,树的最大深度,连续型属性划分最大分桶数,最小实例数,最小信息增益都是用来控制构建子决策树时的分裂程度。子树的训练比例指,在学习每个决策树时所用训练数据的比例。子树的训练比例都是为了防止过拟合。树节点拆分策略为树的每个节点拆分时要考虑的特征数,各选项的具体意义见算子的属性说明表格。
(3)算子的运行
AdaBoost回归为建模算子,需要先训练数据生成模型,再通过模型对相同结构的数据进行处理得到最终结果。具体运行过程如下所述。
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等);然后接类型算子,设置Feature列和Label列,再接AdaBoost回归算子,右击算子,点击运行,得到AdaBoost回归模型。
运行AdaBoost回归算子获得AdaBoost回归模型
模型后可接任意个数据处理算子,再接图表分析算子或数据写出算子,形成算子流执行。模型后也可接评估算子,对模型的回归结果进行评估。
AdaBoost回归模型算子流
右击模型,查看模型的模型信息
AdaBoost回归模型信息
模型的运行结果如图所示
AdaBoost回归模型运行结果
模型的评估结果如图所示。
AdaBoost回归模型评估结果
12.11 KNN回归
1.算子介绍
K-近邻算法是一种惰性学习模型(lazy learning),也称为基于实例学习模型,这与勤奋学习模型(eager learning)不一样。
勤奋学习模型在训练模型的时候会很耗资源,它会根据训练数据生成一个模型,在预测阶段直接带入数据就可以生成预测的数据,所以在预测阶段几乎不消耗资源。
惰性学习模型在训练模型的时候不会估计由模型生成的参数,他可以即刻预测,但是会消耗较多资源,例如KNN模型,要预测一个实例,需要求出与所有实例之间的距离。
K-近邻算法是一种非参数模型,参数模型使用固定的数量的参数或者系数去定义模型,非参数模型并不意味着不需要参数,而是参数的数量不确定,它可能会随着训练实例数量的增加而增加,当数据量大的时候,看不出解释变量和响应变量之间的关系的时候,使用非参数模型就会有很大的优势,而如果数据量少,可以观察到两者之间的关系的,使用相应的模型就会有很大的优势。
存在一个样本集,也就是训练集,每一个数据都有标签,也就是我们知道样本中每个数据与所属分类的关系,输入没有标签的新数据后,新数据的每个特征会和样本集中的所有数据对应的特征进行比较,算出新数据与样本集其他数据的欧几里得距离,这里需要给出K值,这里会选择与新数据距离最近的K个数据,其中出现次数最多的分类就是新数据的分类,一般k不会大于20。
KNN在做回归和分类的主要区别,在于最后做预测时候的决策不同。在分类预测时,一般采用多数表决法。在做回归预测时,一般使用平均值法。
多数表决法:分类时,哪些样本离我的目标样本比较近,即目标样本离哪个分类的样本更接近。
平均值法: 预测一个样本的平均身高,观察目标样本周围的其他样本的平均身高,我们认为平均身高是目标样本的身高。
2.算子类型
机器学习/回归算子。
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
k | K值 | 必填 | Int | 5 | >=2 | K近邻的K值 |
Wight | 权重列设置 | 非必填 | String | 无 | 无 | 在建模时,有时不同的样本可能有不同的权重。我们需要支持用户在建模时指定权重列。 |
feature_weight | 是否计算特征重要性 | 必填 | Boolean | 是 | 单选:是,否 | 是否计算特征重要性 |
Calculate_actual_predicted_scatter_plot | 是否计算实际值-预测值散点图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算实际值-预测值散点图 |
calculate_residual_histogram | 是否计算残差直方图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算残差直方图 |
skip_null_value | 是否跳过空值 | 必填 | Boolean | 是 | 单选:是,否 | 是否跳过空值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作。
(2)算子属性设置
KNN回归算子属性设置如图所示
KNN回归算子属性设置
(3)算子的运行
KNN回归为建模算子,需要先训练数据生成模型,再通过模型对相同结构的数据进行处理得到最终结果。具体运行过程如下所述。
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等);然后接类型算子,设置Feature列和Label列,再接KNN算子,右击算子,点击运行,得到KNN回归模型。
运行KNN回归算子获得KNN回归模型
模型后可接任意个数据处理算子,再接图表分析算子或数据写出算子,形成算子流执行。模型后也可接评估算子,对模型的回归结果进行评估。
KNN回归模型算子流
右击模型可以查看模型的模型信息
模型信息
模型的运行结果如图所示
KNN回归模型运行结果
模型的评估结果如图所示
KNN回归模型评估结果
12.12 高斯过程回归
1.算子介绍
2.算子类型
机器学习/回归算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
Kernel | 核函数类型 | 必选 | String | RBF | RBF ARDRBF | 核函数类型 |
maxIteration | 最大迭代次数 | 必选 | Int | 10 | 正整数 | 最大迭代次数 |
tolerance | 收敛偏差 | 必选 | Double | 1e-6 | (0,+∞) | 收敛偏差 |
activeSetSize | 模型预测的采样点数 | 必选 | int | 1000 | 正整数 | 模型预测的采样点数 |
datasetSizeForExpert | 用作超参优化的数据块大小 | 必选 | Int | 1000 | 正整数 | 用作超参优化的数据块大小 |
sigma2 | 噪声的方差参数 | 必选 | Double | 2e-1 | (0.1,+∞) | 噪声的方差参数 |
activesetProvider | 数据采样方法 | 必选 | String | KMeans | GreedilyOptimization、 KMeans、 Random | 数据采样方法 |
feature_weight | 是否计算特征重要性 | 必填 | Boolean | 是 | 单选:是,否 | 是否计算特征重要性 |
Calculate_actual_predicted_scatter_plot | 是否计算实际值-预测值散点图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算实际值-预测值散点图 |
calculate_residual_histogram | 是否计算残差直方图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算残差直方图 |
skip_null_value | 是否跳过空值 | 必填 | Boolean | 是 | 单选:是,否 | 是否跳过空值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作。
(2)算子属性设置
高斯回归算子属性设置如图所示
高斯回归算子属性设置
(3)算子的运行
高斯回归为建模算子,需要先训练数据生成模型,再通过模型对相同结构的数据进行处理得到最终结果。具体运行过程如下所述。
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等);然后接类型算子,设置Feature列和Label列,再接高斯回归算子,右击算子,点击运行,得到高斯回归模型。
高斯回归模型
模型后可接任意个数据处理算子,再接图表分析算子或数据写出算子,形成算子流执行。模型后也可接评估算子,对模型的回归结果进行评估。
高斯回归模型算子流
右击模型可以查看模型的模型信息
模型信息
模型的运行结果如图所示
高斯回归模型运行结果
模型的评估结果如图所示
高斯回归模型评估结果
12.13 多层感知机回归
1.算子介绍
多层感知是一种前馈人工神经网络模型,其将输入的多个数据集映射到单一的输出的数据集上,多层感知机层与层之间是全连接的,最底层是输入层,中间是隐藏层,最后是输出层。
2.算子类型
机器学习/回归算子
3.算子属性说明
属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
layers | 隐藏层数设置(逗号分隔的整数) | 必填 | List<String> | 逗号分隔的整型 | 从输入层到输出层的层数。用逗号分隔的整数,例如780,100,10表示780个输入,100个神经元的隐藏层和10个神经元的输出层 | |
solver | 优化算法 | 必选 | String | l-bfgs | 单选:l-bfgs gd | 优化算法。支持选项:“l-bfgs”/“gd”默认l-bfgs |
max_iteration | 最大迭代次数 | 必填 | Int | 100 | >0 | 最大迭代次数 |
tolerance | 收敛偏差 | 必填 | Double | 1E-6 | >= 0 | 收敛偏差 |
step_size | 步长 | 必填 | Double | 0.03 | >0 | 步长参数范围: (0,+∞) 优化算法选择gd时显示 |
feature_weight | 是否计算特征重要性 | 必填 | Boolean | 是 | 单选:是,否 | 是否计算特征重要性 |
Calculate_actual_predicted_scatter_plot | 是否计算实际值-预测值散点图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算实际值-预测值散点图 |
calculate_residual_histogram | 是否计算残差直方图 | 必填 | Boolean | 否 | 单选:是,否 | 是否计算残差直方图 |
skip_null_value | 是否跳过空值 | 必填 | Boolean | 是 | 单选:是,否 | 是否跳过空值 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作。
(2)算子属性设置
当优化算法为拟牛顿法时,多层感知机回归的属性设置如图所示。
多层感知机回归算子属性设置
当优化算法为梯度下降时,多层感知机回归的属性设置如图所示
多层感知机回归算子属性设置
算子将非数值型Feature转换为数值型,且自动计算输入层神经元个数和输出层神经元个数,用户只需设置隐藏层神经元个数,各隐藏层之间用逗号分隔。
(3)算子的运行
多层感知机为建模算子,需要先训练数据生成模型,再通过模型对相同结构的数据进行处理得到最终结果。具体运行过程如下所述。
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等);然后接类型算子,设置Feature列和Label列,再接多层感知机回归算子,右击算子,点击运行,得到多层感知机回归模型。
运行多层感知机回归获得多层感知机回归模型
模型后可接任意个数据处理算子,再接图表分析算子或数据写出算子,形成算子流执行。模型后也可接评估算子,对模型的回归结果进行评估。
多层感知机回归模型算子流
右击模型,查看模型的模型信息
多层感知机回归模型信息
模型的运行结果如图所示
多层感知机回归模型运行结果
模型的评估结果如图所示
多层感知机回归模型评估结果
为了非商业用途的科研学者、研究人员及开发者提供学习、交流及实践机器学习技术,推出了一款轻量化且完全免费的Sentosa_DSML社区版。以轻量化一键安装、平台免费使用、视频教学和社区论坛服务为主要特点,能够与其他数据科学家和机器学习爱好者交流心得,分享经验和解决问题。文章最后附上官网链接,感兴趣工具的可以直接下载使用
Sentosa_DSML社区版https://sentosa.znv.com/
Sentosa_DSML算子流开发视频