xgboost的参数

class XGBClassifier(XGBModel, XGBClassifierBase):
class XGBRegressor(XGBModel, XGBRegressorBase):

class XGBModel(XGBModelBase):
    # pylint: disable=too-many-arguments, too-many-instance-attributes, missing-docstring    def init(self, max_depth=None, learning_rate=None, n_estimators=100,                 verbosity=None, objective=None, booster=None,                 tree_method=None, n_jobs=None, gamma=None,                 min_child_weight=None, max_delta_step=None, subsample=None,                 colsample_bytree=None, colsample_bylevel=None,                 colsample_bynode=None, reg_alpha=None, reg_lambda=None,                 scale_pos_weight=None, base_score=None, random_state=None,                 missing=np.nan, num_parallel_tree=None,                 monotone_constraints=None, interaction_constraints=None,                 importance_type=“gain”, gpu_id=None,                 validate_parameters=None, **kwargs):
# 常规参数

  • booster
    • gbtree 树模型做为基分类器(默认)
    • gbliner 线性模型做为基分类器
  • silent
    • silent=0时,不输出中间过程(默认)
    • silent=1时,输出中间过程
  • n_jobs
    • n_jobs=-1时,使用全部CPU进行并行运算(默认)
    • n_jobs=1时,使用1个CPU进行运算。
  • scale_pos_weight
    • 处理样本不平衡问题。在样本高度不平衡时,将参数设置大于0,可以加快算法收敛。正样本的权重,在二分类任务中,当正负样本比例失衡时,设置正样本的权重,模型效果更好。例如,当正负样本比例为1:10时,scale_pos_weight=10。

# 模型参数

  • n_estimatores
    • 含义:总共迭代的次数,即决策树的个数
    • 调参:
  • max_depth
    • 含义:树的深度,默认值为6,典型值3-10。
    • 调参:值越大,越容易过拟合;值越小,越容易欠拟合。
  • min_child_weight
    • 含义:默认值为1,。
    • 调参:值越大,越容易欠拟合;值越小,越容易过拟合(值较大时,避免模型学习到局部的特殊样本)。
  • gamma:[default=0]
    • 损失阈值,在树的一个叶节点上进一步分裂所需的最小损失减少量,gamma值越大,算法越保守。
    • 取值范围为:[0,∞]
  • max_delta_step:[default=0]
    • 每棵树的最大权重估计。如果它的值被设置为0,意味着没有约束;如果它被设置为一个正值,能够权重的变化将会变得相对保守。通常这个参数不会被使用,但如果是极度不平衡的逻辑回归将会有所帮助。把它范围设置为1-10之间也许能控制更新。
    • 取值范围为:[0,∞]
  • subsample
    • 含义:训练每棵树时,使用的数据占全部训练集的比例。默认值为1,典型值为0.5-1。
    • 调参:防止overfitting。
  • colsample_bytree
    • 含义:训练每棵树时,使用的特征占全部特征的比例。默认值为1,典型值为0.5-1。
    • 调参:防止overfitting。
  • colsample_bylevel: [default=1]
    • 指的是树的每个层级分裂时子样本的特征所占的比例,这个一般很少用。因为subsample和colsample_bytree组合做的事与之类似。
  • scale_pos_weight:[default=1]
    • 处理样本不平衡问题。在样本高度不平衡时,将参数设置大于0,可以加快算法收敛。

# 学习任务参数

  • learning_rate

    • 含义:学习率,控制每次迭代更新权重时的步长,默认0.3。
    • 调参:值越小,训练越慢。
    • 典型值为0.01-0.2。
  • objective 目标函数

    • 回归任务
      • reg:linear (默认)
      • reg:logistic
    • 二分类
      • binary:logistic     概率
      • binary:logitraw   类别
    • 多分类
      • multi:softmax  num_class=n   返回类别
      • multi:softprob   num_class=n  返回概率
    • rank:pairwise
  • eval_metric

    • 回归任务(默认rmse)
      • rmse–均方根误差
      • mae–平均绝对误差
    • 分类任务(默认error)
      • auc–roc曲线下面积
      • error–错误率(二分类)
      • merror–错误率(多分类)
      • logloss–负对数似然函数(二分类)
      • mlogloss–负对数似然函数(多分类)
  • gamma

    • 惩罚项系数,指定节点分裂所需的最小损失函数下降值。
    • 调参:
  • alpha

    • L1正则化系数,默认为1
  • lambda

    • L2正则化系数,默认为1

过拟合控制参数:

直接控制模型的复杂度 max_depth, min_child_weight, gamma
增大产生树的随机性 subsample, colsample_bytree, learning_rate, num_round

处理不平衡的数据集 :

预测的排序(AUC) scale_pos_weight
预测可靠性 max_delta_step

方法

  • 1、训练

def fit(self, X, y, *, sample_weight=None, base_margin=None,  eval_set=None, eval_metric=None,        early_stopping_rounds=None, verbose=True, xgb_model=None,        sample_weight_eval_set=None, feature_weights=None, callbacks=None):
sample_weight:    每个样本的权重
eval_set  用作提早停止的验证集

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值