本文根据5个典型的数据集和训练任务类型,评估了主流最新版本的gbm框架:xgboost,lightgbm,catboost。

从3个方面(速度、精度、运行时特性)总结了训练特性。参考如下,建议大家收藏备用。

结论

绿色越多,越好

硬件

Architecture: x86_64
型号名称: Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40G

  • 软件

使用当前最新版本(202208)


xgboost: 1.6.1
lightgbm: 3.3.2
catboost: 1.0.6

  • 运行时

1、参数:相同的树规模参数、16个线程;
2、分别使用 GPU和CPU训练
数据

5类数据类型和典型训练任务(回顾、分类、多分类)

  • YearPredictionMSD

    • 类型:Regression

    • 大小:515345*90

    • 说明:从音频特征(音色等)预测歌曲的发行年份。歌曲大多是1922年至2011年的西方商业歌曲。

    • 链接:https://archive.ics.uci.edu/ml/datasets/yearpredictionmsd

  • 人造数据集

    • 类型:Regression

    • 大小:10_000_000*100(千万)

    • 说明:bias=100, noise=1.0, random_state=0

    • 链接:sklearn.datasets.make_regression

  • Higgs

    • 类型:Binary classification

    • 大小:11_000_000 * 28 【千万】

    • 说明:使用蒙特卡罗模拟产生,前21个特征(列2-22)是由加速器中的粒子探测器测量的运动特性,后7个特征是前21个特征的函数

    • 链接:https://archive.ics.uci.edu/ml/datasets/HIGGS

  • Covertype

    • 类型:Multiclass classification

    • 大小:581012*54

    • 说明:从地图变量(山体阴影、土壤类型等)预测森林覆盖的7种类型(云杉/冷杉、黄松等)

    • 链接:https://archive.ics.uci.edu/ml/datasets/covertype

  • Airline dataset

    • 13个属性:年、月、月、日、周、CRS出发时间、CRS到达时间、唯一承运人、航班号、实际经过时间、始发地、目的地、距离和改道

    • 目标变量是到达延迟,以秒为单位

    • 类型:Binary classification(对y转化为二分类)

    • 大小:近1.2亿条记录的大型数据集(内存大小为11.5 GB),1.2亿 * 14

    • 说明:从1987年10月到2008年4月美国境内所有商业航班的航班到达和起飞详细信息

    • 链接:http://kt.ijs.si/elena_ikonomovska/data.html

GPU训练特性总结
  • xgb:显存不释放:只要进程还在(比如训练完xgb,继续训练其他模型),显存不释放

  • lgb:显存使用正常:训练完就释放

  • cat:显存初始化缺陷:指定具体卡后,在指定卡运算,但是所有卡的显存都被占用近200M的显存(上述示例中)

卡对应关系:

0: xgb
1: lgb
2: cat

图示说明:

  • 图一:xgb训练完,lgb已经在第二张卡训练了,序号0卡依然占用显存

打开网易新闻 查看精彩图片
图一
  • 图二:当cat运行时,其他卡(如序号2),都被初始化了184M的显存

打开网易新闻 查看精彩图片
图二

上述part1和part2的合并:

性能