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