有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
注意:
部分输出请在高级设置中查看。

XGBoost 分类

原理

算法说明

XGBoost(eXtreme Gradient Boosting) 是基于优化的 Gradient Boosting 算法的一个开源框架,可以用于回归,也可以用于分类,是目前数据科学竞赛最流行的工具包之一。

参数配置

算法 IO 参数
*输入文件类型:格式包括以下两种:
csv :csv 文件
*输入数据包含 header 信息:默认为“是”。
*输入数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
parquet :列式存储格式 parquet
*输出文件类型:格式包括以下两种:
csv :csv 文件
*输出数据包含 header 信息:默认为“是”。
*输出数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
parquet :列式存储格式 parquet
*特征列:作为训练特征的列,从 0 开始编号。对于库表可以直接勾选,对于普通路径,可填形式如 a-b 、c 或者它们的混合,用英文逗号分割(如 0-10,15,17-19 表示第 0 到 10 列、15 、17 到 19 列总共 15 列作为特征)。
*标签列:作为标签的列,从 0 开始编号。
算法参数
*early_stopping_rounds :整数,默认为 100 ,早停次数。当验证集上的评估指标在 100 次迭代中均没有得到提升,则模型停止迭代。
*max_depth :整数,默认为 6 ,单棵树的最大深度。通常取 3-10 之间,用来控制过拟合。
*learning_rate :浮点数,默认为 0.1 ,学习率。权重更新的步长,通常取 0.01-0.2 。
*n_estimators :整数,默认为 1000 ,最大迭代次数。
*n_jobs :整数,默认为 1 ,使用线程数。
*gamma :浮点数,默认为 0.0 ,节点分裂所需的最小损失函数值。如果分裂能够使 loss 函数减小的值大于 gamma ,则这个节点才分裂。gamma 设置了这个减小的最低阈值。如果 gamma 设置为 0 ,表示只要使得 loss 函数减少,就分裂。
*min_child_weight :浮点数,默认为 1.0 ,子节点中最小的样本权重和。这个参数是指建立每个模型所需要的最小样本数,该值越大算法越保守。
*subsample :浮点数,默认为 1.0 ,用于训练模型的子样本占整个样本集合的比例。如果设置为 0.5 则意味着 XGBoost 将随机的冲整个样本集合中随机的抽取出 50% 的子样本建立树模型,这能够防止过拟合。
*reg_alpha :浮点数,默认为 0.0 ,权重的 L1 正则项系数。
*reg_lambda :浮点数,默认为 0.0 ,权重的 L2 正则项系数。
输出
pkl 格式的模型,保存在后台生成的路径下。
特征重要性:.csv 格式数据,包含两列,第一列为特征名,第二列为重要性值,逗号分隔。计算方法:对特征在每棵树上被用来划分数据的次数求和。

Demo

输入数据示例

示例第一行为列名,之后的每一行为一条数据,最后一列为标签,其他列为特征。
feature1,feature2,feature3,feature4,feature5,feature6,label
-0.7379798,0.3240978,0.27719212,-0.29189646,1.1431737,-0.92870927,0
1.0349396,-0.53264785,-0.18987797,-0.9390533,-0.12978475,-0.17435347,0
0.4409462,-0.82629377,-0.76937777,0.047904223,0.52395946,-0.044064667,0
-0.24455377,-0.7057573,0.52309793,-0.43790194,0.15547183,-0.18311355,0
-2.772272,3.2020333,-2.8999074,-4.2892537,-1.1407472,-2.8300557,1
-0.83858657,-0.41457546,-0.50314087,-1.6920289,0.6667797,0.59971744,1
-0.10017038,0.011508453,0.9634868,-0.10317913,0.038158763,-0.38708976,0
-6.045468,6.7546253,-8.948178,-10.733854,-1.6389601,-1.7463502,1
-3.4638908,1.794969,-2.7750216,-4.0571623,-1.6030147,-5.035326,1
0.7576513,-0.07566996,-0.77537596,0.12249068,1.7659713,-1.3336041,0
-0.7324368,-0.5812244,0.28800735,0.13189761,0.11873791,-0.53798527,0
-0.78823245,1.1623183,0.14635086,-1.3696547,0.69724244,0.0905122,0

参数配置(训练节点)

算法 IO 参数
*输入文件类型:csv
*输入数据是否包含 header 信息:是
*输入数据分隔符:逗号
*特征列:0-5
*标签列:6
算法参数
*early_stopping_rounds :100
*max_depth :6
*learning_rate :0.1
*n_estimators :1000
*n_jobs :-1,调用当前系统可以获得的最大线程数。
*gamma :0.0
*min_child_weight :1.0
*subsample :1.0
*reg_alpha :0.0
*reg_lambda :0.0

输出数据示例(训练阶段)

输出特征重要性,第一列为特征名,第二列为重要性值。
feature,importance
feature1,9
feature3,3

参数配置(预测节点)

算法 IO 参数
*输入文件类型:csv
*输入数据是否包含 header 信息:是
*输入数据分隔符:逗号
*输出文件类型:csv
*输出数据是否包含 header 信息:是
*输出数据分隔符:逗号
*特征列:0-5

输出数据示例 (预测节点)

输出为一个csv文件,其中第一行为列名,最后三列:y_pred_prob_0 为模型预测该条样本属于类别0的概率,y_pred_prob_1 为模型预测该条样本属于类别1的概率,y_pred 为概率最大的类别即分类结果。数据有多少类别,则输出多少列概率值。
feature1,feature2,feature3,feature4,feature5,feature6,label,y_pred_proab_0,y_pred_proab_1,y_pred
-0.7379798000000001,0.3240978,0.27719212,-0.29189646,1.1431737,-0.92870927,0,0.8943535,0.10564649,0
1.0349396,-0.53264785,-0.18987797,-0.9390533000000001,-0.12978475,-0.17435347,0,0.8943535,0.10564649,0
0.44094620000000007,-0.82629377,-0.76937777,0.047904222999999996,0.52395946,-0.044064667,0,0.81946707,0.1805329,0
-0.24455377,-0.7057573,0.52309793,-0.43790194,0.15547183,-0.18311355,0,0.8943535,0.10564649,0
-2.772272,3.2020333,-2.8999074,-4.289253700000001,-1.1407472,-2.8300557,1,0.3282712,0.6717288,1
-0.83858657,-0.41457546,-0.50314087,-1.6920289000000002,0.6667797,0.59971744,1,0.3282712,0.6717288,1
-0.10017038,0.011508453,0.9634868000000001,-0.10317913,0.038158763,-0.38708976,0,0.8943535,0.10564649,0
-6.045468,6.7546253,-8.948178,-10.733854,-1.6389601000000003,-1.7463502,1,0.3282712,0.6717288,1
-3.4638907999999997,1.7949689999999998,-2.7750216,-4.0571623,-1.6030147,-5.035326,1,0.3282712,0.6717288,1
0.7576513,-0.07566996,-0.77537596,0.12249068,1.7659713,-1.3336041,0,0.81946707,0.1805329,0
-0.7324368,-0.5812244000000001,0.28800735,0.13189761,0.11873791,-0.53798527,0,0.8943535,0.10564649,0
-0.78823245,1.1623183000000001,0.14635086,-1.3696547,0.69724244,0.0905122,0,0.5762131,0.42378685,0

K 最近邻分类

原理

算法说明

通过测量不同特征值之间的距离进行分类。它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别,其中k通常是不大于20的整数。

KNN 算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。具体的说明请看 分布式 KNN

参数配置

算法 IO 参数
*输入文件类型:格式包括以下两种:
csv :csv 文件
*输入数据包含 header 信息:默认为“是”。
*输入数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
parquet :列式存储格式 parquet
*输出文件类型:格式包括以下两种:
csv :csv 文件
*输出数据包含 header 信息:默认为“是”。
*输出数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
parquet :列式存储格式 parquet
*特征列:作为训练特征的列,从 0 开始编号。对于库表可以直接勾选,对于普通路径,可填形式如 a-b、c 或者它们的混合,用英文逗号分割(如 0-10,15,17-19 表示第 0 到 10 列、15 、17 到 19 列总共 15 列作为特征)。
*标签列:作为标签的列,从 0 开始编号。
算法参数
k :k 近邻
*topTreeSize :顶层树的样本点个数。
*topTreeLeafSize :顶层树叶子节点包含样本点个数。
*subTreeLeafSize :子数叶子节点包含样本点个数。
*balanceThreshold :控制树分裂的阈值

Demo

输入数据示例

示例第一行为列名,之后的每一行为一条数据,最后一列为标签,其他列为特征。
SepalLength,SepalWidth,PetalLength,PetalWidth,Species
5.4,3.9,1.7,0.4,0
7.2,3.6,6.1,2.5,2
5.2,4.1,1.5,0.1,0
5.1,3.4,1.5,0.2,0
7.1,3,5.9,2.1,2
7.7,3.8,6.7,2.2,2
4.6,3.1,1.5,0.2,0
5,3,1.6,0.2,0
5.6,2.9,3.6,1.3,1

参数配置(训练节点)

算法 IO 参数
*输入文件类型:csv
*输入数据是否包含 header 信息:是
*输入数据分隔符:逗号
*标签列:4
*特征列:0-3
算法参数
k 近邻:2
*topTreeSize :2
*topTreeLeafSize :5
*subTreeLeafSize :5
*balanceThreshold :0.0

参数配置(预测节点)

模型 IO 参数
*输入文件类型:csv
*输入数据是否包含 header 信息:是
*输入数据分隔符:逗号
*输出文件类型:csv
*输出数据是否包含 header 信息:是
*输出数据分隔符:逗号
*特征列:0-3

输出数据示例

得到的结果如下所示,在原始特征列后追加了预测标签列 prediction ,以及相应标签的原始预测权重与预测概率列。
SepalLength,SepalWidth,PetalLength,PetalWidth,Species,prediction,probability_0,probability_1,probability_2,rawPrediction_0,rawPrediction_1,rawPrediction_2
7.1,3.0,5.9,2.1,2,2.0,0.2,0.2,0.6,1.0,1.0,3.0
5.4,3.9,1.7,0.4,0,0.0,1.0,0.0,0.0,5.0,0.0,0.0
7.2,3.6,6.1,2.5,2,2.0,0.2,0.2,0.6,1.0,1.0,3.0
4.6,3.1,1.5,0.2,0,0.0,1.0,0.0,0.0,5.0,0.0,0.0
5.1,3.4,1.5,0.2,0,0.0,1.0,0.0,0.0,5.0,0.0,0.0
5.0,3.0,1.6,0.2,0,0.0,1.0,0.0,0.0,5.0,0.0,0.0
5.6,2.9,3.6,1.3,1,0.0,0.8,0.2,0.0,4.0,1.0,0.0
7.7,3.8,6.7,2.2,2,2.0,0.2,0.2,0.6,1.0,1.0,3.0
5.2,4.1,1.5,0.1,0,0.0,1.0,0.0,0.0,5.0,0.0,0.0

决策树分类(DecisionTree)

原理

算法说明

DecisionTreeClassifier(决策树算法)是机器学习中常用的分类/回归算法。决策树算法有解释性好、可以处理类别特征、支持多分类、不需要做特征 scaling 、可以表示非线性模型。该算子支持连续、非连续特征的多分类任务,最高可以支持百万级别的样本。

参数配置

算法 IO 参数
*输入文件类型:格式包括以下两种:
csv :csv 文件
*输入数据包含 header 信息:默认为“是”。
*输入数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
parquet :列式存储格式 parquet
*输出文件类型:格式包括以下两种:
csv :csv 文件
*输出数据包含 header 信息:默认为“是”。
*输出数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
parquet :列式存储格式 parquet
*特征列:作为训练特征的列,从 0 开始编号。对于库表可以直接勾选,对于普通路径,可填形式如 a-b、c 或者它们的混合,用英文逗号分割(如 0-10,15,17-19 表示第 0 到 10 列、15 、17 到 19 列总共 15 列作为特征)。
*标签列:作为标签的列,从 0 开始编号。
算法参数
*模型保存格式:ML 格式或者 PMML 格式的模型,保存在后台生成的路径下。
*maxDepth :决策树最大深度。离散整正整数参数,比较合理的方式是根据默认值5在周围调节
*maxBins :计算分裂点时对,对连续特征的最大分桶数。最小为 2 。离散正整数参数,比较合理的方式是根据默认值 32 在周围调节。
*minInfoGain :决策树分裂最小信息增益。
*impurity :不纯度指标,支持 gini 指数跟 entropy
*minInstancesPerNode :决策树每个节点的样本下限,可以控制节点是否继续分裂。离散正整数参数,默认值为1,可根据样本数目适当调节。
*maxMemoryInMB :运行时的系统调优参数,单位为 MB ,控制特征直方图的最大大小。
*checkpointInterval :每多少轮设置 checkpoint 一次,在迭代轮数非常多的时候,可以降低因为计算节点失败导致的级联重算风险。默认 -1 表示不进行 checkpoint 。

Demo

输入数据示例

示例第一行为列名,之后的每一行为一条数据,最后一列为标签,其他列为特征。
SepalLength,SepalWidth,PetalLength,PetalWidth,Species
5.4,3.9,1.7,0.4,0
7.2,3.6,6.1,2.5,2
5.2,4.1,1.5,0.1,0
5.1,3.4,1.5,0.2,0
7.1,3,5.9,2.1,2
7.7,3.8,6.7,2.2,2
4.6,3.1,1.5,0.2,0
5,3,1.6,0.2,0
5.6,2.9,3.6,1.3,1

训练节点参数配置

算法 IO 参数
*输入文件类型:csv
*输入数据是否包含 header 信息:是
*输入数据分隔符:逗号
*特征列:0-3
*标签列:4
算法参数
*模型保存格式:PMML
*maxDepth :5
*maxBins :32
*minInfoGain :0.0
*impurity :gini
*minInstancesPerNode :1
*minMemoryInMB :256
*checkpointInterval :-1

可视化

树形算法在运行完成后,可以支持用户对模型结果进行可视化查看。树形图中蓝色节点为特征的判读节点,实线表示判断为“是”的路径,虚线表示判断为“否”的路径。绿色节点为分类结果。



注意:
在训练时选择 PMML 格式才能可视化(ML 格式不行)。

参数配置(预测节点)

算法 IO 参数
*输入文件类型:csv
*输入数据是否包含 header 信息:是
*输入数据分隔符:逗号
*输出文件类型:csv
*输出数据是否包含 header 信息:是
*输出数据分隔符:逗号
*特征列:0-3
模型参数
*algorithm :DecisionTreeClassifier
*模型导入格式:PMML

输出数据示例(预测节点)

得到的结果,在原始数据的基础上添加一列作为标签的预测值,以及相应每一个标签的预测概率列。注:ML 和 PMML 会输出不一样的结果,ML 的会额外输出原始预测权重。
SepalLength,SepalWidth,PetalLength,PetalWidth,Species,prediction,probability_0,probability_1,probability_2
5.4,3.9,1.7,0.4,0,0.0,1.0,0.0,0.0
7.2,3.6,6.1,2.5,2,2.0,0.0,0.0,1.0
5.2,4.1,1.5,0.1,0,0.0,1.0,0.0,0.0
5.1,3.4,1.5,0.2,0,0.0,1.0,0.0,0.0
7.1,3.0,5.9,2.1,2,2.0,0.0,0.0,1.0
7.7,3.8,6.7,2.2,2,2.0,0.0,0.0,1.0
4.6,3.1,1.5,0.2,0,0.0,1.0,0.0,0.0
5.0,3.0,1.6,0.2,0,0.0,1.0,0.0,0.0
5.6,2.9,3.6,1.3,1,1.0,0.0,1.0,0.0

朴素贝叶斯(NaiveBayes)

原理

算法说明

NaiveBayes(朴素贝叶斯)是一种常用的多类分类算法,该算法假设各个特征之间是相互独立的,通过贝叶斯公式计算出某个样本属于某个类别的概率。朴素贝叶斯算法目前仅包含 multinomial naive Bayes ,该算法常用于文本分类,每个特征表示词在一篇文档的出现的次数(multinomial naive Bayes)。

参数配置

算法 IO 参数
*输入文件类型:格式包括以下两种:
csv :csv 文件
*输入数据包含 header 信息:默认为“是”。
*输入数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
parquet :列式存储格式 parquet
*输出文件类型:格式包括以下两种:
csv :csv 文件
*输出数据包含 header 信息:默认为“是”。
*输出数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
parquet :列式存储格式 parquet
*特征列:作为训练特征的列,从 0 开始编号。对于库表可以直接勾选,对于普通路径,可填形式如 a-b、c 或者它们的混合,用英文逗号分割(如 0-10,15,17-19 表示第 0 到 10 列、15 、17 到 19 列总共 15 列作为特征)。
*标签列:作为标签的列,从 0 开始编号。
算法参数
*模型保存格式:ML 格式或者 PMML 格式的模型,保存在后台生成的路径下。
* modelType :模型类型,支持 multinomial
smoothing :光滑参数。

Demo

输入数据示例

示例第一行为列名,之后的每一行为一条数据,最后一列为标签,其他列为特征。
SepalLength,SepalWidth,PetalLength,PetalWidth,Species
5.4,3.9,1.7,0.4,0
7.2,3.6,6.1,2.5,2
5.2,4.1,1.5,0.1,0
5.1,3.4,1.5,0.2,0
7.1,3,5.9,2.1,2
7.7,3.8,6.7,2.2,2
4.6,3.1,1.5,0.2,0
5,3,1.6,0.2,0
5.6,2.9,3.6,1.3,1

训练节点参数配置

算法 IO 参数
*输入文件类型:csv
*输入数据是否包含 header 信息:是
*输入数据分隔符:逗号
*特征列:0-3
*标签列:4
算法参数
*模型保存格式:PMML
*modelType :multinomial
smoothing :1.0

预测节点参数配置

算法 IO 参数
*输入文件类型:csv
*输入数据是否包含 header 信息:是
*输入数据分隔符:逗号
*输出文件类型:csv
*输出数据是否包含 header 信息:是
*输出数据分隔符:逗号
*特征列:0-3
模型参数
*algorithm :NaiveBayes
*模型导入格式:PMML

输出数据示例

得到的结果,在原始数据的基础上添加一列作为标签的预测值,以及相应每一个标签的预测概率列。注:ML 和 PMML 会输出不一样的结果,ML 的会额外输出原始预测权重。
SepalLength,SepalWidth,PetalLength,PetalWidth,Species,prediction,probability_0,probability_1,probability_2
5.4,3.9,1.7,0.4,0,0.0,0.8438653215599101,0.07370030825069585,0.082434370189394
7.2,3.6,6.1,2.5,2,2.0,0.03257809566818679,0.28976034192276756,0.6776615624090455
5.2,4.1,1.5,0.1,0,0.0,0.9030512216204102,0.047163814145305655,0.04978496423428435
5.1,3.4,1.5,0.2,0,0.0,0.850366733076465,0.06777283521919285,0.08186043170434218
7.1,3.0,5.9,2.1,2,2.0,0.04242801026546014,0.2667566108991367,0.6908153788354031
7.7,3.8,6.7,2.2,2,2.0,0.03957157343571346,0.2725760662038764,0.6878523603604101
4.6,3.1,1.5,0.2,0,0.0,0.8132898717484215,0.08137444539382777,0.10533568285775065
5.0,3.0,1.6,0.2,0,0.0,0.8102005118505047,0.0813263109484145,0.10847317720108085
5.6,2.9,3.6,1.3,1,2.0,0.25634751050020327,0.26118149971284893,0.48247098978694786

梯度提升树(GradientBoostedTrees)

原理

算法说明

GradientBoostedTrees(梯度提升树)是机器学习中常用的分类回归算法,这里的实现根据论文 J.H. Friedman. "Stochastic Gradient Boosting." 1999。

参数配置

算法 IO 参数
*输入文件类型:格式包括以下两种:
csv :csv 文件
*输入数据包含 header 信息:默认为“是”。
*输入数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
parquet :列式存储格式 parquet
*输出文件类型:格式包括以下两种:
csv :csv 文件
*输出数据包含 header 信息:默认为“是”。
*输出数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
parquet :列式存储格式 parquet
*特征列:作为训练特征的列,从0开始编号。对于库表可以直接勾选,对于普通路径,可填形式如 a-b、c 或者它们的混合,用英文逗号分割(如 0-10,15,17-19 表示第 0 到 10 列、15 、17 到 19 列总共 15 列作为特征)。
*标签列:作为标签的列,从 0 开始编号。
算法参数
*模型保存格式:ML 格式或者 PMML 格式的模型,保存在后台生成的路径下。
*featureSubsetStrategy :特征采样比例策略,支持 auto、all、onethird、sqrtlog2 ,分别表示自动、全部、三分一、特征数的开方和特征数的对数。其中自动策略为:如果 maxIter 为 1 ,设置为 all ;如果 maxIter 大于 1 ,设置为 onethird 。
*impurity :不纯度指标,支持 gini 指数和 entropy
*maxBins :计算分裂点时对,对连续特征的最大分桶数,最小为 2 。
*maxDepth :决策树最大深度。
*maxIter :最大迭代次数。
*minInfoGain :决策树分裂最小信息增益。
*minInstancesPerNode :决策树节点最小样本数。
*stepSize :步长,范围为 (0, 1] 。
*subsamplingRate :样本数采样比例。

Demo

输入数据示例

示例是无 header (没有列名)且每一行为一条数据,最后一列为标签,其他列为特征。
3,2,3,0,0,2,1,0,1,1
4,1,3,0,1,0,1,4,1,0
4,1,7,0,1,1,0,1,1,1
3,2,7,0,0,2,1,1,0,0
3,2,6,1,0,1,0,2,1,1
4,2,5,1,1,1,1,0,0,0
4,1,8,0,1,2,0,0,1,0

参数配置(训练节点)

算法 IO 参数
*输入文件类型:csv
*输入数据是否包含 header 信息:否
*输入数据分隔符:逗号
*特征列:0-8
*标签列:9
算法参数
*模型保存格式:PMML
*featureSubsetStrategy : auto
*impurity :gini
*maxBins :32
*maxDepth :5
*maxIter :20
*minInfoGain :0.0
*minInstancesPerNode :1
*stepSize :0.1
*subsamplingRate :1.0

参数配置(预测节点)

算法 IO 参数
*输入文件类型:csv
*输入数据是否包含 header 信息:否
*输入数据分隔符:逗号
*输出文件类型:csv
*输出数据是否包含 header 信息:否
*输出数据分隔符:逗号
*特征列:0-8
模型参数
*algorithm :GBTClassifier
*模型导入格式:PMML

输出数据示例

得到的结果,在原始数据的基础上添加一列作为标签的预测值,以及相应每一个标签的预测概率列。注:ML 和 PMML 会输出不一样的结果,ML 的会额外输出原始预测权重。
3,2,3,0,0,2,1,0,1,1,1.0,0.043646521427293306
0.9563534785727067
4,1,3,0,1,0,1,4,1,0,0.0,0.043646521427293306
0.9563534785727067
4,1,7,0,1,1,0,1,1,1,1.0,0.043646521427293306
0.9563534785727067
3,2,7,0,0,2,1,1,0,0,0.0,0.043646521427293306
0.9563534785727067
3,2,6,1,0,1,0,2,1,1,1.0,0.043646521427293306
0.9563534785727067
4,2,5,1,1,1,1,0,0,0,0.0,0.043646521427293306
0.9563534785727067
4,1,8,0,1,2,0,0,1,0,0.0,0.043646521427293306
0.9563534785727067

线性支持向量机(LinearSVC)

原理

算法说明

LinearSVC 是线性 SVM 分类器,只支持 L2 正则和二分类。

参数配置

算法 IO 参数
*输入文件类型:格式包括以下两种:
csv :csv 文件
*输入数据包含 header 信息:默认为“是”。
*输入数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
parquet :列式存储格式 parquet
*输出文件类型:格式包括以下两种:
csv :csv 文件
*输出数据包含 header 信息:默认为“是”。
*输出数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
parquet :列式存储格式 parquet
*特征列:作为训练特征的列,从 0 开始编号。对于库表可以直接勾选,对于普通路径,可填形式如 a-b、c 或者它们的混合,用英文逗号分割(如 0-10,15,17-19 表示第 0 到 10 列、15 、17 到 19 列总共 15 列作为特征)。
*标签列:作为标签的列,从 0 开始编号。
算法参数
*模型保存格式: ML 格式或者 PMML 格式的模型,保存在后台生成的路径下。
* fitIntercept :是否拟合截距。
maxIter :最大迭代次数。
regParam :正则化系数。
* standardization :训练前是否对特征标准化(特征值除以标准差)。
tol :误差最大容忍界,低于这个界的时候算法停止迭代。

Demo

输入数据示例

示例数据首行为 header ,其余行每一行为一条数据。最后一列为标签,其他列为特征。
_c0,_c1,_c2,_c3,_c4,_c5,_c6,_c7,_c8,label
3,2,3,0,0,2,1,0,1,1
4,1,3,0,1,0,1,4,1,0
4,1,7,0,1,1,0,1,1,1
3,2,7,0,0,2,1,1,0,0
3,2,6,1,0,1,0,2,1,1
4,2,5,1,1,1,1,0,0,0
4,1,8,0,1,2,0,0,1,0

参数配置(训练节点)

算法 IO 参数
*输入文件类型:csv
*输入数据是否包含 header 信息:是
*输入数据分隔符:逗号
*特征列:0-8
*标签列:9
算法参数
*模型保存格式:ML
*fitIntercept :true
maxIter :100
regParam :0.0
*standardization :true
tol :0.0

参数配置(预测节点)

算法 IO 参数
*输入文件类型:csv
*输入数据是否包含 header 信息:是
*输入数据分隔符:逗号
*输出文件类型:csv
*输出数据是否包含 header 信息:是
*输出数据分隔符:逗号
*特征列:0-8
模型参数
*algorithm :LinearSVC
*模型导入格式:ML

输出数据示例

得到的结果,在原始数据的基础上添加最后 3 列,其中 prediction 作为标签的预测值,其余两列 rawPrediction_0,rawPrediction_1 是预测的概率,预测标签列 prediction 是由 rawPrediction_0,rawPrediction_1 得到的。注:PMML 和 ML 会输出不一样的结果,PMML 的只会输出 1 列结果,仅输出分类结果,列名为 prediction 。
_c0,_c1,_c2,_c3,_c4,_c5,_c6,_c7,_c8,label,prediction,rawPrediction_0,rawPrediction_1
3.0,2.0,3.0,0.0,0.0,2.0,1.0,0.0,1.0,1,1.0,-0.9999999976615241,0.9999999976615241
4.0,1.0,3.0,0.0,1.0,0.0,1.0,4.0,1.0,0,0.0,1.0000000032692655,-1.0000000032692655
4.0,1.0,7.0,0.0,1.0,1.0,0.0,1.0,1.0,1,0.0,0.4943002323472842,-0.4943002323472842
3.0,2.0,7.0,0.0,0.0,2.0,1.0,1.0,0.0,0,0.0,4.77700304382893,-4.77700304382893
3.0,2.0,6.0,1.0,0.0,1.0,0.0,2.0,1.0,1,1.0,-2.194910641202794,2.194910641202794
4.0,2.0,5.0,1.0,1.0,1.0,1.0,0.0,0.0,0,0.0,5.637696253397036,-5.637696253397036
4.0,1.0,8.0,0.0,1.0,2.0,0.0,0.0,1.0,0,0.0,0.9455795918692906,-0.9455795918692906

逻辑回归(LogisticRegression)

原理

算法说明

LogisticRegression(LR)算法是一种常见的分类算法,因其模型简单、可解释性强等特点在工程领域得到广泛应用,该算法支持二分类和多分类。

参数配置

算法 IO 参数
*输入文件类型:格式包括以下两种:
csv :csv 文件
*输入数据包含 header 信息:默认为“是”。
*输入数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
parquet :列式存储格式 parquet
*输出文件类型:格式包括以下两种:
csv :csv 文件
*输出数据包含 header 信息:默认为“是”。
*输出数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
parquet :列式存储格式 parquet
*特征列:作为训练特征的列,从 0 开始编号。对于库表可直接勾选;对于普通路径,可填形式如 a-b、c 或它们的混合,用英文逗号分割(例如 0-10,15,17-19 表示第 0 到 10 列、15 、17 到 19 列总共 15 列作为特征)。
*标签列:作为标签的列,从 0 开始编号。
算法参数
*模型保存格式: ML 格式或者 PMML 格式的模型,保存在后台生成的路径下。
elasticNetParam :弹性网混合参数,0 表示 L2 正则,1 表示 L1 正则,0-1 之间的值表示两者的混合。
* family :算法族,可选 autobinomialmultinomial ,分别表示自动推断、二分类和多分类。
* fitIntercept :是否拟合截距。
maxIter :最大迭代次数。
regParam :正则化系数。
* standardization :训练前是否对特征标准化(特征值除以标准差)。
tol :误差最大容忍界,低于这个界的时候算法停止迭代。

Demo

输入数据示例

示例是无 header (没有列名)且每一行为一条数据,最后一列为标签,其他列为特征。
3,2,3,0,0,2,1,0,1,1
4,1,3,0,1,0,1,4,1,0
4,1,7,0,1,1,0,1,1,1
3,2,7,0,0,2,1,1,0,0
3,2,6,1,0,1,0,2,1,1
4,2,5,1,1,1,1,0,0,0
4,1,8,0,1,2,0,0,1,0

训练节点参数配置

算法 IO 参数
*输入文件类型:csv
*输入数据是否包含 header 信息:否
*输入数据分隔符:逗号
*特征列:0-8
*标签列:9
算法参数
*模型保存格式:PMML
elasticNetParam :0 ,即 L2 正则。
*family : auto ,表示自动推断。
*fitIntercept :true
maxIter :100
regParam :0.0
*standardization :true,对特征标准化(特征值除以标准差)。
tol :0.0

预测节点参数配置

算法 IO 参数
*输入文件类型:csv
*输入数据是否包含 header 信息:否
*输入数据分隔符:逗号
*输出文件类型:csv
*输出数据是否包含 header 信息:否
*输出数据分隔符:逗号
*特征列:0-8
模型参数
*algorithm :LogisticRegression
*模型导入格式:PMML

输出数据示例

得到的结果,在原始数据的基础上添加一列作为标签的预测值,以及相应每一个标签的预测概率列。注:ML 和 PMML 会输出不一样的结果,ML 的会额外输出原始预测权重。
3,2,3,0,0,2,1,0,1,1,1.0,1.176516661871574E-10,0.9999999998823483
4,1,3,0,1,0,1,4,1,0,0.0,0.9999999862691265,1.3730873534497488E-8
4,1,7,0,1,1,0,1,1,1,1.0,2.428424317191258E-8,0.9999999757157568
3,2,7,0,0,2,1,1,0,0,0.0,1.0,2.1597940297232166E-43
3,2,6,1,0,1,0,2,1,1,1.0,0.0,1.0
4,2,5,1,1,1,1,0,0,0,0.0,1.0,2.2252840204314887E-42
4,1,8,0,1,2,0,0,1,0,0.0,0.9999999821910142,1.7808985805859545E-8

随机森林分类(RandomForestClassifier)

原理

算法说明

RandomForestClassifier 是随机森林分类器,支持二分类和多分类、支持离散和连续特征。

参数配置

算法 IO 参数
*输入文件类型:格式包括以下两种:
csv :csv 文件
*输入数据包含 header 信息:默认为“是”。
*输入数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
parquet :列式存储格式 parquet
*输出文件类型:格式包括以下两种:
csv :csv 文件
*输出数据包含 header 信息:默认为“是”。
*输出数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
parquet :列式存储格式 parquet
*特征列:作为训练特征的列,从 0 开始编号。对于库表可以直接勾选,对于普通路径,可填形式如 a-b、c 或者它们的混合,用英文逗号分割(如 0-10,15,17-19 表示第 0 到 10 列、15 、17 到 19 列总共 15 列作为特征)。
*标签列:作为标签的列,从 0 开始编号。
算法参数
*模型保存格式: ML 格式或者 PMML 格式的模型,保存在后台生成的路径下。
*maxDepth :决策树最大深度。离散整正整数参数,比较合理的方式是根据默认值5在周围调节
*maxBins :计算分裂点时对,对连续特征的最大分桶数。最小为 2 。
*minInfoGain :决策树分裂最小信息增益。
*impurity :不纯度指标,支持 gini 指数跟 entropy
*minInstancesPerNode :决策树每个节点的样本下限,可以控制节点是否继续分裂。离散正整数参数,默认值为 1 ,可根据样本数目适当调节。
*maxMemoryInMB :运行时的系统调优参数,单位为 MB ,控制特征直方图的最大大小。
*checkpointInterval :每多少轮设置 checkpoint 一次,在迭代轮数非常多的时候,可以降低因为计算节点失败导致的级联重算风险。默认-1表示不进行 checkpoint 。
*numTrees :树个数。
*featureSubsetStrategy :特征采样比例策略,支持 auto 、all 、onethird 、sqrt 和 log2 ,分别表示自动、全部、三分一、特征数的开方和特征数的对数。其中自动策略为:如果 numTrees 为 1 ,设置为 all ;如果 numTrees 大于 1 ,设置为 onethird 。
*subsamplingRate :样本数采样比例。

Demo

输入数据示例

示例第一行为列名,之后的每一行为一条数据,最后一列为标签,其他列为特征。
SepalLength,SepalWidth,PetalLength,PetalWidth,Species
5.4,3.9,1.7,0.4,0
7.2,3.6,6.1,2.5,2
5.2,4.1,1.5,0.1,0
5.1,3.4,1.5,0.2,0
7.1,3,5.9,2.1,2
7.7,3.8,6.7,2.2,2
4.6,3.1,1.5,0.2,0
5,3,1.6,0.2,0
5.6,2.9,3.6,1.3,1

参数配置(训练节点)

算法 IO 参数
*输入文件类型:csv
*输入数据是否包含 header 信息:是
*输入数据分隔符:逗号
*特征列:0-3
*标签列:4
算法参数
*模型保存格式:PMML
*maxDepth :5
*maxBins :32
*minInfoGain :0.0
*impurity :gini
*minInstancesPerNode :1
*maxMemoryInMB :256
*checkpointInterval :-1
*numTrees :20
*featureSubsetStrategy :auto
*subsamplingRate :1.0

参数配置(预测节点)

算法 IO 参数
*输入文件类型:csv
*输入数据是否包含 header 信息:是
*输入数据分隔符:逗号
*输出文件类型:csv
*输出数据是否包含 header 信息:是
*输出数据分隔符:逗号
*特征列:0-3
模型参数
*algorithm :RandomForestClassifier
*模型导入格式:PMML

输出数据示例

得到的结果,在原始数据的基础上添加一列作为标签的预测值,以及相应每一个标签的预测概率列。注:ML 和 PMML 会输出不一样的结果,ML 的会额外输出原始预测权重。
SepalLength,SepalWidth,PetalLength,PetalWidth,Species,prediction,probability_0,probability_1,probability_2
5.4,3.9,1.7,0.4,0,0.0,0.75,0.2,0.05
7.2,3.6,6.1,2.5,2,2.0,0.0,0.05,0.95
5.2,4.1,1.5,0.1,0,0.0,0.9,0.1,0.0
5.1,3.4,1.5,0.2,0,0.0,0.9,0.1,0.0
7.1,3.0,5.9,2.1,2,2.0,0.0,0.05,0.95
7.7,3.8,6.7,2.2,2,2.0,0.0,0.05,0.95
4.6,3.1,1.5,0.2,0,0.0,1.0,0.0,0.0
5.0,3.0,1.6,0.2,0,0.0,1.0,0.0,0.0
5.6,2.9,3.6,1.3,1,1.0,0.0,0.6,0.4