课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
9分钟

xgboost.XGBRegressor

xgboost.XGBRegressor: 它实现了scikit-learn 的回归模型API

class xgboost.XGBRegressor(max_depth=3, learning_rate=0.1, n_estimators=100, 
     silent=True, objective='reg:linear', booster='gbtree', n_jobs=1, nthread=None, 
     gamma=0, min_child_weight=1, max_delta_step=0, subsample=1, colsample_bytree=1,
     colsample_bylevel=1, reg_alpha=0, reg_lambda=1, scale_pos_weight=1, 
     base_score=0.5, random_state=0, seed=None, missing=None, **kwargs)

参数:

  • max_depth: 一个整数,表示子树的最大深度
  • learning_rate: 一个浮点数,表示学习率
  • n_estimators:一个整数,表示预期需要学习的子树的数量
  • silent: 一个布尔值。如果为False,则打印中间信息
  • objective: 一个字符串或者可调用对象,指定了目标函数。其函数签名为:objective(y_true,y_pred) -> gra,hess。 其中:
    • y_true: 一个形状为[n_sample] 的序列,表示真实的标签值
    • y_pred: 一个形状为[n_sample] 的序列,表示预测的标签值
    • grad: 一个形状为[n_sample] 的序列,表示每个样本处的梯度
    • hess: 一个形状为[n_sample] 的序列,表示每个样本处的二阶偏导数
  • booster: 一个字符串。指定了用哪一种基模型。可以为:'gbtree','gblinear','dart'
  • n_jobs: 一个整数,指定了并行度,即开启多少个线程来训练。如果为-1,则使用所有的CPU
  • gamma: 一个浮点数,也称作最小划分损失min_split_loss。 它刻画的是:对于一个叶子节点,当对它采取划分之后,损失函数的降低值的阈值。
    • 如果大于该阈值,则该叶子节点值得继续划分
    • 如果小于该阈值,则该叶子节点不值得继续划分
  • min_child_weight: 一个整数,子节点的权重阈值。它刻画的是:对于一个叶子节点,当对它采取划分之后,它的所有子节点的权重之和的阈值。
    • 如果它的所有子节点的权重之和大于该阈值,则该叶子节点值得继续划分
    • 如果它的所有子节点的权重之和小于该阈值,则该叶子节点不值得继续划分

    所谓的权重:

    • 对于线性模型(booster=gblinear),权重就是:叶子节点包含的样本数量。 因此该参数就是每个节点包含的最少样本数量。
    • 对于树模型(booster=gbtree,dart),权重就是:叶子节点包含样本的所有二阶偏导数之和。
  • max_delta_step: 一个整数,每棵树的权重估计时的最大delta step。取值范围为 [0,∞],0 表示没有限制,默认值为 0 。
  • subsample:一个浮点数,对训练样本的采样比例。取值范围为 (0,1],默认值为 1 。 如果为 0.5, 表示随机使用一半的训练样本来训练子树。它有助于缓解过拟合。
  • colsample_bytree: 一个浮点数,构建子树时,对特征的采样比例。取值范围为 (0,1], 默认值为 1。 如果为 0.5, 表示随机使用一半的特征来训练子树。它有助于缓解过拟合。
  • colsample_bylevel: 一个浮点数,寻找划分点时,对特征的采样比例。取值范围为 (0,1], 默认值为 1。 如果为 0.5, 表示随机使用一半的特征来寻找最佳划分点。它有助于缓解过拟合。
  • reg_alpha: 一个浮点数,是L1 正则化系数。它是xgbalpha 参数
  • reg_lambda: 一个浮点数,是L2 正则化系数。它是xgblambda 参数
  • scale_pos_weight: 一个浮点数,用于调整正负样本的权重,常用于类别不平衡的分类问题。默认为 1。 一个典型的参数值为: 负样本数量/正样本数量
  • base_score:一个浮点数, 给所有样本的一个初始的预测得分。它引入了全局的bias
  • random_state: 一个整数,表示随机数种子。
  • missing: 一个浮点数,它的值代表发生了数据缺失。默认为np.nan
  • kwargs: 一个字典,给出了关键字参数。它用于设置Booster 对象