[英]How can I install XGBoost package in python on Windows
我尝试在 python 中安装 XGBoost 包。 我正在使用 windows os, 64bits 。 我经历了以下。
包目录指出xgboost在windows下不稳定,已禁用:windows上pip安装目前已禁用以进一步调查,请从github安装。 https://pypi.python.org/pypi/xgboost/
我不太精通 Visual Studio,在构建 XGBoost 时遇到了问题。 我错过了在数据科学中使用 xgboost 包的机会。
请指导,以便我可以在python中导入XGBoost包。
谢谢
从这里构建它:
您首先需要通过“make”构建库,然后您可以使用 anaconda prompt(如果您希望在 anaconda 上使用)或 git bash(如果您仅在 Python 中使用它)进行安装。
首先按照以下步骤(在 Windows 上的 Git Bash 中) 按照官方指南进行操作:
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 prompt 或 Git Bash 执行以下操作:
cd xgboost\python-package
python setup.py install
另请参阅这些重要资源:
您可以 pip install catboost。 它是最近开源的梯度提升库,在大多数情况下比 XGBoost 更准确、更快,并且具有分类特征支持。 这是图书馆的网站: https : //catboost.ai
以下命令应该可以工作,但是,如果此命令有问题
conda install -c conda-forge xgboost
首先激活您的环境。 假设您的环境命名为在 conda 终端中简单写入:
activate <MY_ENV>
进而
pip install xgboost
在 macOS 上,以下命令可以运行 conda install -c conda-forge xgboost 但在此之前我已经阅读了一些其他文章,因此确实使用 brew 安装了 gcc
pip install xgboost
也适用于python 3.8 ,而上面提到的其他选项对我不起作用
按照上述资源,我已经在Windows操作系统中安装了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)
虽然显示了功能重要性图表,但是缺少图表顶部红色框中的参数信息: 咨询了使用linux / mac OS并安装xgboost的人员。 他们正在获取以上信息。 我想知道是否是由于特定的实现,所以我在Windows中构建并安装了它。 以及如何获取显示在图表上方的参数信息。 到目前为止,我正在获取图表,而不是其中的红色框和信息。 谢谢。
XGBoost 用于应用机器学习,以其梯度提升算法而闻名,它可作为 Python 中的库使用,但必须使用cmake进行编译。
或者,您可以通过此链接下载 C 预编译库并使用pip install < FILE-NAME.whl>命令安装它。 确保您已下载与您的 Python 版本兼容的库。
我在 Anaconda(Spyder) 中使用相同的问题时遇到了这个问题。 然后只需重新启动内核,您的错误就会消失。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.