如何在Python上安装xgboost安装

版权声明:本文为博主原创文章,未经博主允许不得转载。 /u/article/details/

还是熟悉的实验报告写法,最近开始看机器学习,到现在算是基本的公式都能推过,对于一些常用的方法,比如lr,svm,adaboost,神经网络都有一定程度的了解,感觉看书已经不能带来什么快感了,开始准备在数据平台上打比赛,参加了京东的JData大赛,首先接触了xgboost这个方法,花了一个晚上的时间对基本的概念和公式有个大致的了解,关于xgboost是啥,可以看这一篇:

像我这种重度GitHub依赖者,免不了要到官网主页上去膜一发。看到xgboost提供了Python的接口,一开始以为只是去终端下pip install xgboost下就可以了,没想到这行指令输下去的时候就开始了今天苦逼的一天。

xgboost这条指令以后不会像其他Python比较高端的库一样,出现一堆红字,这样缺那样错的,只有一行,缺少一个什么egg文件(鸡蛋?)后来仔细想想,是自己想得太理所当然了,xgboost是C++实现的方法,只不过提供了Python接口,本质上还是用C++写的,要想通过pip来做简直有点异想天开。网上查了一下,这个东西的一般安装步骤是先编译,后安装。所以去clone了官方的版本。

2)关于xgboost的编译,大家可以看这两篇博文:


网上那么多为啥是这两篇,这里有几个原因,第一,现在网上搜东西,很多都是以前过时的信息,博客,对于一些文章来说,可能时间久了依然很经典,但是对于另外一些文章,可能涉及的技术领域比较前沿,更新换代特别快,这种文章看起来就很致命了,可能没问题的都会搞出问题来;其次,这两篇文章依然会有一些问题存在(后面会说到),但是是问题最少的。

要在Windows上编译xgboost是这篇文章的重点,也是最模糊不清的地方,换做以前在Linux平台上,几个命令就可以搞定的,但是在win7里面,首先是终端很不科学,其次是编译器会是一个难点,这里记录一下几个比较重要的步骤;

  • Python(注意一定要是64位的,否则后面import之后会报错,上面一篇博文提到的!!!

好了,主要就是上面的步骤,具体步骤我就不重复了,第一个Python注意的已经在红色字体里面了,就这么简单,不要问为什么,下了64位就走;

重点说第二个,mingw64,关于这个东西的介绍,网上一大把,是个好东西,用惯了Linux的童鞋在Windows上也能飞起来了,这个东西我建议不要去下载安装器来安装,浪费时间,直接下载预编译版本,地址上面已给;好了,重点来了,这里需要注意,下载的是64位的mingw,而不是32位的:

在32为的编译环境中,会出现这个错误:

这就是操作系统版本不对应的原因,具体原因这篇博文有说:


其次,按照上面两篇博客给的地址下载下来的mingw64,到最后编译的时候会报错:


作者没有给出指示,这也正常,人家负责算法的实现,没有职责面面俱到的解决部署问题,使用者适当的自己要去Google,baidu一下,扯远了。这个问题我后面解决了,主要区别是基本的操作系统库函数的调用有区别,win32和POSIX系统在C++ 的STL库中,对于多线程和互斥变量这些同步行为操作实现是不一致的(不负责任的猜测),这就是平台的区别,所以我们下载的mingw一定要说明是std POSIX的而不是win32的,上面两篇博客之所以能够正常编译,是因为Windows10系统对于POSIX系统的底层API接口有对应支持,联想于Windows10的powershell应用。

这个问题解决之后一切都编译顺利了。注意在生成Python接口的时候最好已经预先安装了numpy和scipy库,不然会自己链接国外的服务器,安装成不成功是一回事,等时间很长那就是另外一回事了。

注意!!由于mingw我们使用的是预编译的版本,所以关于POSIX下的API库和include路径,还有mingw的make,gcc,g++都要添加到环境变量里面去,否则在ld步骤时会出现类似于以下错误:

bad reloc错误,参考这篇博文解决:

说下pip安装numpy和scipy,numpy倒是没啥大问题,在Windows上一样pip搞定,scipy比较麻烦,需要安装一些计算库,类似于CBlas这种,mkl,建议通过whl安装,在可以下载,上面也会把网盘地址给出。具体的安装方式可以参考这篇博客:

先装numpy+mkl,在安装scipy,注意选择正确的平台:

一切OK,可以正常导入,其实回望一下,这些步骤都挺简单的,无奈平时Linux用习惯了,思维有时候转不过来,不过每一次配置环境都可以让我对于操作系统的了解更进一步,挺有意思的一件事情,其实关于xgboost的安装还有一个小窍门,只要numpy和scipy这种依赖库先装好了,可以拷贝别人的编译好的xgboost文档,到python-package这个目录下执行命令安装就好,所以我决定把自己预编译的版本分享出来,方便之后大家使用,要注意,我是在Windows7

}
    是近年来很受追捧的机器学习算法,由华盛顿大学的陈天奇提出,在国内外的很多大赛中取得很不错的名次,要具体了解该模型,可以移步,本文介绍其在Widows系统下基于Git的python版本的安装方法。
  • python软件(本文基于,因为自带很多库,比较方便)

    假设都已经安装好了Anaconda,建议安装python2版本的,虽然python3也可以,但python2较为主流。再安装Git,装完之后在开始菜单里打开Git Bash,首先新建一个文件夹xgboostCode用于存放代码和下载文件,然后在刚刚打开的Bash终端中输入下面命令,定位目录。

亲测有效。他的方法是否适用python2有待测试,有同学尝试了的话麻烦告知~

}

我要回帖

更多关于 xgboost安装 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信