Optuna: unterschiedliche Ergebnisse auch mit dem gleichen random_state
Posted: 10 Jun 2025, 13:19
Ich versuche zu verstehen, warum das Ausführen des folgenden Code für Hypterparameter -Tuning mit Optuna verschiedene Parameterwerte bietet, selbst wenn ich genau den gleichen Code mit demselben Random_State = 42 ausführe. Woher kommt der zufällige Teil? < /P>
Code: Select all
import optuna
import sklearn
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
def objective(trial):
digits = sklearn.datasets.load_digits()
x, y = digits.data, digits.target
max_depth = trial.suggest_int("rf_max_depth", 2, 64, log=True)
max_samples = trial.suggest_float("rf_max_samples", 0.2, 1)
rf_model = RandomForestClassifier(
max_depth = max_depth,
max_samples = max_samples,
n_estimators = 50,
random_state = 42
)
score = cross_val_score(rf_model, x, y, cv=3).mean()
return score
study = optuna.create_study(direction = "maximize")
study.optimize(objective, n_trials = 3)
trial = study.best_trial
print("Best Score: ", trial.value)
print("Best Params: ")
for key, value in trial.params.items():
print(" {}: {}".format(key, value))