Leer AI met Python · Les

Bayesiaanse optimalisatie met Optuna

optuna.create_study(), suggest_float/int/categorical, pruning en visualisatie.

Les 4 van 413 stappen

Bayesiaanse optimalisatie met Optuna is een gratis Leer AI met Python-les op CoddyKit. Dit is les 4 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Leer AI met Python. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Leer AI met Python bevat in totaal 4 lessen.

Slimmer dan willekeurig zoeken

Rastersgewijs en willekeurig zoeken negeren eerdere resultaten. Bayesiaanse optimalisatie leert van eerdere tests en stelt vervolgens veelbelovendere hyperparameters voor, zodat je met minder evaluaties goede waarden vindt.

Wat Optuna doet

Optuna is een populair raamwerk voor hyperparameteroptimalisatie. Je definieert een doelfunctie; Optuna neemt op intelligente wijze hyperparameters als steekproef en onthoudt wat werkte.

Een studie maken

Een studie beheert de optimalisatie. Stel direction in op "maximize" voor nauwkeurigheid/AUC of op "minimize" voor verlies/fout.

import optuna

study = optuna.create_study(direction="maximize")

De doelfunctie

De doelfunctie ontvangt een trial-object, stelt hyperparameters voor, traint een model en retourneert de te optimaliseren score.

from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score

def objective(trial):
    n = trial.suggest_int("n_estimators", 100, 500)
    d = trial.suggest_int("max_depth", 3, 20)
    clf = RandomForestClassifier(n_estimators=n, max_depth=d)
    return cross_val_score(clf, X, y, cv=3).mean()

Gehele parameters voorstellen

trial.suggest_int(name, low, high) kiest een geheel getal binnen een bereik. Voeg step of log=True toe om de steekproeftrekking te regelen.

def objective(trial):
    n_estimators = trial.suggest_int("n_estimators", 100, 1000, step=50)
    return train_and_score(n_estimators)

Kommagetalparameters voorstellen

trial.suggest_float(name, low, high) kiest een reëel getal. Gebruik log=True voor parameters zoals het leertempo, die meerdere ordes van grootte beslaan.

def objective(trial):
    lr = trial.suggest_float("learning_rate", 1e-4, 0.3, log=True)
    subsample = trial.suggest_float("subsample", 0.5, 1.0)
    return train_and_score(lr, subsample)

Categorische parameters voorstellen

trial.suggest_categorical(name, choices) kiest uit een vaste lijst en is ideaal voor opties zoals het kerneltype of de boostmethode.

def objective(trial):
    kernel = trial.suggest_categorical("kernel", ["linear", "rbf", "poly"])
    return train_svm(kernel)

De optimalisatie uitvoeren

study.optimize(objective, n_trials=N) voert de zoekopdracht uit voor N tests. Met meer tests verken je een groter deel van de ruimte; Optuna richt zich na verloop van tijd op veelbelovende gebieden.

study.optimize(objective, n_trials=100)

Het beste resultaat uitlezen

Na de optimalisatie geeft study.best_params de beste hyperparameters en geeft study.best_value de beste score van de doelfunctie.

print("Best params:", study.best_params)
print("Best value:", study.best_value)

best = RandomForestClassifier(**study.best_params)
best.fit(X, y)

Niet-belovende tests vroegtijdig stoppen

Optuna kan slechte tests vroegtijdig stoppen met vroegtijdige stoppers, waardoor je rekenkracht bespaart. Rapporteer tussenliggende waarden en controleer trial.should_prune() binnen trainingslussen.

import optuna

study = optuna.create_study(
    direction="maximize",
    pruner=optuna.pruners.MedianPruner(),
)

Waarom Optuna goed schaalt

Optuna ondersteunt parallelle tests, permanente opslag en visualisatie van de zoekopdracht. Voor dure modellen vindt de steekproefefficiënte Bayesiaanse aanpak sterke configuraties met veel minder tests dan rastersgewijs of willekeurig zoeken.

Korte kennistest

Test je kennis over Optuna.

Samenvatting

Samenvatting: Optuna gebruikt Bayesiaanse optimalisatie om hyperparameters efficiënt af te stemmen. Maak een studie met een direction, schrijf een doelfunctie die trial.suggest_int/float/categorical gebruikt, voer study.optimize(objective, n_trials=N) uit en lees vervolgens study.best_params en study.best_value uit. Vroegtijdige stoppers beëindigen zwakke tests om rekenkracht te besparen.

Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
53
Lessen
225

Veelgestelde vragen

Is de les “Bayesiaanse optimalisatie met Optuna” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Leer AI met Python, waaronder “Bayesiaanse optimalisatie met Optuna”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Leer AI met Python bevat in totaal 4 lessen.

Wat leer ik in “Bayesiaanse optimalisatie met Optuna”?

optuna.create_study(), suggest_float/int/categorical, pruning en visualisatie. Je oefent met Leer AI met Python door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Leer AI met Python te beginnen?

Ervaring vooraf is niet nodig. Leer AI met Python op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “Bayesiaanse optimalisatie met Optuna”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Leer AI met Python?

Ja. Elke les over Leer AI met Python bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Strategieën voor cross-validation
  2. Classificatiemetrics uitgediept
  3. Grid search en random search
  4. Bayesiaanse optimalisatie met Optuna
← Terug naar Leer AI met Python