1. 分类算法

1.1. 逻辑回归([2.0] LogisticRegression)

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

训练节点

  • 输入
    • 训练路径:路径或者库表,Dense 结构,每一列对应一个特征、标签或不参与计算的字段。
    • 输入文件类型:格式包括以下三种:
      • csv: csv 文件
        • 输入数据包含header信息
        • 输入数据分割符:主要包括逗号、空格、分号、星号等分割符
      • text:文本文件
      • parquet:列式存储格式 parquet
    • 特征列:作为训练特征的列,从0开始编号。对于库表可直接勾选;对于普通路径,可填形式如 a-b、c 或它们的混合,用英文逗号分割(例如0-10,15,17-19表示第0到10列、15、17到19列总共15列作为特征)。
    • 标签列:作为标签的列,从0开始编号。要求特征列的特征标签为 double 类型,且从0开始连续编号。
    • 验证数据:半自动调参时用于评估的数据,格式与训练数据一致。
  • 输出:ML 格式或者 PMML 格式的模型,保存在后台生成的路径下。
  • 算法参数
    • elasticNetParam:弹性网混合参数,0表示L2正则,1表示L1正则,0 - 1之间的值表示两者的混合。
    • family:算法族,可选 autobinomialmultinomial,分别表示自动推断、二分类和多分类。
    • fitIntercept:是否拟合截距。
    • maxIter:最大迭代次数。
    • regParam:正则化系数。
    • standardization:训练前是否对特征标准化(特征值除以标准差)。
    • tol:误差最大容忍界,低于这个界的时候算法停止迭代。
  • 半自动调参
    • 调参算法:默认贝叶斯调参,目前支持贝叶斯调参、网格调参和随机调参。
    • 评估方法:算法的评估方法,支持 BinaryClassificationEvaluatorMulticlassClassificationEvaluator,分别对应二分类评估跟多分类评估。
    • 评估指标:算法的评估指标,选择 BinaryClassificationEvaluator 时,支持 areaUnderRocareaUnderPR;选择 MulticlassClassificationEvaluator 时,支持 f1、weightedPrecision、weightedRecall、accuracy
    • elasticNetParam:连续范围参数,范围不超过0 - 1。
    • regParam:连续范围参数,下界大于等于0,上界没有限制(太大会导致所有样本划归到“0”类)。

预测节点

  • 输入
    • 训练路径:路径或者库表,Dense 结构,每一列对应一个特征、标签或者不参与计算的字段。
    • 输入文件类型:格式包括以下三种:
      • csv: csv 文件
        • 输入数据包含header信息
        • 输入数据分割符:主要包括逗号、空格、分号、星号等分割符
      • text:文本文件
      • parquet:列式存储格式 parquet
    • 特征列:作为训练特征的列,从0开始编号。对于库表可以直接勾选,对于普通路径,可填形式如 a-b、c 或者它们的混合,用英文逗号分割(例如0-10,15,17-19表示第0到10列、15、17到19列总共15列作为特征)。
  • 输出
    • 结果路径:路径。
    • 输出文件类型:格式包括以下三种:
      • csv: csv 文件
        • 输出数据包含header信息
        • 输出数据分割符:主要包括逗号、空格、分号、星号等分割符
      • text:文本文件
      • parquet:列式存储格式 parquet

1.2. 朴素贝叶斯([2.0] NaiveBayes)

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

训练节点

  • 输入
    • 训练路径:路径或者库表,Dense 结构, 每一列对应一个特征、标签或者不参与计算的字段。
    • 输入文件类型:格式包括以下三种:
      • csv: csv 文件
        • 输入数据包含header信息
        • 输入数据分割符:主要包括逗号、空格、分号、星号等分割符
      • text:文本文件
      • parquet:列式存储格式 parquet
    • 特征列:作为训练特征的列,从0开始编号。对于库表可以直接勾选,对于普通路径,可填形式如 a-b、c 或者它们的混合,用英文逗号分割(例如0-10,15,17-19表示第0到10列、15、17到19列总共15列作为特征)。
    • 标签列:作为标签的列,从0开始编号。要求特征列的特征标签为 double 类型,且从0开始连续编号。
    • 验证数据:半自动调参时用于评估的数据,格式与训练数据一致。
  • 输出
    • ML 格式或者 PMML 格式的模型,保存在后台生成的路径下。
  • 算法参数
    • modelType:模型类型,支持 multinomialbernoulli
    • smoothing:光滑参数。
  • 半自动调参
    • 调参算法:默认贝叶斯调参,目前支持贝叶斯调参、网格调参和随机调参。
    • 评估方法:算法的评估方法,支持 BinaryClassificationEvaluatorMulticlassClassificationEvaluator,分别对应二分类评估跟多分类评估。
    • 评估指标:算法的评估指标,选择 BinaryClassificationEvaluator 时,支持 areaUnderRocareaUnderPR;选择 MulticlassClassificationEvaluator 时,支持 f1、weightedPrecision、weightedRecall、accuracy
    • smoothing:连续范围参数。

预测节点

  • 输入
    • 训练路径:路径或者库表,Dense 结构, 每一列对应一个特征、标签或者不参与计算的字段。
    • 输入文件类型:格式包括以下三种:
      • csv: csv 文件
        • 输入数据包含header信息
        • 输入数据分割符:主要包括逗号、空格、分号、星号等分割符
      • text:文本文件
      • parquet:列式存储格式 parquet
    • 特征列:作为训练特征的列,从0开始编号。对于库表可以直接勾选,对于普通路径,可填形式如 a-b、c 或者它们的混合,用英文逗号分割(例如0-10,15,17-19表示第0到10列、15、17到19列总共15列作为特征)。
  • 输出
    • 结果路径:路径。
    • 输出文件类型:格式包括以下三种:
      • csv: csv 文件
        • 输出数据包含header信息
        • 输出数据分割符:主要包括逗号、空格、分号、星号等分割符
      • text:文本文件
      • parquet:列式存储格式 parquet

1.3. 线性支持向量机([2.0] LinearSVC)

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

训练节点

  • 输入
    • 训练路径:路径或者库表,Dense 结构, 每一列对应一个特征、标签或者不参与计算的字段。
    • 输入文件类型:格式包括以下三种:
      • csv: csv 文件
        • 输入数据包含header信息
        • 输入数据分割符:主要包括逗号、空格、分号、星号等分割符
      • text:文本文件
      • parquet:列式存储格式 parquet
    • 特征列:作为训练特征的列,从0开始编号。对于库表可以直接勾选,对于普通路径,可填形式如 a-b、c 或者它们的混合,用英文逗号分割(例如0-10,15,17-19表示第0到10列、15、17到19列总共15列作为特征)。
    • 标签列:作为标签的列,从0开始编号。要求特征列的特征标签为double型,且从0开始连续编号。
    • 验证数据:半自动调参时用于评估的数据,格式与训练数据一致。
  • 输出:ML 格式或者 PMML 格式的模型,保存在后台生成的路径下。
  • 算法参数
    • fitIntercept:是否拟合截距。
    • maxIter:最大迭代次数。
    • regParam:正则化系数。
    • standardization:训练前是否对特征标准化(特征值除以标准差)。
    • tol:误差最大容忍界,低于这个界的时候算法停止迭代。
  • 半自动调参
    • 调参算法:默认贝叶斯调参,目前支持贝叶斯调参、网格调参和随机调参。
    • 评估方法:算法的评估方法,支持 BinaryClassificationEvaluatorMulticlassClassificationEvaluator,分别对应二分类评估跟多分类评估。
    • 评估指标:算法的评估指标,选择 BinaryClassificationEvaluator 时,支持 areaUnderRocareaUnderPR;选择MulticlassClassificationEvaluator 时,支持f1、weightedPrecision、weightedRecall、accuracy
    • regParam:连续范围参数,下界大于等于0,上界没有限制(太大会导致所有样本划归到“0”类)。

预测节点

  • 输入
    • 训练路径:路径或者库表,Dense 结构, 每一列对应一个特征、标签或者不参与计算的字段。
    • 输入文件类型:格式包括以下三种:
      • csv: csv 文件
        • 输入数据包含header信息
        • 输入数据分割符:主要包括逗号、空格、分号、星号等分割符
      • text:文本文件
      • parquet:列式存储格式 parquet
    • 特征列:作为训练特征的列,从0开始编号。对于库表可以直接勾选,对于普通路径,可填形式如 a-b、c 或者它们的混合,用英文逗号分割(例如0-10,15,17-19表示第0到10列、15、17到19列总共15列作为特征)。
  • 输出
    • 结果路径:路径。
    • 输出文件类型:格式包括以下三种:
      • csv: csv 文件
        • 输出数据包含header信息
        • 输出数据分割符:主要包括逗号、空格、分号、星号等分割符
      • text:文本文件
      • parquet:列式存储格式 parquet

1.4. 决策树([2.0] DecisionTree)

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

训练节点

  • 输入
    • 训练路径:路径或者库表,Dense 结构, 每一列对应一个特征、标签或者不参与计算的字段。
    • 输入文件类型:格式包括以下三种:
      • csv: csv 文件
        • 输入数据包含header信息
        • 输入数据分割符:主要包括逗号、空格、分号、星号等分割符
      • text:文本文件
      • parquet:列式存储格式 parquet
    • 特征列:作为训练特征的列,从0开始编号。对于库表可以直接勾选,对于普通路径,可填形式如 a-b、c 或者它们的混合,用英文逗号分割(如0-10,15,17-19表示第0到10列、15、17到19列总共15列作为特征)。
    • 标签列:作为标签的列,从0开始编号。要求特征列的特征标签为 double 类型,且从0开始连续编号。
    • 验证数据:半自动调参时用于评估的数据,格式与训练数据一致。
  • 输出:ML 格式或者 PMML 格式的模型,保存在后台生成的路径下。
  • 算法参数
    • maxDepth:决策树最大深度。
    • maxBins:决策树最大分支数。
    • minInfoGain:决策树分裂最小信息增益。
    • impurity:不纯度指标,支持 gini 指数跟 entropy
    • minInstancesPerNode:决策树节点最小样本数。
    • checkpointInterval:每多少轮设置 checkpoint 一次,在迭代轮数非常多的时候,可以降低因为计算节点失败导致的级联重算风险。
  • 半自动调参
    • 调参算法:默认贝叶斯调参,目前支持贝叶斯调参、网格调参和随机调参。
    • 评估方法:算法的评估方法,支持 BinaryClassificationEvaluatorMulticlassClassificationEvaluator,分别对应二分类评估跟多分类评估。
    • 评估指标:算法的评估指标,选择 BinaryClassificationEvaluator 时,支持 areaUnderRocareaUnderPR;选择 MulticlassClassificationEvaluator 时支持 f1、weightedPrecision、weightedRecall、accuracy
    • minInfoGain:连续范围参数,下界大于等于0,上界小于1,一般不超过0.1。
    • maxDepth:离散整正整数参数,比较合理的方式是根据默认值5在周围调节。
    • maxBins:离散正整数参数,比较合理的方式是根据默认值32在周围调节。
    • minInstancesPerNode:离散正整数参数,默认值为1,可根据样本数目适当调节。

预测节点

  • 输入
    • 训练路径:路径或者库表,Dense 结构, 每一列对应一个特征、标签或者不参与计算的字段。
    • 输入文件类型:格式包括以下三种:
      • csv: csv 文件
        • 输入数据包含header信息
        • 输入数据分割符:主要包括逗号、空格、分号、星号等分割符
      • text:文本文件
      • parquet:列式存储格式 parquet
    • 特征列:作为训练特征的列,从0开始编号。对于库表可以直接勾选,对于普通路径,可填形式如 a-b、c 或者它们的混合,用英文逗号分割(如0-10,15,17-19表示第0到10列、15、17到19列总共15列作为特征)。
  • 输出
    • 结果路径:路径。
    • 输出文件类型:格式包括以下三种:
      • csv: csv 文件
        • 输出数据包含header信息
        • 输出数据分割符:主要包括逗号、空格、分号、星号等分割符
      • text:文本文件
      • parquet:列式存储格式 parquet

1.5. 随机森林([2.0] RandomForestClassifier)

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

训练节点

  • 输入
    • 训练路径:路径或者库表,Dense 结构, 每一列对应一个特征、标签或者不参与计算的字段。
    • 输入文件类型:格式包括以下三种:
      • csv: csv 文件
        • 输入数据包含header信息
        • 输入数据分割符:主要包括逗号、空格、分号、星号等分割符
      • text:文本文件
      • parquet:列式存储格式 parquet
    • 特征列:作为训练特征的列,从0开始编号。对于库表可以直接勾选,对于普通路径,可填形式如 a-b、c 或者它们的混合,用英文逗号分割(例如0-10,15,17-19表示第0到10列、15、17到19列总共15列作为特征)。
    • 标签列:作为标签的列,从0开始编号。要求特征列的特征标签为 double 类型,且从0开始连续编号。
    • 验证数据:半自动调参时用于评估的数据,格式与训练数据一致。
  • 输出:ML 格式或者 PMML 格式的模型,保存在后台生成的路径下。
  • 算法参数
    • maxDepth:决策树最大深度。
    • maxBins:决策树最大分支数。
    • minInfoGain:决策树分裂最小信息增益。
    • impurity:不纯度指标,支持 gini 指数和 entropy
    • minInstancesPerNode:决策树节点最小样本数。
    • checkpointInterval:每多少轮设置 checkpoint 一次,在迭代轮数非常多的时候,可以降低因为计算节点失败导致的级联重算风险。
    • numTrees:最大迭代次数。
    • featureSubsetStrategy:特征采样比例策略,支持 auto、all、onethird、sqrt 和 log2,分别表示自动、全部、三分一、特征数的开方和特征数的对数。其中自动策略为:如果 numTrees 为1,设置为 all;如果 numTrees 大于1,设置为 onethird。
    • subsamplingRate:样本数采样比例。
  • 半自动调参
    • 调参算法:默认贝叶斯调参,目前支持贝叶斯调参、网格调参和随机调参。
    • 评估方法:算法的评估方法,支持 BinaryClassificationEvaluatorMulticlassClassificationEvaluator,分别对应二分类评估跟多分类评估。
    • 评估指标:算法的评估指标,选择 BinaryClassificationEvaluator时,支持 areaUnderRocareaUnderPR;选择 MulticlassClassificationEvaluator 时,支持 f1、weightedPrecision、weightedRecall、accuracy
    • minInfoGain:连续范围参数,下界大于等于0,上界小于1,一般不超过0.1。
    • maxDepth:离散整正整数参数,比较合理的方式是根据默认值5在周围调节。
    • maxBins:离散正整数参数,比较合理的方式是根据默认值32在周围调节。
    • minInstancesPerNode:离散正整数参数,默认值为1,可根据样本数目适当调节。
    • numTrees:离散正整数参数,比较合理的方式是根据默认值20在周围调节。

预测节点

  • 输入
    • 训练路径:路径或者库表,Dense 结构, 每一列对应一个特征、标签或者不参与计算的字段。
    • 输入文件类型:格式包括以下三种:
      • csv: csv 文件
        • 输入数据包含header信息
        • 输入数据分割符:主要包括逗号、空格、分号、星号等分割符
      • text:文本文件
      • parquet:列式存储格式 parquet
    • 特征列:作为训练特征的列,从0开始编号。对于库表可以直接勾选,对于普通路径,可填形式如 a-b、c 或者它们的混合,用英文逗号分割(例如0-10,15,17-19表示第0到10列、15、17到19列总共15列作为特征)。
  • 输出
    • 结果路径:路径。
    • 输出文件类型:格式包括以下三种:
      • csv: csv 文件
        • 输出数据包含header信息
        • 输出数据分割符:主要包括逗号、空格、分号、星号等分割符
      • text:文本文件
      • parquet:列式存储格式 parquet

1.6. 梯度提升树([2.0] GradientBoostedTrees)

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

训练节点

  • 输入
    • 训练路径:路径或者库表,Dense 结构, 每一列对应一个特征、标签或者不参与计算的字段。
    • 输入文件类型:格式包括以下三种:
      • csv: csv 文件
        • 输入数据包含header信息
        • 输入数据分割符:主要包括逗号、空格、分号、星号等分割符
      • text:文本文件
      • parquet:列式存储格式 parquet
    • 特征列:作为训练特征的列,从0开始编号。对于库表可以直接勾选,对于普通路径,可填形式如 a-b、c 或者它们的混合,用英文逗号分割(例如0-10,15,17-19表示第0到10列、15、17到19列总共15列作为特征)。
    • 标签列:作为标签的列,从0开始编号。要求特征列的特征标签为 double 类型,且从0开始连续编号。
    • 验证数据:半自动调参时用于评估的数据,格式与训练数据一致
  • 输出:ML 格式或者 PMML 格式的模型,保存在后台生成的路径下。
  • 算法参数
    • featureSubsetStrategy:特征采样比例策略,支持 auto、all、onethird、sqrtlog2,分别表示自动、全部、三分一、特征数的开方和特征数的对数。其中自动策略为:如果 numTrees 为1,设置为 all;如果 numTrees 大于1,设置为 onethird
    • impurity:不纯度指标,支持 gini 指数和 entropy
    • maxBins:决策树最大分支数。
    • maxDepth:决策树最大深度。
    • maxIter:最大迭代次数。
    • minInfoGain:决策树分裂最小信息增益。
    • minInstancesPerNode:决策树节点最小样本数。
    • stepSize:步长,范围为(0, 1]。
    • subsamplingRate:样本数采样比例。
  • 半自动调参
    • 调参算法:默认贝叶斯调参,目前支持贝叶斯调参、网格调参和随机调参。
    • 评估方法:算法的评估方法,支持 BinaryClassificationEvaluatorMulticlassClassificationEvaluator,分别对应二分类评估跟多分类评估。
    • 评估指标:算法的评估指标,选择 BinaryClassificationEvaluator 时,支持 areaUnderRocareaUnderPR;选择 MulticlassClassificationEvaluator 时,支持 f1、weightedPrecision、weightedRecall、accuracy
    • minInfoGain:连续范围参数,下界大于等于0,上界小于1,一般不超过0.1。
    • stepSize:连续范围参数,下界大于0,上界小于等于1
    • subsamplingRate:连续范围参数,下界大于0,上界小于等于1。
    • maxBins:离散正整数参数,比较合理的方式是根据默认值32在周围调节。
    • maxDepth:离散整正整数参数,比较合理的方式是根据默认值5在周围调节。
    • minInstancesPerNode:离散正整数参数,默认值为1,可根据样本数目适当调节。

预测节点

  • 输入
    • 训练路径:路径或者库表,Dense 结构, 每一列对应一个特征、标签或者不参与计算的字段。
    • 输入文件类型:格式包括以下三种:
      • csv: csv 文件
        • 输入数据包含header信息
        • 输入数据分割符:主要包括逗号、空格、分号、星号等分割符
      • text:文本文件
      • parquet:列式存储格式 parquet
    • 特征列:作为训练特征的列,从0开始编号。对于库表可以直接勾选,对于普通路径,可填 形式如 a-b、c或者它们的混合,用英文逗号分割(例如0-10,15,17-19表示第0到10列、15、17到19列总共15列作为特征)。
  • 输出
    • 结果路径:路径。
    • 输出文件类型:格式包括以下三种:
      • csv: csv 文件
        • 输出数据包含header信息
        • 输出数据分割符:主要包括逗号、空格、分号、星号等分割符
      • text:文本文件
      • parquet:列式存储格式 parquet

1.7. K近邻([2.0] KNN)

KNN是通过测量不同特征值之间的距离进行分类。它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别,其中K通常是不大于20的整数。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。具体的说明请看分布式KNN

训练节点

  • 输入
    • 训练路径:路径或者库表,Dense 结构, 每一列对应一个特征、标签或者不参与计算的字段。
    • 输入文件类型:格式包括以下三种:
      • csv: csv 文件
        • 输入数据包含header信息
        • 输入数据分割符:主要包括逗号、空格、分号、星号等分割符
      • text:文本文件
      • parquet:列式存储格式 parquet
    • 特征列:作为训练特征的列,从0开始编号。对于库表可以直接勾选,对于普通路径,可填形式如 a-b、c 或者它们的混合,用英文逗号分割(例如0-10,15,17-19表示第0到10列、15、17到19列总共15列作为特征)。
    • 标签列:作为标签的列,从0开始编号。要求特征列的特征标签为 double 类型,且从0开始连续编号。
    • 验证数据:半自动调参时用于评估的数据,格式与训练数据一致
  • 输出:ML 格式的模型,保存在后台生成的路径下。
  • 算法参数
    • k:k近邻
    • topTreeSize:顶层树的样本点个数。
    • topTreeLeafSize:顶层树叶子节点包含样本点个数。
    • subTreeLeafSize:子数叶子节点包含样本点个数。

预测节点

  • 输入
    • 训练路径:路径或者库表,Dense 结构, 每一列对应一个特征、标签或者不参与计算的字段。
    • 输入文件类型:格式包括以下三种:
      • csv: csv 文件
        • 输入数据包含header信息
        • 输入数据分割符:主要包括逗号、空格、分号、星号等分割符
      • text:文本文件
      • parquet:列式存储格式 parquet
    • 特征列:作为训练特征的列,从0开始编号。对于库表可以直接勾选,对于普通路径,可填 形式如 a-b、c或者它们的混合,用英文逗号分割(例如0-10,15,17-19表示第0到10列、15、17到19列总共15列作为特征)。
  • 输出
    • 结果路径:路径。
    • 输出文件类型:格式包括以下三种:
      • csv: csv 文件
        • 输出数据包含header信息
        • 输出数据分割符:主要包括逗号、空格、分号、星号等分割符
      • text:文本文件
      • parquet:列式存储格式 parquet