def fit(self,X,y,Xt=None,yt=None,
load_model=None,save_model=None,
obj=None,feval=None,print_fscore=True,evalx=None):
print(X.shape,y.shape)
num_round = self.params.get('num_round',100)
early_stopping_rounds = self.params.get('early_stopping_rounds',None)
maximize = self.params.get('maximize',False)
dtrain = xgb.DMatrix(X, y)
vb = self.params.get('verbose_eval',1)
if Xt is not None:
dvalid = xgb.DMatrix(Xt, yt)
watchlist = [(dtrain, 'train'), (dvalid, 'valid')]
bst = xgb.train(self.params, dtrain, num_round, evals = watchlist,
early_stopping_rounds=early_stopping_rounds,verbose_eval=vb,
xgb_model=load_model,obj=obj,feval=feval,maximize=maximize)
else:
watchlist = [(dtrain, 'train')]
bst = xgb.train(self.params, dtrain, num_round, evals = watchlist,
verbose_eval=vb,xgb_model=load_model,obj=obj,feval=feval)
self.bst = bst
if save_model is not None:
bst.save_model(save_model)
fscore = self.feature_importance()
if print_fscore:
print("Feature Importance:")
for i in fscore:
print(i)
if Xt is not None and evalx is not None:
yp = self.predict(Xt)
score = evalx(yt,yp)
print(score)
return score
return 0
评论列表
文章目录