Как установить пакет XGBoost в python в Windows

Я попытался установить пакет XGBoost в Python. Я использую Windows OS, 64bit. Я прошел через следующее.

В каталоге пакета указано, что xgboost нестабилен для windows и отключен: установка pip в windows в настоящее время отключена для дальнейшего изучения, пожалуйста, установите с github. https://pypi.python.org/pypi/xgboost/

Я не очень хорошо разбираюсь в Visual Studio, сталкиваюсь с проблемой построения XGBoost. Я упускаю возможности использовать пакет xgboost в науке о данных.

Пожалуйста, руководство, чтобы я мог импортировать пакет XGBoost в Python.

Спасибо

Ответ 1

Если вы используете anaconda (или miniconda), вы можете использовать следующее:

Проверьте установку по:

  • Активация среды (см. ниже)
  • Запуск conda list

Чтобы активировать среду:

В Windows в приглашении Anaconda запустите (предполагается, что ваша среда называется myenv):

  • activate myenv

В macOS и Linux в окне терминала запустите (предполагается, что ваша среда называется myenv):

  • source activate myenv

Конда вводит путь myenv в вашу системную команду.

Ответ 2

Постройте это отсюда:

  • загрузите файл xgboost whl отсюда (убедитесь, что он соответствует вашей версии Python и архитектуре системы, например, "xgboost-0.6-cp35-cp35m-win_amd64.whl" для python 3.5 на 64-битной машине)
  • открыть командную строку
  • Перейдите в папку "Загрузки" (или куда бы вы ни сохранили whl файл) pip install xgboost-0.6-cp35-cp35m-win_amd64.whl (или как там будет указан ваш whl файл)

Ответ 3

Сначала вам нужно создать библиотеку через "make", затем вы можете установить ее с помощью приглашения anaconda (если вы хотите его на anaconda) или git bash (если вы используете его только на Python).

Сначала следуйте официальному руководству со следующей процедурой (в git bash в Windows):

git clone --recursive https://github.com/dmlc/xgboost
git submodule init
git submodule update

затем установите TDM-GCC здесь и выполните следующие действия в git Bash:

alias make='mingw32-make'
cp make/mingw64.mk config.mk; make -j4

Наконец, выполните следующие действия с помощью приглашения anaconda или git Bash:

cd xgboost\python-package  
python setup.py install 

Также см. эти большие ресурсы:

Официальное руководство

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

Установка XGBoost для Anaconda в Windows

Ответ 4

Вы можете установить пакет catboost. Это недавно открытая библиотека для повышения градиента, которая в большинстве случаев более точна и быстрее, чем XGBoost, и имеет поддержку категориальных функций. Вот сайт библиотеки: https://catboost.ai

Ответ 5

Следующая команда должна работать, но, если у вас есть проблемы с этой командой

conda install -c conda-forge xgboost

Сначала активируйте свою среду. Предположим, что ваша среда названа просто напишите в терминале conda:

activate <MY_ENV>

а затем

 pip install xgboost

Ответ 6

Я установил xgboost в windows os, следуя приведенным выше ресурсам, который до сих пор недоступен в pip. Однако я попытался использовать следующий код функции, чтобы настроить параметры cv:

#Import libraries:
import pandas as pd
import numpy as np
import xgboost as xgb
from xgboost.sklearn import XGBClassifier
from sklearn import cross_validation, metrics   #Additional sklearn functions
from sklearn.grid_search import GridSearchCV   #Perforing grid search

import matplotlib.pylab as plt
%matplotlib inline
from matplotlib.pylab import rcParams
rcParams['figure.figsize'] = 12, 4

train = pd.read_csv('train_data.csv')
target = 'target_value'
IDcol = 'ID'

Создается функция для получения оптимальных параметров и отображения вывода в визуальной форме.

def modelfit(alg, dtrain, predictors,useTrainCV=True, cv_folds=5, early_stopping_rounds=50):

if useTrainCV:
    xgb_param = alg.get_xgb_params()
    xgtrain = xgb.DMatrix(dtrain[predictors].values, label=dtrain[target].values)
    cvresult = xgb.cv(xgb_param, xgtrain, num_boost_round=alg.get_params()['n_estimators'], nfold=cv_folds,
        metrics='auc', early_stopping_rounds=early_stopping_rounds, show_progress=False)
    alg.set_params(n_estimators=cvresult.shape[0])

#Fit the algorithm on the data
alg.fit(dtrain[predictors], dtrain[target_label],eval_metric='auc')

#Predict training set:
dtrain_predictions = alg.predict(dtrain[predictors])
dtrain_predprob = alg.predict_proba(dtrain[predictors])[:,1]

#Print model report:
print "\nModel Report"
print "Accuracy : %.4g" % metrics.accuracy_score(dtrain[target_label].values, dtrain_predictions)
print "AUC Score (Train): %f" % metrics.roc_auc_score(dtrain[target_label], dtrain_predprob)

feat_imp = pd.Series(alg.booster().get_fscore()).sort_values(ascending=False)
feat_imp.plot(kind='bar', title='Feature Importances')
plt.ylabel('Feature Importance Score')

Теперь, когда функция вызывается для получения оптимальных параметров:

  #Choose all predictors except target & IDcols
  predictors = [x for x in train.columns if x not in [target]]
  xgb = XGBClassifier(
  learning_rate =0.1,
  n_estimators=1000,
  max_depth=5,
  min_child_weight=1,
  gamma=0,
  subsample=0.7,
  colsample_bytree=0.7,
  objective= 'binary:logistic',
  nthread=4,
  scale_pos_weight=1,
  seed=198)
 modelfit(xgb, train, predictors)

Хотя отображается диаграмма важности функций, но информация о параметрах в красном поле в верхней части диаграммы отсутствует: введите описание изображения здесь Проконсультировались с людьми, использующими ОС linux/mac, и установили xgboost. Они получают вышеуказанную информацию. Мне было интересно, связано ли это с конкретной реализацией, я строю и устанавливаю в windows. И как я могу получить информацию о параметрах, отображаемую над диаграммой. На данный момент я получаю диаграмму, а не красную рамку и информацию внутри нее. Спасибо.

Ответ 7

Помимо того, что уже есть на github разработчиков, который строит из исходного кода (создает среду c++ и т.д.), Я нашел более простой способ сделать это, который я объяснил здесь с деталями. По сути, вам нужно зайти на сайт UC Irvine и загрузить файл .whl, затем перейти в папку cd и установить xgboost с помощью pip.