GBDT RF,rf 调参

来源:互联网 发布:mysql install db 编辑:程序博客网 时间:2024/04/29 08:42

转载于:https://www.zhihu.com/question/34470160?sort=created

GBDTRF调参:

为了使得整体性能提高,减少误差,误差包括方差 偏差,所以目的使得 偏差和方差协调,性能提升。

GBDTRf好多参数类似,主要专注于1)损失函数(分类:指数损失函数,对数损失函数;回归,平方误差等);2)调整过程类影响参数(比如树的个数,学习率);3)调整子模型类影响参数(比如树的深度,叶节点最小样本数)。

分析 过程类影响参数 以及 子模型类影响参数 对最终性能的影响。

对于GBDT

Gradient Tree Boosting的子模型都拥有较低的方差,整体模型的训练过程旨在降低偏差,故其需要较多的子模型(n_estimators默认值为100)且子模型为弱模型(max_depth的默认值为3),但是降低子模型间的相关度不能显著减少整体模型的方差(max_features的默认值为None)。

过程类参数主要是影响偏差,子模型类参数 主要影响方差。

对于RF

Random Forest的子模型都拥有较低的偏差,整体模型的训练过程旨在降低方差,故其需要较少的子模型(n_estimators默认值为10)且子模型不为弱模型(max_depth的默认值为None),同时,降低子模型间的相关度可以起到减少整体模型的方差的效果(max_features的默认值为auto)。

过程类参数主要是影响方差,子模型类参数 主要影响偏差。

 

调参: 网格法(对于少量参数比较合适),,

画出准确率图 观察上升趋势。  准确度变异系数曲线。

一、调整过程类影响参数;

GBDT:(树的个数,学习率)需要联合调整。

RF:(树的个数)


二、调整子模型类影响参数;

GBDT:

注意:

(1)提升整体模型性能的参数,确保提升是单调或近似单调的。这意味着,筛选出来的参数是对整体模型性能有正影响的,且这种影响不是偶然性的,要知道,训练过程的随机性也会导致整体模型性能的细微区别,而这种区别是不具有单调性的。 

(2)GBDT分裂时考虑的最大特征数”(max_features),降低“子采样率”(subsample),也会造成子模型间的关联度降低,整体模型的方差减小,但是当子采样率低到一定程度时,子模型的偏差增大,将引起整体模型的准确度降低。

   RF我们总采用bootstrap(自助采样--有放回采样,重复m次得到m个样本)对样本进行子采样来降低子模型之间的关联度,从而降低整体模型的方差。适当地减少“分裂时考虑的最大特征数”(max_features),给子模型注入了另外的随机性,同样也达到了降低子模型之间关联度的效果。但是一味地降低该参数也是不行的,因为分裂时可选特征变少,模型的偏差会越来越大。

(3)“最大叶节点数”(max_leaf_nodes)和“最大树深度”(max_depth)对整体模型性能的影响大于“分裂所需最小样本数”(min_samples_split)、“叶节点最小样本数”(min_samples_leaf)及“叶节点最小权重总值”(min_weight_fraction_leaf),而“分裂时考虑的最大特征数”(max_features)的影响力最小。


逻辑回归调参

L1, L2正则化

正则化系数

优化算法方法

类权重参数

样本权重参数

最大迭代次数:仅在正则化优化算法为newton-cg, sag and lbfgs 才有用,算法收敛的最大迭代次数

tol : float, default: 1e-4   迭代终止判据的误差范围


1 0