2016-02-19 25 views
7

Ich habe versucht, XGBoost-Paket in Python zu installieren. Ich verwende Windows OS, 64Bits. Ich bin durch folgendes gegangen.Wie kann ich XGBoost Paket in Python unter Windows installieren

Das Paketverzeichnis besagt, dass xgboost für Windows unstable ist und deaktiviert ist: pip Installation auf Windows ist derzeit für weitere Untersuchungen deaktiviert, bitte installieren Sie von Github. https://pypi.python.org/pypi/xgboost/

Ich bin nicht gut in Visual Studio vertraut, vor dem Problem, XGBoost zu bauen. Ich vermisse Möglichkeiten, xgboost-Paket in Data Science zu verwenden.

Bitte führen Sie, damit ich das XGBoost-Paket in Python importieren kann.

Dank

Antwort

2

Sie zuerst die Bibliothek durch „make“ bauen müssen, dann können Sie mit Anaconda Prompt installieren oder git bash (wenn Sie es auf anaconda wollen) (wenn Sie es in Python verwenden nur).

Erste follow the official guide mit dem folgenden Verfahren (in Git Bash unter Windows):

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

dann install TDM-GCC here und folgende Unterlagen in Git Bash tun:

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

Last, gehen Sie wie folgt mit Anaconda Aufforderung oder Git Bash:

cd xgboost\python-package 
python setup.py install 

Siehe auch die se große Ressourcen:

Official Guide

Installing Xgboost on Windows

Installing XGBoost For Anaconda on Windows

+0

Vielen Dank. Ich habe Ihre angegebenen Ressourcen verfolgt und xgboost in Windows installiert. Allerdings habe ich ein Problem, wenn ich die folgenden Zeilen ausführen, um cv Parameter zu erhalten: – shan

+0

Ich bekomme WindowsError: [Fehler 193]% 1 ist keine gültige Win32-Anwendung, wenn ich versuche, xgboost –

0

Ich habe installiert xgboost in Windows-Betriebssystem im Anschluss an den oben genannten Ressourcen, die bisher in pip nicht verfügbar ist. Allerdings habe ich versucht, mit dem folgenden Funktionscode, cv Parameter abgestimmt zu bekommen:

#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' 

Eine Funktion erstellt wird, um die optimalen Parameter zu erhalten und die Ausgabe in visueller Form anzuzeigen.

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') 

Wenn nun die Funktion die optimalen Parameter erhalten aufgerufen:

#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) 

Obwohl die Funktion Bedeutung Karte angezeigt wird, aber die Parameter info im roten Feld an der Spitze des Diagramms fehlt: enter image description here Eingeladene Leute, die Linux/Mac OS verwenden und xgboost installiert haben. Sie erhalten die oben genannten Informationen. Ich habe mich gefragt, ob es aufgrund der spezifischen Implementierung ist, ich baue und in Windows installiert. Und wie ich die Parameterinfo über dem Diagramm anzeigen lassen kann. Ab sofort bekomme ich die Grafik und nicht die rote Box und die darin enthaltenen Informationen. Danke.

1

es beim Aufbau von hier:

  • herunterladen xgboost whl Datei aus here (stellen Sie sicher, dass Ihre Python-Version und Systemarchitektur anzupassen, zB "xgboost-0,6-CP35-cp35m-win_amd64.whl" für Python 3.5 auf 64-Bit-Maschine)
  • öffnen Eingabeaufforderung
  • cd zu Ihrem Downloads-Ordner (oder wo auch immer gespeichert Sie die whl Datei) xgboost-0,6-CP35-cp35m-win_amd64.whl installieren pIP-Funktion (oder was auch immer Ihre whl Datei genannt)
4

Wenn Sie mit anaconda (oder miniconda) Sie verwenden können folgende:

  • conda install py-xgboost
+0

zu importieren Nur ein kurzer Hinweis: Problem der Befehl in der Anaconda Promt, bei Administrator ausgeführt. Sonst funktionierte es nicht für mich. – CGFoX

+0

Während die Installation mit Anaconda erfolgreich ist, wird xgboost immer noch nicht in 'pip list' angezeigt und ich bekomme eine Fehlermeldung, wenn ich versuche es zu importieren. – CGFoX

0

können Sie pip catboost installieren. Es handelt sich um eine Open-Source-Bibliothek mit gradientenverstärkenden Funktionen, die in den meisten Fällen genauer und schneller ist als XGBoost und über kategoriale Funktionen verfügt. Hier ist die Website der Bibliothek: https://catboost.yandex

Verwandte Themen