XGB架构参数
-
booster:①’gbtree’:树模型做为基分类器(默认);②’gbliner’:线性模型做为基分类器。③’dart’:树模型做为基分类器(采用dropout,随机丢弃一些树,防止过拟合)。
-
n_estimator:总共迭代的次数,即基学习器的个数。
-
objective:①**‘reg:linear’:线性回归**;②’reg:logistic’:逻辑回归;③’binary:logistic’:二分类,返回概率(默认值);④’binary:logitraw’:二分类,返回类别;⑤’multi:softprob’:多分类,返回概率;⑥’multi:softmax’:多分类,返回类别。
-
seed:随机种子,便于复现。
-
verbosity:打印消息的详细程度。默认为0(silent),还可以取1(warning)、2(info)、3(debug)。
-
nthread:取-1时,使用全部CPU进行并行运算(默认);取1时,使用1个CPU进行运算。
-
disable_default_eval_metric:是否禁用默认的(验证集的)评估指标,默认为False。如果要用自定义的评估指标,需要将这一项设为True。
early_stopping_rounds:在验证集上,当连续n次迭代,分数没有提高后,提前终止训练,防止过拟合。
弱学习器参数
-
num_class:样本类别数,与’objective’:'multisoftmax’并用。
-
max_depth:树的深度,默认值是6,一般取3-10。过大容易过拟合,过小容易欠拟合。
-
min_child_weight:最小子节点的权重,默认值为1。如果某个子节点权重小于这个阈值,则不会在分裂。值越大,越容易欠拟合;值越小,越容易过拟合。
-
gamma:惩罚项系数,在树的叶节点上进一步分裂带来的最小损失函数下降值。gamma越大,算法越健壮。默认值为0。
-
subsample:子采样参数,即训练每棵树时,使用的数据占全部训练集的比例。默认值为1,一般取0.5-1。可防止过拟合。
-
colsample_bytree:训练每棵树时,使用的特征占全部特征的比例。默认值为1,典型值为0.5-1。可防止过拟合。
-
colsample_bylevel:控制树的每一级的每一次分裂,对特征的采样比重,默认值为1。
-
colsample_bynode:控制树的每一个节点的每一次分裂,对列数的采样比重,默认值为1。
-
reg_alpha:L1正则化参数,在高维度的情况下,调节该参数可以加快算法的速度,使模型更加健壮。默认为0。
-
reg_lambda:L2正则化参数,调节该参数可以减少过拟合,使模型更加健壮。默认值为1。
-
eta:学习率,控制每次迭代更新权重时的步长,默认0.3。一般取0.01-0.2。
其他参数
-
n_jobs**:控制算法的并发线程数**
-
scale_pos_weight:用于数据样本类别不平衡的时候,例如正例:负例 = 1:10,可以设置scale_pos_weight=10。
-
n_jobs:并行线程数,默认为1。
-
tree_method:①’auto’:使用启发式方法选择最快的方法。②’exact’:精确贪婪算法,枚举所有候选项;③’approx’:使用分位数草图和梯度直方图的近似贪婪算法;④’hist’:快速直方图优化近似贪心算法。 它使用了一些性能改进,例如垃圾箱缓存。⑤’gpu_exact’:精确算法的GPU实现。⑥’gpu_hist’:hist算法的GPU实现。
Subsample有放回随机采样
树模型是天生过拟合模型,并且如果数量太过巨大,树模型的计算会非常缓慢,因此,我们需要对原始数据有放回抽样,有放回抽样每次只能抽取一个样本,若我们需要总共N个样本,就需要抽取N此,每次抽取一个样本的过程是独立的,这一次被抽取的样本就会被放回到数据集中,下一次还可能被抽到,因此抽出的数据集中,可能有一些重复数据,
SKlearn中的随机森林类,也有名为Boostrap的参数来帮助我们控制这种随机的有放回抽样,同时这样做,还可以保证集成学习算法每个弱分类器(每棵树)都是不同的模型,基于不同数据建立的自然是不同的模型,而集成系列一摸一样的弱分类器是没有意义的。
调参步骤及思想
学习心得
构建模型的时候,会将深度学习与各种网络层进行结合。
会自己将各种模型及其参数,全部将其搞清楚,全部将其迭代,研究透彻!全部将其搞透彻都行啦的理由与打算。
会自己在建模中设置自己的参数及其模型建立,全部将其搞透彻。
研究彻底都行啦的理由与打算。