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,则使用所有的CPUgamma: 一个浮点数,也称作最小划分损失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正则化系数。它是xgb的alpha参数reg_lambda: 一个浮点数,是L2正则化系数。它是xgb的lambda参数scale_pos_weight: 一个浮点数,用于调整正负样本的权重,常用于类别不平衡的分类问题。默认为 1。 一个典型的参数值为:负样本数量/正样本数量base_score:一个浮点数, 给所有样本的一个初始的预测得分。它引入了全局的biasrandom_state: 一个整数,表示随机数种子。missing: 一个浮点数,它的值代表发生了数据缺失。默认为np.nankwargs: 一个字典,给出了关键字参数。它用于设置Booster对象
学员评价