zoukankan      html  css  js  c++  java
  • 如何在Mac OSX上安装xgboost

      听说xgboost效果很不错,于是准备学习下,但是发现大多数资料都是在讲如何在windows或linux下安装xgboost,而且照着官方文档也没有正确的安装好多线程的xgboost。最后还是从there找到了方法。

    1. Mac OSX系统一般自带python,打开终端输入python即可写python代码,所以python环境已经具备了。

    2.安装 Homebrew , 类似于ubuntu中的apt-get和centos中的yum,是OSX里面的一个非常有用软件安装工具。

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    直接将上述代码粘贴至终端即可安装。(安装这个软件的目的在于更新gcc版本,因为官方文档中说只有最新的gcc版本才能使xgboost支持多线程)

    3.安装最新版本的gcc (gcc-6)

    brew install gcc --without-multilib   

    这步比较耗时,用了将近1小时。

    4.从git上下载源码

    cd进入你想要安装的目录,然后输入下面的代码。(我是直接在打开终端的目录)

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

    5.最关键的一步,编译xgboost的源码。(为啥不直接发布一个编译好的,因为每台电脑相差太多)

    这一步也是官方文档中没有说清楚的一步,官方文档在第4步之后直接就开始编译源码了,但是其实这时gcc只是下载好了,系统并没有使用刚刚下载下来最新的gcc。这时

      cd /usr/bin
      rm cc gcc c++ g++
      ln -s /usr/local/bin/gcc-6 cc
      ln -s /usr/local/bin/gcc-6 gcc
      ln -s /usr/local/bin/c++-6 c++
      ln -s /usr/local/bin/g++-6 g++

    上述代码大意是,使用最新的gcc-6代替之前的gcc

    接着就是正常的编译

    cd 之前安装xgboost的目录/xgboost
    cp make/config.mk
    make -j4

    如果没有一直警告gcc不支持多线程,则表示这一步顺利完成.

    6. 不出意外,上一步编译的过程会报错,错误是:std::abs(XXX) 不对。

    因为编译器变了导致了这个错误。

    于是只要将std::abs(XXX) 改成

    XXX>=0?XXX:-XXX

    也就是用一个问号表达解决这个问题。 好在错误只有两个,都是一样的。所以改下这两处代码就行了。

    然后编译,成功!

    7.验证是否成功安装。

    在python中输入

    import xgboost as xgb

    并按下回车,如果未报错,则说明已经可以在python程序中正确的导入xgboost包了!如下图:

  • 相关阅读:
    hdu1828线段树(两次扫描+离散化)
    hdu1542线段树(扫描线+离散化)
    二分思想
    hdu2871线段树区间更新
    git初体验
    python笔记-模块
    python笔记-动态类型
    AWS上创建EKS(K8S)集群
    Akamai CDN刷新(通过Akamai cli 自动刷新)
    创建Akamai cdn api授权
  • 原文地址:https://www.cnblogs.com/chenhuan001/p/5595380.html
Copyright © 2011-2022 走看看