如何在Windows上的python中安装XGBoost包

时间:2016-02-19 16:54:48

标签: python xgboost

我尝试在python中安装XGBoost包。 我使用的是Windows操作系统,64位。我经历了以下事情。

包目录指出xgboost对Windows不稳定并被禁用: Windows上的pip安装目前已被禁用以进行进一步的调查,请从github安装。 https://pypi.python.org/pypi/xgboost/

我不熟悉Visual Studio,面临构建XGBoost的问题。 我错过了在数据科学中使用xgboost包的机会。

请指导,以便我可以在python中导入XGBoost包。

由于

10 个答案:

答案 0 :(得分:15)

如果您使用$cert = Get-ChildItem Cert:\LocalMachine\my | Where-Object {$_.DnsNameList -like 'somedomain.com'} $url = 'https://somedomain.com' [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri $url -Certificate $cert -Verbose (或anaconda),则可以使用以下内容:

  • miniconda 更新2018-10-18

按以下方式检查安装:

  • 激活环境(见下文)
  • 正在运行conda install -c conda-forge xgboost

To activate an environment

在Windows上,在您的Anaconda Prompt中运行(假设您的环境名为conda list):

  • myenv

在macOS和Linux上,在终端窗口中运行(假设您的环境名为activate myenv):

  • myenv

Conda将路径名称myenv添加到系统命令之前。

答案 1 :(得分:5)

从这里构建它:

  • here下载xgboost whl文件(确保匹配您的python版本和系统架构,例如64位机器上的python 3.5的“xgboost-0.6-cp35-cp35m-win_amd64.whl”)
  • 打开命令提示符
  • cd到你的下载文件夹(或保存whl文件的任何地方) pip install xgboost-0.6-cp35-cp35m-win_amd64.whl(或者你的whl文件被命名)

答案 2 :(得分:4)

首先需要通过" make"来构建库,然后你可以使用anaconda提示符(如果你想在anaconda上安装)或git bash(如果你只在Python中使用它)安装。

使用以下过程的第一个follow the official guide(在Windows上的Git Bash中):

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

然后install TDM-GCC here并在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 

另请参阅以下优秀资源:

Official Guide

Installing Xgboost on Windows

Installing XGBoost For Anaconda on Windows

答案 3 :(得分:1)

你可以点击安装catboost。它是一个最近开源的梯度增强库,在大多数情况下比XGBoost更准确,更快,并且它具有分类功能支持。 这是图书馆的网站: https://catboost.ai

答案 4 :(得分:1)

在macOS上,以下命令有效 conda install -c conda-forge xgboost,但在执行此操作之前,我读过其他文章,因此确实使用brew安装了gcc

答案 5 :(得分:1)

pip install xgboost 也适用于 python 3.8,而上面提到的其他选项对我不起作用

答案 6 :(得分:0)

我已经按照上面的资源在windows os中安装了xgboost,直到现在才在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)

虽然显示了功能重要性图表,但缺少图表顶部红色框中的参数信息: enter image description here 咨询使用linux / mac OS并安装了xgboost的人。他们正在获得上述信息。 我想知道是否是由于具体的实现,我在Windows中构建和安装。以及如何在图表上方显示参数信息。 截至目前,我正在获取图表而不是红色框和信息。 感谢。

答案 7 :(得分:0)

除了开发人员的github(已从源代码构建(创建c ++环境等))已有的功能之外,我还找到了一种更简单的方法,我在here中进行了详细说明。基本上,您必须使用UC Irvine的网站,下载一个.whl文件,然后将其安装到cd并使用pip安装xgboost。

答案 8 :(得分:0)

以下命令应该可以使用,但是,如果此命令有问题

  

conda install -c conda-forge xgboost

首先激活您的环境。假设您的环境已命名 只需在conda终端中写:

activate <MY_ENV>

然后

 pip install xgboost

答案 9 :(得分:0)

XGBoost用于应用机器学习,并以其梯度提升算法而闻名,可以在python中作为库使用,但必须使用 cmake 进行编译。

或者,您可以从此link中进行操作,您可以下载C预编译的库并使用 pip install 命令进行安装。确保您已下载与python版本兼容的库。

我在Anaconda(Spyder)中使用相同的打印机时遇到了这个问题。然后只需重新启动内核,您的错误就会消失。