xgboost调参_XGBOOST 使用

9688abc3cdac5363a480b6020fd43d1e.png

XGBoost使用总结:

一、参数解读:

1.1 常规参数

booster

gbtree 树模型做为基分类器(默认)

gbliner 线性模型做为基分类器,效果不如前者好,用的不多;

silent

silent=0时,不输出中间过程(默认)

silent=1时,输出中间过程

nthread

nthread=-1时,使用全部CPU进行并行运算(默认)

nthread=1时,使用1个CPU进行运算

scale_pos_weight

正样本的权重,在二分类任务中,当正负样本比例失衡时,设置正样本的权重,模型效果更好。例如,当正负样本比例为1:10时,scale_pos_weight=10

1.2 模型参数

n_estimatores

含义:总共迭代的次数,即决策树的个数(设置为1000)

early_stopping_rounds

含义:在验证集上,当连续n次迭代,分数没有提高后,提前终止训练。

调参:防止overfitting

max_depth

含义:树的深度,默认值为6,典型值3-10

调参:值越大,越容易过拟合;值越小,越容易欠拟合

min_child_weight

含义:默认值为1,孩子节点中最小的样本权重和。如果一个叶子节点的样本权重和小于min_child_weight则拆分过程结束。在现行回归模型中,这个参数是指建立每个模型所需要的最小样本数。该成熟越大算法越conservative。

调参:值越大,越容易欠拟合;值越小,越容易过拟合(值较大时,避免模型学习到局部的特殊样本)

subsample

含义:训练每棵树时,使用的数据占全部训练集的比例。如果设置为0.5则意味着XGBoost将随机的冲整个样本集合中随机的抽取出50%的子样本建立树模型,这能够防止过拟合。默认值为1,典型值为0.5-1。

调参:防止overfitting

colsample_bytree

含义:训练每棵树时,使用的特征占全部特征的比例。默认值为1,典型值为0.5-1。

调参:防止overfitting。

1.3 学习任务参数

eta

含义:学习率,控制每次迭代更新权重时的步长,默认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:预测数据的度量方法

默认值取决于objective参数的取值,对于回归问题,默认值是rmse,对于分类问题,默认值是error.

回归任务(默认rmse)

rmse–均方根误差

mae–平均绝对误差

分类任务(默认error)

auc–roc曲线下面积

error–错误率(二分类)

merror–错误率(多分类)

logloss–负对数似然函数(二分类)

mlogloss–负对数似然函数(多分类)

gamma

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

alpha

L1正则化系数,默认为1

lambda

L2正则化系数,默认为1

二、主要函数:

建立模型:XGBClassifier(), XGBRegressor()根据任务选择分类或回归函数

模型训练:fit()

模型预测:predict()

特征重要性:plot_importance()显示所有特征的F值和P值

三、调参

from sklearn.model_selection import GridSearchCV

Scikit-learn中提供了一个函数可以帮助我们很好地进行调参;

参数:

estimator:所使用的分类器,如果使用的是XGBoost的话,estimator = XGBRegressor(**other_params)

param_grid:值为字典或者列表,需要最优化的参数的取值。比如:cv_params = {‘n_estimators’: [550, 575, 600]}

scoring :准确度评价标准,默认None;根据所选模型不同,评价准则不同。如果是None,则使用estimator的误差估计函数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值