XGBoost (1) 从调用谈起

引言

XGBoost 是华盛顿大学陈天奇于 2016年主创的算法(看上去 Carlos Guestrin 是他的导师),在各类数据科学比赛(Kaggle)中有着广泛应用(2016年左右是这个算法比较红的年份),并且取得了良好的成绩。许多跟随者“站在巨人的肩膀上”,进一步开发新的算法(知名的算法至少有微软的 LightGBM,这个算法我目前还不大懂,TODO)。无论如何,这个算法都是数据科学从业人员必须知道的算法之一。如果试图只阅读论文了解算法,你很有可能会和我一样,觉得对算法一知半解。那是因为论文不是教程,写过文章的人自然会知道这些。于是,要想重新找到脚踏实地的感觉,就需要从代码开始。所以我们的最终目标是结合代码和论文的理解。一方面算是自己的学习笔记,另一方面也希望与感兴趣的读者一同探讨。

从调用 XGBoost 谈起

我们先从简单的调用开始谈起。对我来说最简单的方式可能是使用 Python 直接进行调用了。首先,安装 XGBoost 的包。实践中,我使用了 PyCharm 的 IDE,安装包只是动动鼠标的事情。如若不然,可以试试(我自己也没试过)

pip install xgboost

数据集

我们使用 UCI 蘑菇数据集:通过蘑菇的特征,例如大小、纹理、颜色、种群等,判断蘑菇是否可以吃(或有毒)。数据本质上是一个矩阵。特征数量为 22 个,每一个特征都是离散型的,共计 126 种不同的值。一共有 8124 条记录。加上可以吃/有毒的响应变量,数据矩阵维数本质上是 8124 x 127。这些数据被分割为训练集合 dtrain (6513 个元素)与测试集合 dtest (1611个元素),分别存于 agaricus.txt.trainagaricus.txt.test。两个数据文件的格式都形如:Alt
可以看出,文件的第一列均为 0 和 1,代表着蘑菇是否可以吃。这个文件格式也是 LibSVM 的数据格式,已经不同于原来 UCI 的数据格式了。很显然,数据文件实质上保存了一个矩阵 D = [ y , X ] \mathbf D = [\mathbf y, \mathbf X] D=[y,X] 。后面的 22 列都有着具体的意义,这被存于文件 featmap.txt 中,如下图

Alt

训练与测试

可新建一个 Python 脚本如下:

import xgboost as xgb

# 准备数据
dtrain = xgb
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值