ML-Ergebnisse speichern und abfragen
Modellvorhersagen, Experimentprotokolle und Feature-Daten in relationalen Datenbanken persistieren.
ML-Ergebnisse speichern und abfragen ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn AI with Python-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
ML-Experimente nachverfolgen
Beim Trainieren von Modellen erzeugen Sie Dutzende Durchläufe mit unterschiedlichen Einstellungen und Bewertungen. Ohne Nachverfolgung verlieren Sie den Überblick darüber, welche Konfiguration am besten funktioniert hat.
Eine kleine Experimentdatenbank erfasst jeden Durchlauf, sodass Sie den besten vergleichen, abfragen und reproduzieren können.
Eine Experimenttabelle entwerfen
Ein gutes Schema erfasst die Identität des Durchlaufs, das Modell, wichtige Hyperparameter, die Metrik und einen Zeitstempel. Speichern Sie flexible Hyperparameter in einer JSON-Textspalte.
import sqlite3
conn = sqlite3.connect("experiments.db")
conn.execute("""
CREATE TABLE IF NOT EXISTS runs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
model TEXT NOT NULL,
params TEXT,
accuracy REAL,
f1 REAL,
created_at TEXT DEFAULT (datetime("now"))
)
""")
conn.commit()Warum ein Zeitstempel und eine ID?
Die automatisch inkrementierte id gibt jedem Durchlauf eine stabile Kennung, und mit created_at können Sie Durchläufe zeitlich ordnen oder den neuesten finden.
DEFAULT (datetime("now")) füllt den Zeitstempel beim Einfügen automatisch aus.
Einen Durchlauf protokollieren
Fügen Sie die Ergebnisse nach dem Training ein. Serialisieren Sie das Hyperparameter-Dictionary als JSON, damit das Schema für verschiedene Modelle flexibel bleibt.
import json, sqlite3
params = {"n_estimators": 200, "max_depth": 8}
conn.execute(
"INSERT INTO runs (model, params, accuracy, f1) VALUES (?, ?, ?, ?)",
("random_forest", json.dumps(params), 0.913, 0.902),
)
conn.commit()Eine wiederverwendbare log_run-Hilfsfunktion
Fassen Sie das Einfügen in einer Funktion zusammen, die Sie am Ende jedes Trainingsskripts aufrufen. Eine konsistente Protokollierung ermöglicht erst spätere Vergleiche.
def log_run(conn, model, params, accuracy, f1):
conn.execute(
"INSERT INTO runs (model, params, accuracy, f1) VALUES (?, ?, ?, ?)",
(model, json.dumps(params), accuracy, f1),
)
conn.commit()Die besten Durchläufe auswählen
Finden Sie Ihre besten Modelle, indem Sie nach der Metrik sortieren. ORDER BY accuracy DESC mit LIMIT gibt die Spitzenreiter zurück.
cur = conn.execute(
"SELECT model, accuracy, f1 FROM runs ORDER BY accuracy DESC LIMIT 5"
)
for row in cur.fetchall():
print(row)Nach Modell oder Schwellenwert filtern
Grenzen Sie Vergleiche mit WHERE ein: auf eine einzige Modellfamilie oder auf Durchläufe mit einer Bewertung über einem Zielwert.
cur = conn.execute(
"SELECT model, accuracy FROM runs WHERE model = ? AND accuracy > ? ORDER BY accuracy DESC",
("random_forest", 0.90),
)
print(cur.fetchall())Über mehrere Durchläufe aggregieren
SQL-Aggregationen fassen viele Durchläufe auf einmal zusammen: den besten Wert, den Durchschnitt und die Anzahl pro Modell mit GROUP BY.
cur = conn.execute("""
SELECT model,
COUNT(*) AS n,
MAX(accuracy) AS best,
AVG(accuracy) AS mean
FROM runs
GROUP BY model
ORDER BY best DESC
""")
print(cur.fetchall())Ergebnisse in pandas laden
Für einen umfassenderen Vergleich laden Sie die Tabelle in einen DataFrame und analysieren sie mit pandas — sortieren, pivotieren und visualisieren Sie die Daten.
import pandas as pd
from sqlalchemy import create_engine
engine = create_engine("sqlite:///experiments.db")
df = pd.read_sql("SELECT * FROM runs", engine)
print(df.sort_values("accuracy", ascending=False).head())Experimente in pandas vergleichen
Erweitern Sie die JSON-Parameter zu Spalten, um Hyperparameter mit der Metrik zu korrelieren — genau diese Erkenntnisse leiten Ihr nächstes Experiment.
import json, pandas as pd
params_df = df["params"].apply(json.loads).apply(pd.Series)
full = pd.concat([df, params_df], axis=1)
print(full.groupby("max_depth")["accuracy"].mean())Den Gewinner reproduzieren
Da bei jedem Durchlauf die Hyperparameter gespeichert wurden, lässt sich das beste Modell einfach reproduzieren: Lesen Sie seine Zeile aus und instanziieren Sie es mit diesen Parametern erneut.
best = df.sort_values("accuracy", ascending=False).iloc[0]
import json
best_params = json.loads(best["params"])
print("Reproduce", best["model"], "with", best_params)Schnelltest: Beste Trainingsläufe
Sie möchten die fünf Trainingsläufe mit der höchsten Genauigkeit aus der Tabelle auswählen.
Rückblick: ML-Ergebnisse speichern und abfragen
Sie haben einen Workflow zur Experimentverfolgung erstellt:
- Eine Tabelle
runsmit Modell, JSON-Parametern, Metriken und Zeitstempel - Eine Hilfsfunktion
log_run, die jeden Trainingslauf erfasst ORDER BY ... DESC LIMIT, um die besten Trainingsläufe zu finden, undWHEREzum FilternGROUP BYzum Aggregieren sowie pandas für einen tiefergehenden Vergleich- Gespeicherte Parameter machen den besten Lauf reproduzierbar
Als Nächstes: Vektordatenbanken für die Suche mit Embeddings.
Häufig gestellte Fragen
Ist die Lektion „ML-Ergebnisse speichern und abfragen“ kostenlos?
Ja — der vollständige Text von „ML-Ergebnisse speichern und abfragen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn AI with Python-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „ML-Ergebnisse speichern und abfragen“?
Modellvorhersagen, Experimentprotokolle und Feature-Daten in relationalen Datenbanken persistieren. Du übst Learn AI with Python mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Learn AI with Python zu starten?
Keine Vorkenntnisse erforderlich. Learn AI with Python auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „ML-Ergebnisse speichern und abfragen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Learn AI with Python-Lektion Code schreiben und ausführen?
Ja. Jede Learn AI with Python-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- SQLite mit Pythons sqlite3-Modul
- Pandas- und SQL-Integration
- ML-Ergebnisse speichern und abfragen
- Einführung in Vektordatenbanken