【机器学习】集成算法——特牛逼的XGBoost流程和使用方法

原谅我字太丑……

好了,终于结束我的丑字荼毒了,现在可以开始着手代码。在放代码之前,我们要先了解xgboost库,他并不是sklearn库下的,而是陈天奇小天才发明的。在使用xgboost的方法和实例化会和sklearn不一样,但他还有一个sklearn的api接口,用这个接口的方法和参数和sklearn模型很像,是我们熟悉的.fit和.score。

使用api接口虽然很方便,可以结合sklearn其他库使用,比如网格搜索,交叉验证等方法调参,但同样有个致命的缺点就是效率极极极低,用api要花10分钟的话,用xgboost原生包只要2秒。同理,xgboost也有缺点就是可调参参数很多,没有网格搜索辅助,只能手动调参,不过幸亏原生包还有个交叉验证的接口,交叉验证也是比sklearn快一丢丢的。另外原生包还有一点个人觉得小小缺点的就是,不能直接.score,需要predict之后,在结合sklearn.metrics计算分数。

oh,这个库不是python自带的,所以还需要自己下载,windows同学下载应该只需要在cmd上输入:pip install xgboost。mac同学……就很复杂了,需要自行百度……

先放xgboost参数的解释,参数名字api和原生包会有所不同,

booster
    gbtree 树模型做为基评估器(默认)
    gblinear 线性模型做为基评估器
silent
    silent=0时,输出中间过程(默认)
    silent=1时,不输出中间过程
nthread
    nthread=-1时,使用全部CPU进行并行运算(默认)
    nthread=1时,使用1个CPU进行运算。
scale_pos_weight
    正样本的权重,在二分类任务中,当正负样本比例失衡时,设置正样本的权重,模型效果更好。例如,当正负样本比例为1:10时,scale_pos_weight=10。
        
#模型参数

n_estimatores
    含义:总共迭代的次数,即决策树的个数
    调参:
early_stopping_rounds
    含义:在验证集上,当连续n次迭代,分数没有提高后,提前终止训练。
    调参:防止overfitting。
max_depth
    含义:树的深度,默认值为6,典型值3-10。
    调参:值越大,越容易过拟合;值越小,越容易欠拟合。
min_child_weight
    含义:默认值为1,叶子节点权重分数的下界,1到正无穷。
    调参:值越大,越容易欠拟合;值越小,越容易过拟合(值较大时,避免模型学习到局部的特殊样本)。
subsample
    含义:训练每棵树时,使用的数据占全部训练集的比例。默认值为1,典型值为0.5-1。
    调参:防止overfitting。
colsample_bytree
    含义:训练每棵树时,使用的特征占全部特征的比例。默认值为1,典型值为0.5-1。
    调参:防止overfitting。
# 学习任务参数

learning_rate/原生包叫eta
    含义:学习率,控制每次迭代更新权重时的步长,默认0.3。
    调参:值越小,训练越慢。
    典型值为0.01-0.2。
objective 目标函数
    回归任务
        reg:linear (默认) 使用线性回归的损失函数,均方误差 
    二分类
        binary:logistic     使用逻辑回归的损失函数,类概率,sigmoid函数
        binary:logitraw   返回的是sigmoid函数的z值
        binary:hinge   使用支持向量机的损失函数,hinge loss,二分类使用
    多分类
        multi:softmax  num_class=n   使用softmax损失函数,结合num_class参数一起调整,返回类别
        multi:softprob   num_class=n  返回概率
    rank:pairwise 
eval_metric  模型评分
    回归任务(默认rmse)
        rmse--均方根误差
        mae--平均绝对误差
    分类任务(默认error)
        auc--roc曲线下面积
        error--错误率(二分类)
        merror--错误率(多分类)
        logloss--负对数似然函数(二分类)
        mlogloss--负对数似然函数(多分类)

gamma
    惩罚项系数,指定节点分裂所需的最小损失函数下降值。
    调参:后剪枝的过程,0到正无穷, 默认0,尝试0, 1,5,10,100
alpha
    L1正则化系数,默认为1
lambda
    L2正则化系数,默认为1

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值