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个必须的
- General parameters
- Booster parameters
- Learning task parameters
- 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