支持的算法

常量模型

常量模型用于为任何输入数据预测相同的常量值。常量值通过优化特定评分器计算。例如,对于 MSE/RMSE,常量为目标列的(加权)平均值。对于 MAE,常量为(加权)中值。对于 MAPE 或自定义评分器等其他评分器,可以通过优化流程找出常量。对于分类问题,恒定概率值为观测到的先验概率。

常数模型用作基线参考模型。如果在结束时在最终管道中使用此模型,会发出警告,因为这样会导致数据集或目标列中出现问题(例如在尝试预测随机结果时)。

决策树

决策树是一种单一(二元)树模型,将训练数据聚类拆分为结果类似的分组(叶节点)。其中不会执行行或列采样,将通过超参数控制树的深度和(取决于深度或损失的)生长法。

FTRL

Follow the Regularized Leader (FTRL) 算法是 [4] 中提出的 FTRL-Proximal 在线学习算法的 DataTable 实现 [1]。此实现方式利用了散列法和 Hogwild 方法 [3] 来实现并行化。FTRL 支持分类目标的二项和多项分类以及连续目标的回归分析。

GLM

广义线性模型 (GLM) 用于针对符合指数分布的结果估算回归模型。GLM 是传统线性模型的扩展。由于具有以下优势,GLM 在统计数据分析中越来越受欢迎:

  • 模型结构在统一典型回归方法(如线性回归和用于二元分类的逻辑回归)方面具有灵活性

  • 在近期可以获得模型拟合软件

  • 能针对大数据集进行良好的扩展

Driverless AI 使用 XGBoost GLM 实现 (booster=gblinear) 进行建模。此 GLM 可能会提前停止。

孤立森林

孤立森林 (Isolation Forest) 对数据异常或异常值的识别非常有效。孤立森林通过随机选择特征和在该特征的最大值和最小值之间随机选择拆分值隔离观测值。此拆分值取决于隔离特征点所需的时间。随机分割会产生与异常相关的明显更短的路径。当随机树森林为某些样本产生更短的路径时,这些样本很可能是异常。

LightGBM

LightGBM 是微软使用基于树形结构的学习算法开发的一种梯度增强框架。其专为降低内存占用、提高训练速度和提高效率而设计。与 XGBoost 类似,它是一种可用的最佳梯度增强实现,此外还用于拟合随机森林、(实验性)DART 和 Driverless AI 内部的决策树模型。

PyTorch 模型

PyTorch 是一种开源库,其用于自然语言处理和计算机视觉等深度学习任务。

Driverless AI 的 NLP BERT 模型使用 PyTorch 实现,详情请参见 NLP in Driverless AI.

PyTorch Grownet 模型

梯度提升神经网络,即 GrowNet 将梯度提升应用于浅层神经网络。GrowNet 是由 k 个神经网络模型组成的集成。每个模型都获有上一个模型的原始特征和预测结果。对所有模型的预测结果进行汇总以生成最终输出。每个模型都可以简单到只有一个隐藏层。根据本文,相较 深度神经网络 而言,GrowNet 易于调优,而且所需的计算成本和训练时间更少,但在回归、分类和多个数据集排名方面似乎优于深度神经网络。

Driverless AI 集成了 Pytorch implementation of Grownet. 模型专家设置参数 enable_grownet 控制运行。

Random Forest

Random Forest 对同一个训练数据不同部分上的多个深度决策树进行均分。

Driverless AI 支持使用 XGBoost RandomForest (XGBRF) 和 LightGBM RandomForest (boosting=rf) 实现进行建模。

RuleFit

RuleFit [2] 算法通过依次拟合树模型和 Lasso (L1 正则化) GLM 模型创建最优的决策规则集合,以创建由最重要的树叶(规则)构成的线性模型。

MOJO 目前不可用于 RuleFit 模型。

TensorFlow

TensorFlow 是一种用于执行高性能数值计算的开源软件库。Driverless AI 包括基于 CNN 和 BiGRU (RNN) 深度学习模型的 TensorFlow NLP 插件,以及用于图像数据的 Tensorflow Imagenet models

目前只有 C++ MOJO 可用于 TensorFlow 模型。

XGBoost

XGBoost 是一种监督学习算法,实现了被称为“增强”的进程,以生成准确的模型。增强是指用于连续构建大量模型的集成学习方法,其中每个新模型都会尝试纠正前一个模型中的缺陷。在树增强过程中,每个被添加到集成中的新模型都是决策树。XGBoost 提供了并行树增强(也称为 GBDT、GBM),可以快速和准确地解决许多数据科学问题。XGBoost 是现今最佳的梯度提升机 (GBM) 框架之一,可用于解决很多问题。

Driverless AI 支持 XGBoost GBM 和 XGBoost DART 模型。

零膨胀模型

针对保险索赔用例中的示例,零膨胀模型可对目标变量中具有多余零计数的数据进行拟合。在 Driverless AI 中,此模型可用于训练尝试对零值和非零值进行分类的分类器,然后训练尝试预测非零值的回归模型。将分类器预测值与回归预测值相乘,即可得出最终输出值。

Driverless AI 支持 LightGBM 和 XGBoost 版本的零膨胀模型。

参考资料

[1] DataTable for Python, https://github.com/h2oai/datatable

[2] J. Friedman, B. Popescu. “Predictive Learning via Rule Ensembles”. 2005. http://statweb.stanford.edu/~jhf/ftp/RuleFit.pdf

[3] Niu, Feng, et al. “Hogwild: A lock-free approach to parallelizing stochastic gradient descent.” Advances in neural information processing systems. 2011. https://people.eecs.berkeley.edu/~brecht/papers/hogwildTR.pdf

[4] McMahan, H. Brendan, et al. “Ad click prediction: a view from the trenches.” Proceedings of the 19th ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2013. https://research.google.com/pubs/archive/41159.pdf