随机森林
随机森林的基本介绍可以参考 随机森林; scikit-learn随机森林调参小结 ,
具体原理可以参考 Bagging与随机森林算法原理小结 , 我认为重点在于如何分类,如何计算损失函数?
sklearn中RandomForest详解
随机森林和GBDT有什么不同?
- 随机森林由多棵树组成,最终的结果由多棵树共同决定。
- RF中的树可以是回归树,也可以分类树;GBDT只包含回归树。
- RF时基于Bagging并行,GBDT是串行生成
- RF树的深度小,GBDT树的深度大,GBDT的训练时长由树的深度、树的数量、样本量相关。
补充:
XGB 和 GBDT 有什么区别?
- GBDT 的损失函数是一阶泰勒展开,XGB的损失函数基于二阶泰勒展开,优化更快更准
- Xgb引入了树的正则化,将叶节点数量和叶子节点输出作为 L1 和 L2 加入到损失函数中。
- XGB可以直接输入缺失值,也可以将LR作为基学习器。
- XGB引入近似直方图的算法,防止过拟合和提高运算速度。
LGB 和 XGB 的区别?
- 选取最佳特征分割点,lgb使用的是histogram算法,不需要对数据进行排序,可以直接分割成两部分,
- xgb采用的 level-wise树生长策略, lgb采取的是 leaf-wise的树生长策略,容易发生过拟合。
- lgb优化了对应类别特征的输入,支持直接输入,不用转化为0或1
- lgb做了一些并行优化
- 特征并行
- 数据并行
- 投票并行