Ошибка при использовании optuna при подборе гиперпараметров
def objective(trial,data = X,target = y):
param = {
'n_estimators': 5000,
'reg_alpha': trial.suggest_float('reg_alpha', 1e-3, 5.0),
'reg_lambda': trial.suggest_float('reg_lambda', 1e-3, 5.0),
'colsample_bytree': trial.suggest_float('colsample_bytree', 0.3, 0.9),
'subsample': trial.suggest_float('subsample', 0.4, 1.0),
'learning_rate': trial.suggest_float('learning_rate', 0.006, 0.02),
'max_depth': trial.suggest_int('max_depth', 9,12)
}
model = XGBRegressor(**param)
scores = cross_validate(model, X, y, cv=5, return_train_score=True)
return scores
study = optuna.create_study(direction='minimize')
study.optimize(objective, n_trials=10)
print('Number of finished trials:', len(study.trials))
print('Best trial:', study.best_trial.params)
При подборе выдает всегда сообщение:
"Trial 0 failed with parameters:... could not be cast to float"
А после ошибку:
ValueError: No trials are completed yet
Источник: Stack Overflow на русском