听说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包了!如下图:

如何在Mac OSX上安装xgboost的更多相关文章

  1. 关于如何在mac系统上安装Git并在码市上建立项目

    对Git一窍不通,为了在mac系统上安装Git,查了很多资料,走了很多弯路,一切搞定后发现其实很简单. 1.在https://brew.sh上按要求安装Homebrew. 2.在电脑终端键入brew ...

  2. 如何在mac本上安装android sdk 避免被墙

    众所周知的原因,google的很多网站在国内无法访问,苦逼了一堆天朝程序员,下是在mac本上折腾android 开发环境的过程: 一.先下载android sdk for mac 给二个靠谱的网址: ...

  3. 如何在mac本上安装android sdk

    众所周知的原因,google的很多网站在国内无法访问,苦逼了一堆天朝程序员,下是在mac本上折腾android 开发环境的过程: 一.先下载android sdk for mac 给二个靠谱的网址: ...

  4. Mac/OSX上安装xshell

    xshell没有mac版,且不愿意仅为一个程序运行一个虚拟机.怎么办?装上wine个来跑shell吧! 1.安装 WineBottler 过程略(制作.管理windows程序,类似CrossOver) ...

  5. 在Mac OSX上安装ffmpeg && ffmpeg命令行将h264封装为mp4

    ffmpeg功能强大,可以通过命令行来对音视频进行处理.为了使用其功能,我在Mac上对其进行了安装. 我的Mac OS X 系统版本:OS X Yosemite, 10.10.14 关于ffmpeg在 ...

  6. 在 mac osx 上安装OpenOffice并以服务的方式启动

    OpenOffice是Apache基金会旗下的一款先进的开源办公软件套件,包含文本文档.电子表格.演示文稿.绘图.数据库等.包含Microsoft office所有功能.它不仅可以作为桌面应用供普通用 ...

  7. 在 Mac OSX 上安装 nginx

    今天在使用 brew 安装 nginx 时,提示错误,安装不上去: brew install nginx, 提示:/usr/local is not writable. 这个是需要修改 /usr/lo ...

  8. Mac OSX上安装SublimeText 3编译Processing 3.0

    1.安装SublimeText 32.使用Preferences - Package Control:Install Package - Processing安装 如果移动了Processing的位置 ...

  9. Mac OSX上安装Nginx

    1. 通过brew instal nginx安装 ==> Downloading https://homebrew.bintray.com/bottles/nginx-1.10.1.el_cap ...

随机推荐

  1. c#对话框

    OpenFileDialog open = new OpenFileDialog();//创建对话框 open.InitialDirectory = @"C:\Documents and S ...

  2. MVC模式:实现数据库中数据的增删改查功能

    *.数据库连接池c3p0,连接mysql数据库: *.Jquery使用,删除时跳出框,确定是否要删除: *.使用EL和JSTL,简化在jsp页面中插入的java语言 1.连接数据库 (1)导入连接数据 ...

  3. 哈夫曼树-Fence Repair 分类: 树 POJ 2015-08-05 21:25 2人阅读 评论(0) 收藏

    Fence Repair Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 32424 Accepted: 10417 Descri ...

  4. 机器人走方格 V3

    1120 . 机器人走方格 V3   基准时间限制:1 秒 空间限制:65536 KB 分值: 160 N * N的方格,从左上到右下画一条线.一个机器人从左上走到右下,只能向右或向下走.并要求只能在 ...

  5. maven之一——多模块项目构建

    参考这个帖子: http://www.cnblogs.com/xdp-gacl/p/4242221.html

  6. Storm系列之二——Guaranteeing Message Processing

    Storm保证每跳离开spout的消息都会被完全处理.本文介绍Storm是怎么保证每条消息都被完全处理并且作为用户该怎么做才能从Storm的可靠性保证受益. 1.什么叫消息被完全处理? 一个tuple ...

  7. 编译android源码官方教程(1)硬件、系统要求

    https://source.android.com/source/requirements.html Requirements IN THIS DOCUMENT Hardware requireme ...

  8. ContentProvider官方教程(7)3种访问形式:批处理、异步访问、intent间接访问(临时URI权限)

    Alternative Forms of Provider Access Three alternative forms of provider access are important in app ...

  9. ubuntu 安装 Tomcat

    首先确认系统中没有安装openJDK,有的话先卸载,安装oracle jdk 下载jdk Linux x64   172.95 MB       jdk-8u101-linux-x64.tar.gz ...

  10. Cheatsheet: 2015 04.01 ~ 04.30

    Other CentOS 7.1 Released: Installation Guide with Screenshots A Git Style Guide Recommender System ...