Hoppa till innehållet
AI-grafen
E· Universitetklassisk-ml· ca 60 min· utvecklande· verifierad 2026-09-20

Hyperparametersökning

Kunna söka hyperparametrar systematiskt (grid, random, bayesiansk) utan att läcka testdata.

Förkunskaper

Intuition

MetodHurNär
Grid searchalla kombinationer i ett rutnätfå parametrar (≤ 3), diskreta värden
Random searchslumpa i angivna intervallstandardvalet vid fler parametrar
Bayesiansk (TPE, GP)modellera ytan, välj nästa punkt smartdyra utvärderingar, många försök
Hyperband / ASHAstarta många, döda de dåliga tidigtdjupinlärning, där träning är dyr

Varför random slår grid (Bergstra & Bengio 2012): oftast är bara ett par parametrar viktiga. Ett rutnät med 5 värden per parameter provar bara 5 olika värden på den viktiga parametern, oavsett hur många punkter du kör. Random search provar lika många olika värden som du har försök.

Sök i rätt skala: inlärningstakt och regulariseringsstyrka ska sökas logaritmiskt (1e-5 till 1e-1), inte linjärt.

Kod

import numpy as np
from sklearn.model_selection import RandomizedSearchCV, GroupKFold
from scipy.stats import loguniform, randint

rum = {
    "svc__C": loguniform(1e-2, 1e3),        # log-skala
    "svc__gamma": loguniform(1e-4, 1e0),    # log-skala
    "svc__degree": randint(2, 5),
}
sok = RandomizedSearchCV(pipe, rum, n_iter=60, cv=GroupKFold(5),
                         scoring="f1_macro", random_state=0, n_jobs=-1, refit=True)
sok.fit(X_tr, y_tr, groups=grupp_tr)
print(sok.best_params_, round(sok.best_score_, 3))

# Testmängden rörs FÖRST här, en enda gång
print("test:", round(sok.best_estimator_.score(X_test, y_test), 3))

Tre regler som avgör om resultatet är ärligt:

  1. Sök aldrig mot testdata. Använd korsvalidering på träningsdatan; testet körs en gång, sist.
  2. Rapportera hur många konfigurationer du provade. Med 100 försök är bästa resultatet optimistiskt — det är samma problem som multipla jämförelser.
  3. Vid nästlad utvärdering: yttre loop för skattningen, inre för sökningen. Utan det är även korsvalideringsscoret optimistiskt.

Optuna ger bayesiansk sökning och pruning (avbryter dåliga försök tidigt) med några rader — värt det så fort en körning tar mer än några minuter.

Behärskning innebär

  • Söker hyperparametrar systematiskt
  • Väljer mellan grid, random och bayesiansk sökning
  • Undviker läckage av testdata

Logga in för att göra övningarna och bygga upp din behärskning.

Källor

Alla källor och licenser