Random Forest和Gradient Boosting调参小结
2016-08-04 22:12
218 查看
先补充一下相关概念:
Bagging对样本重采样,对每一重采样得到的子样本集训练一个模型,最后取平均,降低模型的 variance。
Boosting
则是迭代算法,每一次迭代都根据上一次迭代的预测结果对样本进行加权,所以随着迭代不断进行,误差会越来越小, bias 会不断降低。
bagging中的模型是强模型,偏差低,方差高。目标是降低方差。在bagging中,每个模型的bias和variance近似相同,但是互相相关性不太高,因此一般不能降低Bias,而一定程度上能降低variance。典型的bagging是random forest。
boosting中每个模型是弱模型,偏差高,方差低。目标是通过平均降低偏差。boosting的基本思想就是用贪心法最小化损失函数,显然能降低偏差,但是通常模型的相关性很强,因此不能显著降低variance。典型的Boosting是adaboost,GBDT。
过拟合的模型,通常variance比较大,这时应该用bagging对其进行修正。
欠拟合的模型,通常Bias比较大,这时应该可以用boosting进行修正。
参数可分为两类:
过程影响类(如:“子模型数”(n_estimators)、“学习率”(learning_rate)等)
子模型影响类(如:“最大树深度”(max_depth)、“分裂条件”(criterion)等)
过程影响类的参数能够引起整体模型性能的大幅度变化。一般来说,在此前提下,我们继续微调子模型影响类的参数,从而进一步提高模型的性能。
Random
Forest:
Random Forest的子模型都拥有较低的偏差,整体模型的训练过程旨在降低方差,故其需要较少的子模型(n_estimators默认值为10)且子模型不为弱模型(max_depth的默认值为None),同时,降低子模型间的相关度可以起到减少整体模型的方差的效果(max_features的默认值为auto)。
增加“子模型数”(n_estimators)可以明显降低整体模型的方差,叶节点越多或者树越深,意味着子模型的偏差越低,方差越高。一般采用bootstrap对样本进行子采样来降低子模型之间的关联度,从而降低整体模型的方差。
Gradient
Boosting:
Gradient Tree Boosting的子模型都拥有较低的方差,整体模型的训练过程旨在降低偏差,故其需要较多的子模型(n_estimators默认值为100)且子模型为弱模型(max_depth的默认值为3),但是降低子模型间的相关度不能显著减少整体模型的方差(max_features的默认值为None)。
调整“子模型数”(n_estimators)和“学习率”(learning_rate)提高模型的准确度,子模型越复杂,从而降低整体模型偏差。
tips:选取影响最大的参数进行调整即可。
Bagging对样本重采样,对每一重采样得到的子样本集训练一个模型,最后取平均,降低模型的 variance。
Boosting
则是迭代算法,每一次迭代都根据上一次迭代的预测结果对样本进行加权,所以随着迭代不断进行,误差会越来越小, bias 会不断降低。
bagging中的模型是强模型,偏差低,方差高。目标是降低方差。在bagging中,每个模型的bias和variance近似相同,但是互相相关性不太高,因此一般不能降低Bias,而一定程度上能降低variance。典型的bagging是random forest。
boosting中每个模型是弱模型,偏差高,方差低。目标是通过平均降低偏差。boosting的基本思想就是用贪心法最小化损失函数,显然能降低偏差,但是通常模型的相关性很强,因此不能显著降低variance。典型的Boosting是adaboost,GBDT。
过拟合的模型,通常variance比较大,这时应该用bagging对其进行修正。
欠拟合的模型,通常Bias比较大,这时应该可以用boosting进行修正。
参数可分为两类:
过程影响类(如:“子模型数”(n_estimators)、“学习率”(learning_rate)等)
子模型影响类(如:“最大树深度”(max_depth)、“分裂条件”(criterion)等)
过程影响类的参数能够引起整体模型性能的大幅度变化。一般来说,在此前提下,我们继续微调子模型影响类的参数,从而进一步提高模型的性能。
Random
Forest:
Random Forest的子模型都拥有较低的偏差,整体模型的训练过程旨在降低方差,故其需要较少的子模型(n_estimators默认值为10)且子模型不为弱模型(max_depth的默认值为None),同时,降低子模型间的相关度可以起到减少整体模型的方差的效果(max_features的默认值为auto)。
增加“子模型数”(n_estimators)可以明显降低整体模型的方差,叶节点越多或者树越深,意味着子模型的偏差越低,方差越高。一般采用bootstrap对样本进行子采样来降低子模型之间的关联度,从而降低整体模型的方差。
Gradient
Boosting:
Gradient Tree Boosting的子模型都拥有较低的方差,整体模型的训练过程旨在降低偏差,故其需要较多的子模型(n_estimators默认值为100)且子模型为弱模型(max_depth的默认值为3),但是降低子模型间的相关度不能显著减少整体模型的方差(max_features的默认值为None)。
调整“子模型数”(n_estimators)和“学习率”(learning_rate)提高模型的准确度,子模型越复杂,从而降低整体模型偏差。
tips:选取影响最大的参数进行调整即可。
相关文章推荐
- 系列 《使用sklearn进行集成学习——理论》 《使用sklearn进行集成学习——实践》 目录 1 Random Forest和Gradient Tree Boosting参数详解 2 如何调参?
- Python中Gradient Boosting Machine(GBM)方法以及调参详解
- xgboost、random forest等模型调参小结
- Gradient Boosting(GBM) 调参指南
- Decision stump、Bootstraping、bagging、boosting、Random Forest、Gradient Boosting
- Random Forest和Gradient Tree Boosting如何调参
- Random Forest和Gradient Tree Boosting模型如何调参
- Jackknife,Bootstraping, bagging, boosting, AdaBoosting, Random forest 和 gradient boosting的区别
- Jackknife,Bootstraping, bagging, boosting, AdaBoosting, Random forest 和 gradient boosting的区别
- Gradient boosting
- 统计学习方法——CART, Bagging, Random Forest, Boosting
- GBDT(Gradient boosting decision tree)算法
- scikit-learn随机森林调参小结
- GBTD(Gradient Boosting Decision Tree)学习
- CART, Bagging, Random Forest, Boosting
- 【机器学习】决策树及Bagging, Random Forest和Boosting模型融合
- 机器学习中的数学(3)-模型组合(Model Combining)之Boosting与Gradient Boosting
- GBDT(Gradient Boosting Decision Tree)
- 利用树的集成模型分类器RandomForestClassifier/GradientBoostingClassifier进行二类分类(复习6)
- 利用树的集成回归模型RandomForestRegressor/ExtraTreesRegressor/GradientBoostingRegressor进行回归预测(复习11)