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: 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.
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
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 –