(self, df_train, df_valid, weights, features)
| 103 | features = self.feature_selection(df_train, loss_values) |
| 104 | |
| 105 | def train_submodel(self, df_train, df_valid, weights, features): |
| 106 | dtrain, dvalid = self._prepare_data_gbm(df_train, df_valid, weights, features) |
| 107 | evals_result = dict() |
| 108 | |
| 109 | callbacks = [lgb.log_evaluation(20), lgb.record_evaluation(evals_result)] |
| 110 | if self.early_stopping_rounds: |
| 111 | callbacks.append(lgb.early_stopping(self.early_stopping_rounds)) |
| 112 | self.logger.info("Training with early_stopping...") |
| 113 | |
| 114 | model = lgb.train( |
| 115 | self.params, |
| 116 | dtrain, |
| 117 | num_boost_round=self.epochs, |
| 118 | valid_sets=[dtrain, dvalid], |
| 119 | valid_names=["train", "valid"], |
| 120 | callbacks=callbacks, |
| 121 | ) |
| 122 | evals_result["train"] = list(evals_result["train"].values())[0] |
| 123 | evals_result["valid"] = list(evals_result["valid"].values())[0] |
| 124 | return model |
| 125 | |
| 126 | def _prepare_data_gbm(self, df_train, df_valid, weights, features): |
| 127 | x_train, y_train = df_train["feature"].loc[:, features], df_train["label"] |
no test coverage detected