def main(): # Load dataset data, labels = datasets.load_breast_cancer(return_X_y=True) # Split into train and test set train_x, test_x, train_y, test_y = train_test_split(data, labels, test_size=0.25) train_set = RayDMatrix(train_x, train_y) test_set = RayDMatrix(test_x, test_y) # Set config config = { "tree_method": "approx", "objective": "binary:logistic", "eval_metric": ["logloss", "error"], "max_depth": 3, } evals_result = {} # Train the classifier bst = train(config, train_set, evals=[(test_set, "eval")], evals_result=evals_result, ray_params=RayParams(max_actor_restarts=1), verbose_eval=False) bst.save_model("simple.xgb") print("Final validation error: {:.4f}".format( evals_result["eval"]["error"][-1]))
def train_model(config): # Load dataset data, labels = datasets.load_breast_cancer(return_X_y=True) # Split into train and test set train_x, test_x, train_y, test_y = train_test_split(data, labels, test_size=0.25) train_set = RayDMatrix(train_x, train_y) test_set = RayDMatrix(test_x, test_y) evals_result = {} bst = train(params=config, dtrain=train_set, evals=[(test_set, "eval")], evals_result=evals_result, verbose_eval=False, ray_params=RayParams(num_actors=num_actors, cpus_per_actor=num_cpus_per_actor)) bst.save_model("model.xgb")