在参加o2o预测比赛的时候用了xgboost模型,可是模型中的超参数很多,为了获得更好的成绩,只能一个一个参数去调,为了成绩上升0.0001分。
总结了以下xgboost中常用参数的意义:
params={'booster':'gbtree',
#gbtree使用基于树的模型进行提升计算,gblinear使用线性模型进行提升计算
'silent':0, #取0时表示打印出运行时信息,取1时表示以缄默方式运行
'objective': 'rank:pairwise',
'eval_metric':'auc',#校验数据所用评价指标
'gamma':0.1,
#在树的叶子节点上进一步划分所需的最小损失减少。数值越大,算法越保守。默认0
'min_child_weight':1,
#在线性回归模型中,这个参数是指建立每个模型所需要的最小样本数。调大这个参数能够控制过拟合,默认1
'max_depth':6,
#数的最大深度。缺省值为6
'lambda':10,
#L2正则的惩罚系数,默认0
'subsample':1,
#用于训练模型的子样本占整个样本集合的比例。防止过拟合。默认1
'colsample_bytree':1,
#在建立树时对特征采样的比例。缺省值为1
'colsample_bylevel':0.66,
'eta': 0.01,
#通常最后设置eta为0.01~0.2eta通过缩减特征的权重使提升计算过程更加保守。默认0.3
'tree_method':'exact',
'seed':0,
'nthread':12
#XGBoost运行时的线程数。缺省值是当前系统可以获得的最大线程数
}