머신러닝 결과 저장 및 조회
관계형 데이터베이스에 모델 예측, 실험 기록, 특성 데이터를 보존합니다.
머신러닝 결과 저장 및 조회은(는) CoddyKit의 무료 Learn AI with Python 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Learn AI with Python 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.
머신러닝 실험 기록하기
모델을 학습하면 서로 다른 설정과 점수를 사용하는 수십 개의 실행 결과가 생성됩니다. 기록하지 않으면 어떤 구성이 가장 잘 작동했는지 알 수 없습니다.
작은 실험 데이터베이스에 모든 실행을 기록하면 가장 좋은 결과를 조회하고 비교하며 재현할 수 있습니다.
실험 표 설계하기
좋은 스키마에는 실행 식별 정보, 모델, 주요 하이퍼파라미터, 지표, 타임스탬프가 포함됩니다. 유연한 하이퍼파라미터는 JSON 텍스트 열로 저장합니다.
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()타임스탬프와 ID가 필요한 이유
자동 증가하는 id는 각 실행에 안정적인 식별자를 부여하고, created_at을 사용하면 시간순으로 실행을 정렬하거나 최신 실행을 찾을 수 있습니다.
DEFAULT (datetime("now"))은 삽입할 때 타임스탬프를 자동으로 채웁니다.
실행 기록하기
학습이 끝나면 결과를 삽입합니다. 스키마가 모델마다 유연하게 유지되도록 하이퍼파라미터 딕셔너리를 JSON으로 직렬화합니다.
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()재사용 가능한 log_run 도우미
모든 학습 스크립트의 마지막에 호출할 수 있도록 삽입 작업을 함수로 묶습니다. 일관된 기록이 있어야 나중에 결과를 비교할 수 있습니다.
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()최고의 실행 결과 선택하기
지표를 기준으로 정렬해 가장 좋은 모델을 찾습니다. ORDER BY accuracy DESC와 LIMIT을 사용하면 상위 결과를 반환할 수 있습니다.
cur = conn.execute(
"SELECT model, accuracy, f1 FROM runs ORDER BY accuracy DESC LIMIT 5"
)
for row in cur.fetchall():
print(row)모델 또는 임계값으로 필터링하기
WHERE를 사용해 비교 범위를 좁힐 수 있습니다. 특정 모델 계열만 선택하거나 목표 점수보다 높은 실행 결과만 선택할 수 있습니다.
cur = conn.execute(
"SELECT model, accuracy FROM runs WHERE model = ? AND accuracy > ? ORDER BY accuracy DESC",
("random_forest", 0.90),
)
print(cur.fetchall())여러 실행 결과 집계하기
SQL 집계 기능을 사용하면 여러 실행 결과를 한 번에 요약할 수 있습니다. 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())결과를 pandas로 불러오기
더 자세히 비교하려면 표를 DataFrame으로 가져와 pandas로 분석합니다. 정렬, 피벗, 시각화를 수행할 수 있습니다.
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())pandas에서 실험 비교하기
JSON 매개변수를 열로 확장하면 하이퍼파라미터와 지표의 상관관계를 분석할 수 있습니다. 이는 다음 실험의 방향을 정하는 데 정확히 필요한 작업입니다.
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())최고 결과 재현하기
모든 실행 결과에 하이퍼파라미터가 저장되어 있으므로, 가장 좋은 모델을 재현하는 작업은 해당 행을 읽고 그 매개변수로 다시 인스턴스화하는 것뿐입니다.
best = df.sort_values("accuracy", ascending=False).iloc[0]
import json
best_params = json.loads(best["params"])
print("Reproduce", best["model"], "with", best_params)빠른 확인: 최상의 실행 결과
표에서 정확도가 가장 높은 실행 결과 다섯 개를 찾으려고 합니다.
복습: 머신러닝 결과 저장 및 조회
실험 추적 작업 흐름을 구축했습니다.
- 모델, JSON 형식의 매개변수, 평가 지표, 타임스탬프를 저장하는
runs표 - 모든 학습 실행을 기록하는
log_run도우미 - 최상의 실행 결과를 찾는
ORDER BY ... DESC LIMIT및 필터링에 사용하는WHERE - 집계에 사용하는
GROUP BY와 더 심층적인 비교를 위한 판다스 - 저장된 매개변수를 사용하면 우승한 설정을 재현할 수 있음
다음 주제: 임베딩 검색을 위한 벡터 데이터베이스입니다.
자주 묻는 질문
“머신러닝 결과 저장 및 조회” 강의는 무료인가요?
네 — “머신러닝 결과 저장 및 조회” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Learn AI with Python 강의 전체를 잠금 해제할 수 있습니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.
“머신러닝 결과 저장 및 조회”에서 뭘 배우나요?
관계형 데이터베이스에 모델 예측, 실험 기록, 특성 데이터를 보존합니다. 브라우저에서 직접 실행하는 실습 코드로 Learn AI with Python을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Learn AI with Python을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Learn AI with Python은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“머신러닝 결과 저장 및 조회” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Learn AI with Python 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Learn AI with Python 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- Python의 sqlite3 모듈과 SQLite
- Pandas와 SQL 통합
- 머신러닝 결과 저장 및 조회
- 벡터 데이터베이스 입문