2016-10-12 5 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, которая создает сообщество разработчиков, упрощая рабочий процесс машинного обучения.