0Pricing
Learn AI with Python · 강의

머신러닝 결과 저장 및 조회

관계형 데이터베이스에 모델 예측, 실험 기록, 특성 데이터를 보존합니다.

머신러닝 결과 저장 및 조회은(는) 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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Python의 sqlite3 모듈과 SQLite
  2. Pandas와 SQL 통합
  3. 머신러닝 결과 저장 및 조회
  4. 벡터 데이터베이스 입문
← Learn AI with Python(으)로 돌아가기