J'ai essayé d'installer le paquet XGBoost en python . J'utilise Windows OS, 64bits. J'ai traversé la suite.
Le répertoire du paquet indique que xgboost est instable pour Windows et qu'il est désactivé: l'installation de Pip sous Windows est désactivée pour toute enquête ultérieure. Veuillez l'installer à partir de github . https://pypi.python.org/pypi/ xgboost/
Je ne connais pas très bien Visual Studio, je ne parviens pas à créer XGBoost… Je ne sais pas ce que je peux faire pour utiliser le package xgboost dans le domaine de la science des données.
S'il vous plaît guider, afin que je puisse importer le paquet XGBoost en python.
Merci
Si vous utilisez anaconda
(ou miniconda
), vous pouvez utiliser les éléments suivants:
conda install -c conda-forge xgboost
MIS À JOUR 2018-10-18Vérifiez l'installation par:
conda list
Pour activer un environnement :
Sous Windows, dans votre invite Anaconda, exécutez (en supposant que votre environnement s'appelle myenv
):
activate myenv
Sur macOS et Linux, dans votre fenêtre de terminal, exécutez (en supposant que votre environnement s'appelle myenv
):
source activate myenv
Conda ajoute le nom de chemin myenv à votre commande système.
Construisez à partir d'ici:
Vous devez d’abord construire la bibliothèque avec "make", puis vous pouvez l’installer à l’aide d’anaconda Prompt (si vous le souhaitez sur anaconda) ou de git bash (si vous l’utilisez en Python uniquement).
Tout d'abord suivez le guide officiel avec la procédure suivante (dans Git Bash sous Windows):
git clone --recursive https://github.com/dmlc/xgboost
git submodule init
git submodule update
then installez TDM-GCC ici et procédez comme suit dans Git Bash:
alias make='mingw32-make'
cp make/mingw64.mk config.mk; make -j4
Enfin, procédez comme suit avec anaconda Prompt ou Git Bash:
cd xgboost\python-package
python setup.py install
Reportez-vous également à ces excellentes ressources:
Vous pouvez installer Catboost. Il s’agit d’une bibliothèque d’augmentation de gradient récemment ouverte, qui est dans la plupart des cas plus précise et plus rapide que XGBoost et qui prend en charge les fonctionnalités catégorielles . Voici le site de la bibliothèque: https: // catboost.yandex
J'ai installé xgboost sous Windows en suivant les ressources ci-dessus, qui n'étaient pas disponibles jusqu'à présent dans pip . Cependant, j'ai essayé avec le code de fonction suivant d'ajuster les paramètres 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'
Une fonction est créée pour obtenir les paramètres optimaux et afficher le résultat sous forme visuelle.
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')
Maintenant, lorsque la fonction est appelée pour obtenir les paramètres optimaux:
#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)
Bien que le tableau d’importance des fonctions soit affiché, il manque les informations sur les paramètres dans la case rouge en haut du tableau: Les personnes consultées qui utilisent Linux/Mac OS et qui ont installé xgboost. Ils obtiennent les informations ci-dessus ... Je me demandais si cela était dû à une implémentation spécifique, que je construisais et que je l’installais dans des fenêtres. Et comment je peux obtenir les informations de paramètres affichées au-dessus du graphique . À partir de maintenant, je reçois le graphique et non la boîte rouge et les informations qu'il contient . Merci.
Outre ce qui est déjà sur le github des développeurs, qui construit à partir des sources (création d'un environnement c ++, etc.), j'ai trouvé un moyen plus simple de le faire, ce que j'ai expliqué ici avec des détails. En gros, vous devez vous rendre sur un site Web créé par UC Irvine et télécharger un fichier .whl, puis cd dans le dossier et installer xgboost avec pip.