anaconda中安装xgboost_anaconda中安装xgboost遇到的问题

本文记录了在Anaconda环境中安装xgboost的过程,包括使用git下载xgboost源码、解决RPC失败问题、下载MinGW-W64的曲折经历、配置环境变量以及编译和测试xgboost。通过一步步操作,最终成功安装并验证了xgboost的Python模块。
摘要由CSDN通过智能技术生成

这是第一次写简书,还不怎么会使用。xgboost做为一个经常在kaggle竞赛中出现的算法,足以说明它的强大与高效。本次记录安装xgboost过程中出现的问题(实实在在的安装了一天)。

百度发现,安装xgboost需要两个东西:git和mingw(此时电脑上已有anaconda,git)。

使用git下载xgboost(命令均在git bash中运行)

新建xgboost文件夹,用以下命令跳转

$ cd /c/Users/xgboostCode/

用以下命令下载xgboost

$ git clone --recursive https://github.com/dmlc/xgboost

$ cd xgboost

$ git submodule init

$ git submodule update

在下载时遇到的错误如下:

error:RPC failed;curl 18 transfer colosed with outstanding read data remaining

这时需要更改curl的postBuffer的大小

$ git config --global http.postBuffer 524288000 现在将大小更改为500M,然而我依旧出现该错误,xgboost不能下载,于是将524288000减小为24288000,成功!

下载MinGW-W64(最痛苦之事莫过于此)

The first time,很成功,看着进度条一点点推进,一种自豪感油然而生(不知道哪来的)。眼看着已经完成一大半,突然手贱的点了取消(鬼知道我在想什么,一定是鬼附身了),然后就一直定在这了。

The second time...

The third time...

......

也不知道试了多少遍,这期间试了管理员运行,更改安装目录,更改build revision的值,更改version版本号。

当然版本有那么10多个,没有一一试完,就在我下载了TDM,当算换种方式时试了MinGW最后一次,仍然是改版本号,用的应该是6.4.0,居然成功了!

然后添加环境变量

C:\Program Files\mingw-w64\x86_64-5.3.0-posix-seh-rt_v4-rev0\mingw64\bin。

说一下,Architecture必须用x86_64

编译xgboost

关闭git bash再打开,输入$ which mingw32-make

如果得到/c/Program Files/mingw-w64/x86_64-5.3.0-posix-seh-rt_v4-rev0/mingw64/bin/mingw32-make,说明配置成功。

输入以下命令

$ alias make='mingw32-make'

$ cd /c/Users/xgboostCode/xgboost定位到xgboost的位置

逐行编译

$ cd dmlc-core

$ make -j4

$ cd ../rabit

$ make lib/librabit_empty.a -j4

$ cd ..

$ cp make/mingw64.mk config.mk

$ make -j4

执行完成就安装xgboost的Python模块(此时使用cmd)

定位cd xgboostCode\xgboost\python-package

安装python setup.py install

使用Python添加os环境变量

import os

mingw_path = 'C:\\Program Files\\mingw-w64\\x86_64-5.3.0-posix-seh-rt_v4-rev0\\mingw64\\bin'

os.environ['PATH'] = mingw_path + ';' + os.environ['PATH']

最后测试

import numpy as np

import xgboost as xgb

data = np.random.rand(5,10) # 5 entities, each contains 10 features

label = np.random.randint(2, size=5) # binary target

dtrain = xgb.DMatrix( data, label=label)

dtest = dtrain

param = {'bst:max_depth':2, 'bst:eta':1, 'silent':1, 'objective':'binary:logistic' }

param['nthread'] = 4

param['eval_metric'] = 'auc'

evallist = [(dtest,'eval'), (dtrain,'train')]

num_round = 10

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

bst.dump_model('dump.raw.txt')

正常运行则说明成功了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值