コード例 #1
0
 def fit(self, X_train, y_train, X_valid, y_valid, seed=42, label=None):
     self.label = label if label else 'LGB'
     self.models = []
     for bag in range(self.meta_bags):
         self.params['seed'] = seed * (bag + 1)
         model = XGBClassifier(**self.params)
         model.fit(X_train,
                   y_train,
                   eval_set=[(X_train, y_train), (X_valid, y_valid)],
                   eval_metric=self.feval,
                   early_stopping_rounds=self.early_stop,
                   verbose=False)
         model.xgb_eval = model.evals_result_['validation_1']['gini']
         model.best_round = np.argsort(model.xgb_eval)[::-1][0]
         model.importances = model.feature_importances_
         self.models.append(model)
         print('[%s Bag %d] Found %.6f @ %d with %d estimators' %
               (self.label, bag, model.xgb_eval[model.best_round],
                model.best_round, self.params.get('n_estimators', 100)))
     return self