2016-10-12 114 views
3

我嘗試編譯xgboost時遇到錯誤。我沒有sudo訪問,這讓事情變得更加棘手。XGBoost安裝錯誤

我跑了以下內容:

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

您可以與其他必要的庫一起如下安裝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,這是通過簡化機器學習工作流程建設的開發商社區。