XGBoost安装错误

时间:2016-10-12 00:48:46

标签: makefile xgboost

我在尝试编译xgboost时遇到错误。我没有sudo访问权限,这让事情变得更加艰难。

我运行了以下内容:

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

这给了我以下错误:

g++ -std=c++0x -Wall -O3 -msse2  -Wno-unknown-pragmas -funroll-loops -Iinclude   -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT build/learner.o src/learner.cc >build/learner.d
g++ -c -std=c++0x -Wall -O3 -msse2  -Wno-unknown-pragmas -funroll-loops -Iinclude   -Idmlc-core/include -Irabit/include -fPIC -fopenmp src/learner.cc -o build/learner.o
In file included from dmlc-core/include/dmlc/logging.h:15,
                 from include/xgboost/logging.h:11,
                 from src/learner.cc:7:
dmlc-core/include/dmlc/./base.h:71: note: #pragma message: Will need g++-4.6 or higher to compile allthe features in dmlc-core, compile without c++0x, some features may be disabled
In file included from include/xgboost/./gbm.h:18,
                 from include/xgboost/learner.h:16,
                 from src/learner.cc:8:
include/xgboost/././data.h: In constructor ‘xgboost::DMatrix::DMatrix()’:
include/xgboost/././data.h:234: error: ‘nullptr’ was not declared in this scope
In file included from include/xgboost/learner.h:16,
                 from src/learner.cc:8:
include/xgboost/./gbm.h: At global scope:
include/xgboost/./gbm.h:72: error: ‘nullptr’ was not declared in this scope
In file included from src/learner.cc:17:
src/./common/io.h:30: error: expected ‘;’ before ‘override’
src/learner.cc:496: error: expected ‘;’ at end of input
src/learner.cc:496: error: expected ‘}’ at end of input
In file included from src/learner.cc:17:
src/./common/io.h: In constructor ‘xgboost::common::PeekableInStream::PeekableInStream(dmlc::Stream*)’:
src/./common/io.h:28: error: class ‘xgboost::common::PeekableInStream’ does not have any field named ‘strm_’
src/./common/io.h:28: error: class ‘xgboost::common::PeekableInStream’ does not have any field named ‘buffer_ptr_’
src/./common/io.h: At global scope:
src/./common/io.h:28: error: expected unqualified-id at end of input
src/./common/io.h:28: error: expected ‘}’ at end of input
src/./common/io.h:28: error: expected ‘}’ at end of input
make: *** [build/learner.o] Error 1

1 个答案:

答案 0 :(得分:1)

您可以按照以下方式安装xgboost库以及其他基本库(请根据您的项目的库选择),我的主要关注点是使其有助于设置大多数需要sklearn的数据科学项目, pandas,scipy和xgboost算法以及可视化库。

# installing essentials
apt-get update; \
apt-get install -y \
  python python-pip \
  build-essential \
  python-dev \
  python-setuptools \
  python-matplotlib \
  libatlas-dev \
  curl \
  libatlas3gf-base && \
  apt-get clean

# upgrading pip
curl -O https://bootstrap.pypa.io/get-pip.py && \
python get-pip.py && \
rm get-pip.py
# installing libraries
pip install numpy==1.13.1
pip install scipy
pip install -U scikit-learn
pip install seaborn
pip install --pre xgboost

如果您仍然遇到环境问题,我建议您使用此Dockerfile。您可能还会发现Datmo转换有助于实现此目的。

免责声明:我在这家名为Datmo的公司工作,该公司正在通过简化机器学习工作流程来建立开发人员社区。