def tune_rx_btrees()

in Python/step3_training_evaluation.py [0:0]


def tune_rx_btrees(formula, data, n_tree_list, lr_list, cp_list, cc):
    print("Tuning rx_btrees")
    best_error = sys.maxsize
    best_model = None
    for nt in n_tree_list:
        for lr in lr_list:
            for cp in cp_list:
                model = rx_btrees(formula=formula,
                                  data=data,
                                  n_tree=nt,
                                  learning_rate=lr,
                                  cp=cp,
                                  loss_function="gaussian",
                                  min_split=int(sqrt(num_rows)),
                                  max_num_bins=int(sqrt(num_rows)),
                                  seed=9,
                                  compute_context=cc)
                error = model.oob_err['oob.err'][model.ntree - 1]
                print("OOB Error: {} \t n_tree: {} \t learning_rate: {} \t cp: {}".format(error, nt, lr, cp))
                if error < best_error:
                    print("^^^ New best model!")
                    best_error = error
                    best_model = model
    return best_model