Makine Öğrenmesi Sonuçlarını Depolama ve Sorgulama
Model tahminlerini, deney günlüklerini ve özellik verilerini ilişkisel veritabanlarında kalıcı hâle getirme.
Makine Öğrenmesi Sonuçlarını Depolama ve Sorgulama, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.
Makine Öğrenimi Denemelerini İzleme
Modelleri eğitirken farklı ayarlar ve puanlarla onlarca deneme üretirsiniz. İzleme olmadan hangi yapılandırmanın en iyi sonucu verdiğini unutursunuz.
Küçük bir deney veritabanı, her denemeyi kaydeder; böylece en iyi sonucu sorgulayabilir, karşılaştırabilir ve yeniden üretebilirsiniz.
Deneyler Tablosunu Tasarlama
İyi bir şema, denemenin kimliğini, modeli, temel hiperparametreleri, ölçütü ve zaman damgasını içerir. Esnek hiperparametreleri bir JSON metin sütununda depolayın.
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()Zaman Damgası ve ID Neden Gereklidir?
Otomatik artan id, her denemeye sabit bir tanımlayıcı verir; created_at ise denemeleri zamana göre sıralamanıza veya en yenisini bulmanıza olanak tanır.
DEFAULT (datetime("now")), ekleme sırasında zaman damgasını otomatik olarak doldurur.
Bir Denemeyi Günlüğe Kaydetme
Eğitimden sonra sonuçları ekleyin. Şemanın farklı modeller arasında esnek kalması için hiperparametre sözlüğünü JSON'a dönüştürün.
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()Yeniden Kullanılabilir log_run Yardımcısı
Ekleme işlemini her eğitim betiğinin sonunda çağıracağınız bir işlevin içinde toplayın. Daha sonra karşılaştırma yapmayı mümkün kılan şey, tutarlı günlüklemedir.
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()En İyi Denemeleri Seçme
Ölçüte göre sıralayarak en iyi modellerinizi bulun. ORDER BY accuracy DESC ile LIMIT kullanıldığında en başarılı sonuçlar döndürülür.
cur = conn.execute(
"SELECT model, accuracy, f1 FROM runs ORDER BY accuracy DESC LIMIT 5"
)
for row in cur.fetchall():
print(row)Modele veya Eşiğe Göre Filtreleme
WHERE ile karşılaştırmaları daraltın: yalnızca tek bir model ailesini veya yalnızca hedef puanın üzerindeki denemeleri seçin.
cur = conn.execute(
"SELECT model, accuracy FROM runs WHERE model = ? AND accuracy > ? ORDER BY accuracy DESC",
("random_forest", 0.90),
)
print(cur.fetchall())Denemeler Arasında Toplulaştırma
SQL toplulaştırmaları birçok denemeyi aynı anda özetler: GROUP BY ile model başına en iyi sonucu, ortalamayı ve sayıyı elde edin.
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())Sonuçları pandas'a Yükleme
Daha kapsamlı bir karşılaştırma için tabloyu bir DataFrame'e alın ve pandas ile analiz edin — sıralayın, özet tablolar oluşturun ve grafik çizin.
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())Deneyleri pandas'ta Karşılaştırma
Hiperparametrelerle ölçüt arasındaki ilişkiyi incelemek için JSON parametrelerini sütunlara açın — bir sonraki denemenize yön verecek bilgiler tam olarak bunlardır.
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())En İyi Sonucu Yeniden Üretme
Her deneme hiperparametrelerini depoladığı için en iyi modeli yeniden üretmek, yalnızca ilgili satırı okuyup bu parametrelerle yeniden örnek oluşturmaktan ibarettir.
best = df.sort_values("accuracy", ascending=False).iloc[0]
import json
best_params = json.loads(best["params"])
print("Reproduce", best["model"], "with", best_params)Hızlı Kontrol: En İyi Çalıştırmalar
Tablodaki doğruluğu en yüksek beş çalıştırmayı istiyorsunuz.
Özet: Makine Öğrenmesi Sonuçlarını Saklama ve Sorgulama
Bir deney izleme iş akışı oluşturdunuz:
- Modeli, JSON parametrelerini, ölçümleri ve zaman damgasını içeren bir
runstablosu - Her eğitim çalıştırmasını kaydetmek için bir
log_runyardımcı işlevi - En iyi çalıştırmaları bulmak için
ORDER BY ... DESC LIMIT, filtrelemek içinWHERE - Daha derin karşılaştırmalar için
GROUP BYtoplulaştırmaları ve pandas - Saklanan parametreler, kazanan sonucu yeniden üretilebilir kılar
Sırada: gömme araması için vektör veritabanları.
Sıkça Sorulan Sorular
“Makine Öğrenmesi Sonuçlarını Depolama ve Sorgulama” dersi ücretsiz mi?
Evet — “Makine Öğrenmesi Sonuçlarını Depolama ve Sorgulama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.
“Makine Öğrenmesi Sonuçlarını Depolama ve Sorgulama” dersinde ne öğreneceğim?
Model tahminlerini, deney günlüklerini ve özellik verilerini ilişkisel veritabanlarında kalıcı hâle getirme. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Makine Öğrenmesi Sonuçlarını Depolama ve Sorgulama” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Python'un sqlite3 Modülüyle SQLite
- Pandas ve SQL Entegrasyonu
- Makine Öğrenmesi Sonuçlarını Depolama ve Sorgulama
- Vektör Veritabanlarına Giriş