XGBoost专题(二)

XGBoost专题(二)

API目录结构:

  • Global Configuration
  • Core Data Structure
  • Learning API
  • Scikit-Learn API
  • Plotting API
  • Callback API
  • Dask API

xgboost.train(): 包里的方法train

Describe: Train a booster with given parameters.

Parameters:

  • params: dict --- Booster 参数
  • dtrain: DMatrix --- 关键的数据结构,用于训练的数据
  • num_boost_round: int --- 训练迭代次数
  • evals: list of pairs (DMatrix, string) --- 在训练的过程中,需要去计算评价指标的验证集列表
  • obj: function --- 目标函数
  • feval: function --- 评估函数
  • maximize: bool --- 是否最大化评估函数
  • early_stopping_rounds: int --- 当评估函数(params['eval_metric'])在设定步数内和最后一个验证集(evals),不再有任何提高,则停止训练。此时,模型实例多了两个属性best_score, best_iteration
  • evals_result: dict --- 存储了验证集的评估结果
  • verbose_eval: bool or int --- 每迭代多少次输出一次评估结果
  • xgb_model: 存储的xgb模型或者Booster实例的文件名 --- 加载模型继续训练
  • callbacks: list of callback functions --- 每一步迭代完成后,需要执行的函数。自定义的使用,继承类xgboost.callback.TrainingCallback。我现在知道的自带回调函数有在early_stopping_rounds和verbose_eval的时候触发。

Retruns: Booster

a trained booster model


Scikit-Learn API:基于scikit-learn API封装了其他的模型,通过XGBoost来进行模型的集成。

有:xgboost.XGBRegressor() xgboost.XGBClassifier() xgboost.XGBRanker()

xgboost.XGBRFRegressor() bases: xgboost.sklearn.XGBRegressor 随机森林回归

xgboost.XGBRFClassifier()


Booster 参数

3个必须的

  1. General parameters
  2. Booster parameters
  3. Learning task parameters
  4. Command line parameters

general parameters

{

'booster': ['gbree', 'bglinear', 'dart'],

'nthread': 线程树,

}

Booster parameters

{

'eta': [0,1]学习率,

'gamma': [0,无穷大] 在树的叶节点上进行进一步分区所需的最小损失减少。越大gamma,算法就越保守

'max_depth': 树的深度

'min_child_weight': 越大越保守。孩子需要的最小实例权重总和

'max_delta_step': 通常不需要这个参数,但当类极度不平衡时它可能有助于逻辑回归。

'subsample': 训练实例的子样本比率

'sampling_method': uniform

'lambda': L2

'alpha': L1

}

Learning task parameters: 指定学习任务和相应的学习目标。

objective [默认=reg:squarederror]平方损失回归

base_score [默认值=0.5]

eval_metric [根据目标默认]

https://xgboost.readthedocs.io/en/latest/parameter.html#xgboost-parameters

posted @ 2021-07-20 15:15  小肚腩的世界  阅读(205)  评论(0编辑  收藏  举报