Xgboots学习笔记

Xgboost学习笔记

前言

在按照kaggle官网的教程走Titanic预测流程时,完全按照教程走下来发现正确率并不是很高,打算对结果进行优化,从Xgboost和Sklearn入手来进行学习。

学习笔记

关于如何安装使用Xgboost在这里不再叙述,语言以python为例开始学习

Xgboost是什么?

Xgboost是一个极端梯度增长(Extreme Gradient Boosting),基于近似贪心函数(Greedy Function Approximation)。它是尝试将增长树GBM(boosted trees)用自包涵和富有原则的方式解释并应用于监督学习中。

Xgboost能干什么?

Xgboots用于有监督的机器学习,利用预测值xi来对于目标值yi进行预测,通过选择合适的学习模型学习参数来使预测值达到一个更好高的精确度。

Xgboot参数学习

参数选择作为机器学习领域的一个难题,如何选择合适的参数对于最终的模型结果影响极大,这里简单介绍一些经常用到的参数意义。
普通参数
1.booster [default=gbtree]
用来选择booster的类型,有gbtree,gblinear,dart三种模式,gbtree和dart使用树型结构,gblinear使用线性函数。
2.silent [default=0]
运行结果可见与否,0表示可见,1表示不可见。
3.nthread [default to maximum number of threads available if not set]
cpu线程数,默认为最大数目可用线程。
Tree Booster参数
1.eta[default=0.3, alias: learning_rate],range: [0,1]
和学习率相同,用来缩小没一步的步长以防止过拟合。
2.gamma [default=0, alias: min_split_loss], range: [0,∞]
最小分裂损失,用于数的叶子结点数目,即进行剪枝,越大越保守。
3.max_depth [default=6],range: [0,1]
树的最大深度,过大可能会导致过拟合。
4.subsample [default=1], range: [0,1]
随机选择训练样本的概率。
5.colsample_bytree [default=1],range: [0,1]
生成一棵树时的采样率。
学习任务参数
1.objective [default=reg:linear]
用来选择学习的方法,入线性回归,逻辑回归之类的。
经常用到的有以下参数–
“reg:linear”:线性回归
“reg:logistic”:逻辑回归
“binary:logistic”:二分类问题
“multi:softmax”:多分类问题,同时需要设置num_class参数
2.seed [default=0]
用来设置获取随机样本的种子值
补充
1.num_class
用来设置n分类问题中的n值,及分为多少类。
例:

#这是一个四分类问题的Xgboost参数设置
xgb_params = {
    'booster':'gbtree',
    'objective':'multi:softmax',
    'stratified':True,
    # 'gamma':1,
    'max_depth':9,
    'subsample':0.8,
    'colsample_bytree':0.8,
    'eta':0.08,
    'seed':20,
    'silent':1,
    'num_class':4
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值