Example #1
0
    def k_fold_train(self):
        if self.config.KFOLD:
            k_fold = KFold(n_splits=self.config.N_FOLDS,
                           shuffle=True,
                           random_state=712)
        else:
            k_fold = StratifiedKFold(n_splits=self.config.N_FOLDS,
                                     shuffle=True,
                                     random_state=712)
        test_predictions = np.zeros(self.test_features.shape[0])
        for train_indices, valid_indices in k_fold.split(
                self.train_features,
                None if self.config.KFOLD else self.train_labels):
            train_x, train_y = self.train_features.iloc[
                train_indices, :], self.train_labels.iloc[train_indices, :]
            valid_x, valid_y = self.train_features.iloc[
                valid_indices, :], self.train_labels.iloc[valid_indices, :]

            model = ctrNet.build_model(self.param)
            model.train(train_data=(train_x, train_y),
                        dev_data=(valid_x, valid_y))
            print("Training Done! Inference...")

            test_predictions = np.add(
                test_predictions,
                rankdata(
                    model.infer(dev_data=(self.test_features,
                                          test_predictions))) /
                test_predictions.shape[0])
            del model
            gc.collect()

        submission(self.config, test_predictions, True, '')
Example #2
0
    cross_activation='identity',
    init_method='uniform',
    init_value=0.1,
    feature_nums=len(features),
    kfold=5)
utils.print_hparams(hparam)

# # Training model

# In[6]:

kfold = KFold(n_splits=hparam.kfold, shuffle=True, random_state=712)
for i, (train_index, dev_index) in enumerate(kfold.split(train)):
    print('Fold', i)

    model = ctrNet.build_model(hparam)
    model.train(train_data=(train.iloc[train_index][features],
                            train.iloc[train_index]['HasDetections']),
                dev_data=(train.iloc[dev_index][features],
                          train.iloc[dev_index]['HasDetections']))
    print("Training Done! Inference...")
    if i == 0:
        preds = model.infer(dev_data=(test[features],
                                      test['HasDetections'])) / hparam.kfold
    else:
        preds += model.infer(dev_data=(test[features],
                                       test['HasDetections'])) / hparam.kfold

# # Inference

# In[7]: