听说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. hiho 第1周 最长回文子串

    题目链接:http://hihocoder.com/problemset/problem/1032 #include <bits/stdc++.h> using namespace std ...

  2. common-pool2 使用

    common-pool2提供了3中对象池管理方式,它们的使用方式基本一样,这里以GenericObjectPool对象池为例介绍其使用方式,一般实现自己的对象池需要经过2个步骤 1.实现PooledO ...

  3. 2016CCPC东北地区大学生程序设计竞赛 1005 HDU5926

    链接http://acm.hdu.edu.cn/showproblem.php?pid=5926 题意:给我们一个矩阵,问你根据连连看的玩法可以消去其中的元素 解法:连连看怎么玩,就怎么写,别忘记边界 ...

  4. anroid

    http://mirrors.neusoft.edu.cn/more.we#android http://www.cnblogs.com/youxilua/archive/2013/05/20/308 ...

  5. PostGIS_导入shp格式的数据

    1.导入shp到PostGIS 开启PostGIS shp Loader,如下图: 打开View connection details....输入连接数据库的参数,如下: 连接成功后,点击Add Fi ...

  6. _in、_out。。。

    _in 输入参数_out 输出参数_opt 参数是可选的,就是可以为NULL_ecount 所指向的缓存的元素个素 也就是括号里的数字

  7. VS2015使用技巧 为什么我们可以输入cw后按两下tab键出现console.writeline

    镇场诗: 大梦谁觉,水月中建博客.百千磨难,才知世事无常. 今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ 为什么 ...

  8. 【leetcode❤python】83. Remove Duplicates from Sorted List

    #-*- coding: UTF-8 -*- # Definition for singly-linked list.# class ListNode(object):#     def __init ...

  9. 【翻译】Anatomy of a Program in Memory—剖析内存中的一个程序(进程的虚拟存储器映像布局详解)

    [翻译]Anatomy of a Program in Memory—剖析内存中的一个程序(进程的虚拟存储器映像布局详解) . . .

  10. 【转载】为什么CPU有多层缓存

    原文:为什么CPU有多层缓存 http://mp.weixin.qq.com/s?__biz=MzI1NDM2Nzg5Mw==&mid=2247483712&idx=1&sn= ...