To retrieve the best model from an Optuna LightGBM study, you can use the study.best_trial method to get the best trial in the study, and then use the trial.user_attrs attribute to get the trained LightGBM model. Here's an example of how to do this:
import lightgbm as lgbimport optuna# Define a function to optimize with Optunadef optimize(trial): # Get the current value for the hyperparameter being optimized param = trial.suggest_uniform('param', 0, 1) # Train a LightGBM model with the current value of the hyperparameter model = lgb.LGBMClassifier(param=param) model.fit(X_train, y_train) # Return the cross-validated accuracy of the model return model.score(X_val, y_val)# Create an Optuna study and optimize the functionstudy = optuna.create_study()study.optimize(optimize, n_trials=100)# Get the best trial in the studybest_trial = study.best_trial# Get the trained LightGBM model from the best trial's user attributesbest_model = best_trial.user_attrs['model']
You can then use the best_model variable to make predictions or save the model for later use.