热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在MacOSX上安装xgboost

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

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

 


推荐阅读
  • ProtocolBuffers,是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方 ... [详细]
  • 前言这里讲的主要是想谈谈基于Vue的一个组件开发。不得不说的一点就是,在实际的Vue项目中,页面中每一个小块都是由一个个组件(.vue文件)组成,经过抽离后,然后再合并一起组成一个页面。由于上家公司我负责多的是可视化这一块的开发,这边我也将带着大家进行一个Vue项目 ... [详细]
  • 在安装 iOS 开发所需的 CocoaPods 时,用户可能会遇到多种问题。其中一个常见问题是,在执行 `pod setup` 命令后,系统无法连接到 GitHub 以更新 CocoaPods/Specs 仓库。这可能是由于网络连接不稳定、GitHub 服务器暂时不可用或本地配置错误等原因导致。为解决此问题,建议检查网络连接、确保 GitHub API 限制未被触发,并验证本地配置文件是否正确。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 本文深入探讨了使用Puppet进行软件包分发与管理的方法。首先介绍了fpm这一跨平台的软件包制作工具,其简便的操作流程使得软件包的创建变得轻松快捷。fpm的项目地址为:https://github.com/jordansissel/fpm。通过结合Puppet和fpm,可以实现高效、可靠的软件包管理和部署。 ... [详细]
  • Mac上传代码至GitHub上操作步骤1、下载git(查看是否已经安装了git,未安装则安装git)通过brewinstallgit命令安装git未安装brew请运行以下命令安装b ... [详细]
  • brew结合iTerm2花式玩转MacOS软件管理的终端指令
    brew结合iTerm2花式玩转MacOS软件管理的终端指令-1.背景需求  刚拿到新的Mac电脑工作时,linux上很多常用指令是没有的安装的,如wget,git,telnet ... [详细]
  • brew 安装mysql_Mac Brew部署 Nginx + php +Mysql + phpMyAdmin 环境
    发布MacOsCatalina简单体验后,有网友私信要一下MacBrew部署NginxphpMysqlphpMyAdmin的步骤,因为部署的时候没有截图 ... [详细]
  • window下的python安装插件,Go语言社区,Golang程序员人脉社 ... [详细]
  • 如何精通编程语言:全面指南与实用技巧
    如何精通编程语言:全面指南与实用技巧 ... [详细]
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
  • SWIG 3.0.12 Windows官方版下载:实现C语言与PHP、Java、Python等多语言代码互调接口
    SWIG 3.0.12 Windows官方版是一款强大的接口生成工具,能够实现C语言与多种高级编程语言(如Java、C#)及脚本语言(如PHP、JavaScript、Python)之间的互操作性。它不仅支持跨语言调用,还提供了丰富的封装选项,确保了代码的高效性和可维护性。 ... [详细]
  • Objective C接入Sonar代码扫描
    目录技术方案环境准备扫描器配置项目配置SonarQube配置jenkins接入一些坑技术方案Sonar本身有对OC的代码扫描插件——SonarCFamily,但是是收费的。出于成本 ... [详细]
  • 开发笔记:Lazydocker:一款功能强大的Docker管理套件
    本文由编程笔记#小编为大家整理,主要介绍了Lazydocker:一款功能强大的Docker管理套件相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
author-avatar
一直很哇塞
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有