Spark GBDT vs Random Forests vs xgboost

本文对比分析了Spark中的GBDT、随机森林(RF)和xgboost。GBDT训练时间长,易过拟合,但通过调整参数可优化;RF并行训练多棵树,不易过拟合,参数调整简单;xgboost利用泰勒展开快速学习,防止过拟合。关键在于理解各类模型的优缺点及参数调优。

参考spark API文档

算法层面比较: GBDT vs Random Forests (RF)

1) GBDT一次只训练一棵树,而RF一次可以并行地训练多棵树,所以GBDT的训练时间更长。所以,GBDT通常会使用更小的树,同时也减少训练一棵树的时间。

2)RF更不容易过拟合,训练更多的树能够降低RF过拟合的可能性,却增加GBDT过拟合的可能性。 (因为在统计学角度,RF通过训练更多的树降低方差,而GBDT通过训练更多的树来降低偏差.)

3) RF更易于调整,因为其性能随树的个数单调递增。而对于GBDT来说,当树的个数太大时,其性能可能会随着树的个数增加而降低。

 

随机森林

支持二分类,多分类,回归。训练的每棵树的分类结果都会有所不同,将所有树结合在一起可以降低方差,从而提高性能。

 

1.训练

每一次迭代中从原始数据集采样得到子数据集,在子数据集上应用决策树模型。对于不同的子数据集,使用不同的特征子集作为决策树上的分类节点。

2.预测

1)分类模型:多数投票制。每一棵树的预测结果代表对对应类的一个选票,最终将选票最多的类作为最终预测结果。

2)回归模型:平均。将每棵树的结果做平均得到最终预测结果。

 

3.提升模型性能常考虑的参数

1)numTrees: 增加树的数目能够降低模型的方差,提高在测试集上的性能,但是同时也会线性增加训练时间。

2)maxDepth:增加每棵树的深度能够增加树的可表示性,但也会增加训练时间并且可能会过拟合(增加了每棵树中的特征个数)。但是相比于单棵决策树,增加树的深度对于随机森林来说是可以接受的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值