美文网首页
anaconda中安装xgboost遇到的问题

anaconda中安装xgboost遇到的问题

作者: 莫放休 | 来源:发表于2018-03-01 16:08 被阅读0次

    这是第一次写简书,还不怎么会使用。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')  
    

    正常运行则说明成功了!

    相关文章

      网友评论

          本文标题:anaconda中安装xgboost遇到的问题

          本文链接:https://www.haomeiwen.com/subject/sbagxftx.html