2016-10-12 4 views
3

Ich treffe einen Fehler beim Versuch, xgboost zu kompilieren. Ich habe keinen sudo-Zugang, der die Dinge schwieriger macht.XGBoost Install Fehler

lief ich folgendes:

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

Welche mir folgende Fehler gibt:

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 

Antwort

1

Sie xgboost Bibliothek zusammen mit anderen wichtigen Bibliotheken installieren können wie folgt (wählen Sie bitte auf der Basis der ausreichend Bibliotheken für Ihr Projekt, mein Hauptfokus in dieser Antwort ist, es hilfreich bei der Einrichtung für die meisten Data Science-Projekte mit Sklearn, Pandas, Scipy und Xgboost-Algorithmen zusammen mit Visualisierung Bibliotheken.

# 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 

Wenn Sie weiterhin Umweltfragen würde ich vorschlagen, diese Dockerfile verwenden. Sie können die Datmo-Konvertierung auch nützlich finden, um dies zu erleichtern.

DISCLAIMER: Ich arbeite in dieser Firma namens Datmo, die eine Gemeinschaft von Entwicklern durch Vereinfachung der Maschine Lernworkflow baut.