参数分为:
通用参数:对系统进行控制
Booster参数:控制每一步的booster(tree/regression)
学习目标参数(fit):控制训练目标的表现
通用参数:
booster:模型选择,gbteer或者gblinear,gbteer使用基于树模型进行提升计算,bglinear使用线性模型进行提升计算,默认使用gbteer.
silent:缄默方式,0表示打印运行,1表示以缄默方式运行,不打印运行信息。默认=0
nthread:XGBoot运行时的线程数,默认=缺省值是当前系统可以获取的最大线程数
num_feature,boosting过程中拥戴的特征个数,XGBoost会自动设置。
Booster参数:
eat:防止过拟合,更新过程中用到的收缩步长,算法会直接根基获取最新特征的权重,eat通过特征缩减提升计算过程,取值范围[0,1],defult=0.3
gamma:分裂节点时,损失函数减小值只有大于等于gamma节点才分裂,gamma值越大,算法越保守,越不容易过拟合,但是性能就不一定能保证,取值范围[0,+inf],defult=0
max_depth:树的最大深度,取值范围[1,+inf],经典取值[3,10],defult=6
min_child_weight:一个自己的所有观察值的最小权重和。如果新分裂的节点样本权重和小于min_child_weight则停止分裂,这个可以用来减少过拟合,但是也不能太高,否则会导致欠拟合,取值范围[0,-inf],defult=1.
subsample:构建每棵树样本的采样率,如果设置成0.5,XGBoost会随机选择50%的样本作为训练集
colsample_bytree:采样率,这就是特征采样率,defult=1
lambda:l2正则化,用来控制XGBoost的在则化部分,defult=1,alia:reg_lambda
scale_pos_weight:在类别高度不平衡的情况下,将参数设置大于0,可以加快收敛,defult=1
学习目标参数(fit):
object:定义学习目标,reg:linear, reg:logistic, binary:logitraw,binary:logitraw,count:poisson,multi:softmax,mulit:softprob,rank:pairwise,默认(defuult=reg:linear)
eval_metric:评价指标,包括rmse,logloss, error , merror, mlogloss, auc, ndcg, map 等
seed :随机数种子,dengult=0
dtrain:训练数据
num_boost_round:提升迭代次数,也就是生成多少基模型
early_stooping_rounds:早停法迭代次数
evals:这是一个列表,用于对训练过程中进行评估列表中的元素,形式是evals=[(dtrain,'train'),(dval,'val')]或者是evals=[(dtrain,''train)],对于第一中情况,它使得我么可以在训练过程中观察验证集的效果
verbose_eval:如果为True,则对evals中元素的评估输出在结果中,如果输入数字,比如5,则每个5个迭代输出一次
learning_rates:每次提升的学习率的列表