Установка XGBoost на Windows


XGBoost - это очень эффективная библиотека, которая реализует алгоритмы адаптивного бустинга. Если вам понадобилось ее установить, то я предполагаю что вы знаете что это и зачем нужно.


Update: 02.03.2017

Вместо самостоятельной сборки можно воспользоваться неофициальными бинарниками.

Скачать можно здесь и сразу переходить к пункту 7.

Но, перед началом использования, пользователей Windows ожидает нетривиальный квест с установкой данной библиотеки. Об этом и пойдет речь в данной заметке.

Нижеописанное представляет собой микс из официальной документации и различных ответов на Stack Oveflow и Kaggle, с помощью которого мне удалось установить x64 пакет Python на Windows 8.1.

Если у вас есть возможность использовать XGBoost под *nix системой - так и сделайте. Весь процесс установки для *unix: pip install xgboost.

Пошаговая инструкция для Windows

1. Устанавливаем mingw64.

Путь установки не должен содержать кириллицы и желательно избежать пробелов. При установке выбираем:

Architecture: x86_64
Threads: win32

2. Добавляем папку ...\mingw64\bin в переменные среды.

3. Находим в папке ...\mingw64\bin файл mingw32-make.exe, копируем и переименовываем в make.exe.

4. Устанавливаем Cygwin-x86_64.

5. Если по какой-то причине не установлен Git, устанавливаем и добавляем в переменные среды.

6. Переходим непосредственно к процессу установки. Вместо обычного терминала открываем Cygwin64 и выполняем:

cd c:\
>
git clone --recursive https://github.com/dmlc/xgboost
cd xgboost
git submodule init
git submodule update
cp make/mingw64.mk ./config.mk

Если необходимо внести какие-то изменения в конфигурацию, это можно сделать в файле config.mk. Остается одна команда:

make -j4

Возможно, у вас она выполнится нормально и в папке C:\xgboost появится файл xgboost.exe. Значит билд выполнен успешно.

У меня билд падал с ошибкой g++: error: unrecognized option '-pthread'.

Лечится эта ошибка изменением аргумента -pthread на -lpthread в 42 строке файла C:\xgboost\Makefile. После этого наконец должен появиться файл xgboost.exe, это значит что мы все сделали правильно.

7. Осталось сделать из всего этого python пакет.

cd python-package
python setup.py install

Для выполнения этой команды могут понадобиться distutils, которые входят в setuptools.

8. Тестируем

python
>>> import xgboost
>>> xgboost.__version__
'0.4'

XGBoost установлен. Радуемся и начинаем обучать адаптивные леса.

Дополнительно проверить надежность установки можно на официальных примерах.