2016-02-19 15 views
7

Tôi đã cố gắng cài đặt gói XGBoost bằng python. Tôi đang sử dụng hệ điều hành windows, 64 bit. Tôi đã trải qua những điều sau đây.Làm cách nào để cài đặt gói XGBoost trong python trên Windows

Thư mục gói nói rằng xgboost không ổn định cho cửa sổ và bị vô hiệu hóa: cài đặt pip trên cửa sổ hiện bị tắt để tiếp tục xâm phạm, vui lòng cài đặt từ github. https://pypi.python.org/pypi/xgboost/

Tôi không thạo thạo Visual Studio, đang gặp vấn đề khi xây dựng XGBoost. Tôi đang bỏ lỡ cơ hội sử dụng gói xgboost trong khoa học dữ liệu.

Vui lòng hướng dẫn, để tôi có thể nhập gói XGBoost vào python.

Cảm ơn

Trả lời

2

Trước tiên, bạn cần phải xây dựng thư viện thông qua "làm", sau đó bạn có thể cài đặt sử dụng dấu nhắc Anaconda (nếu bạn muốn nó trên Anaconda) hoặc git bash (nếu bạn sử dụng nó trong Python chỉ).

Trước follow the official guide với các thủ tục sau đây (trong Git Bash trên Windows):

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

sau đó install TDM-GCC here và làm như sau trong Git Bash:

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

ngoái, làm bằng cách sử dụng sau đây nhắc Anaconda hoặc Git Bash:

cd xgboost\python-package 
python setup.py install 

Cũng tham khảo se nguồn lực lớn: xgboost

Official Guide

Installing Xgboost on Windows

Installing XGBoost For Anaconda on Windows

+0

Cảm ơn rất nhiều. Tôi đã theo dõi tài nguyên của bạn và cài đặt xgboost trong cửa sổ. Tuy nhiên, tôi đang đối mặt với một vấn đề, khi tôi chạy các dòng sau để lấy thông số cv: – shan

+0

Tôi nhận được WindowsError: [Lỗi 193]% 1 không phải là một ứng dụng Win32 hợp lệ khi tôi cố gắng nhập xgboost –

0

Tôi đã cài đặt trong hệ điều hành Windows sau khi các nguồn lực trên, mà không phải là có sẵn cho đến bây giờ trong pip. Tuy nhiên, tôi đã cố gắng với mã chức năng sau đây, để có được các thông số cv chỉnh:

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

Một chức năng được tạo ra để có được các thông số tối ưu và hiển thị kết quả dưới dạng hình ảnh.

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

Bây giờ, khi hàm được gọi để có được các thông số tối ưu:

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

Mặc dù bảng xếp hạng tính năng quan trọng được hiển thị, nhưng các thông tin tham số trong hộp màu đỏ ở phía trên cùng của biểu đồ là mất tích: enter image description here Những người được tư vấn sử dụng linux/mac OS và cài đặt xgboost. Họ đang nhận được thông tin trên. Tôi đã tự hỏi cho dù đó là do thực hiện cụ thể, tôi xây dựng và cài đặt trong cửa sổ. Và làm thế nào tôi có thể nhận được các thông số thông số được hiển thị phía trên biểu đồ. Hiện tại, tôi nhận được biểu đồ chứ không phải hộp màu đỏ và thông tin bên trong nó. Cảm ơn.

1

Xây dựng nó từ đây:

  • tải tập tin WHL xgboost từ here (hãy chắc chắn để phù hợp với phiên bản python của bạn và kiến ​​trúc hệ thống, ví dụ: "xgboost-0,6-cp35-cp35m-win_amd64.whl" cho python 3.5 trên máy tính 64-bit)
  • mở command prompt
  • cd để thư mục Downloads của bạn (hoặc bất cứ nơi nào bạn đã lưu tệp WHL) pips cài đặt xgboost-0,6-cp35-cp35m-win_amd64.whl (hoặc bất kỳ tập tin WHL của bạn là có tên)
4

Nếu bạn đang sử dụng anaconda (hoặc miniconda), bạn có thể sử dụng như sau:

  • conda install py-xgboost
+0

Chỉ cần một gợi ý nhanh: lệnh trong Anaconda Promt, chạy tại Administrator. Nếu không nó không hiệu quả với tôi. – CGFoX

+0

Trong khi cài đặt với anaconda thành công, xgboost vẫn không hiển thị trong danh sách 'pip' và tôi gặp lỗi khi cố gắng nhập nó. – CGFoX

0

Bạn có thể cài đặt pip catboost. Nó là một thư viện tăng cường nguồn mở gradient gần đây, mà trong hầu hết các trường hợp chính xác hơn và nhanh hơn XGBoost, và nó có các tính năng hỗ trợ phân loại. Đây là trang web của thư viện: https://catboost.yandex

Các vấn đề liên quan