初识xgboost

经常出入DC竞赛、kaggle、天池等大数据比赛的同学应该很了解xgboost这座大山,几乎所有的比赛都绕不过它,可能只需要这一个库,在比赛中就可以得到很高的分数,究竟是为什们呢?那么就来窥探一下它的庐山真面目吧。

起源

xgboost 的全称是 eXtreme Gradient Boosting。正如其名,它是 Gradient Boosting Machine 的一个 c++ 实现,作者为曾在华盛顿大学研究机器学习的大牛陈天奇。因为其出众的效率与较高的预测准确度在比赛论坛中引起了参赛选手的广泛关注。为了方便大家使用,陈天奇将 xgboost 封装成了 python 库,从此作为普通人的我们也可以使用这种开挂般操作的库了。

安装

xgb(xgboost)安装很简单,和一般的库相同:

pip install xgboost

可在ide导入验证是否安装成功

import xgboost as xgb

数据形式

xgb可以接受一下格式文件:(通过xgboost.DMatrix()方法)

  • LibSVM文本格式文件
  • 逗号分隔值(CSV)文件
  • NumPy 2D阵列
  • SciPy 2D稀疏阵列
  • DataFrame数据框
  • XGBoost二进制缓冲区文件

需要注意的是:XGBoost不支持分类功能; 如果您的数据包含分类功能,请先将其加载为NumPy阵列,然后执行onehot编码。

XGBoost无法解析带有标头的CSV文件。

参数设定

XGBoost可以使用列表或字典来设置参数,如下所示:

param = {'max_depth': 2, 'eta': 1, 'silent': 1, 'objective': 'binary:logistic'}
param['nthread'] = 4
param['eval_metric'] = 'auc'
param['eval_metric'] = ['auc', 'ams@0']

 一般提前定义这些参数,训练时只需将param参数传入即可。

训练

bst = xgb.train(param, dtrain, num_round, evallist)

param:各项参数,是一个字典

dtrain:训练数据,由xgb.DMatrix传入

num_round: boosting迭代计算次数

evallist:一个列表,用于对训练过程中进行评估列表中的元素。例如:evallist = [(dtest, 'eval'), (dtrain, 'train')],用来为监视性能的验证

预测

模型训练好之后,接下来就是预测:

dtest = xgb.DMatrix(data)
ypred = bst.predict(dtest)

这样,最简单的xgboost使用就完成啦。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值