0Pricing
Learn AI with Python · บทเรียน

การจัดเก็บและสืบค้นผลลัพธ์แมชชีนเลิร์นนิง

เก็บผลการคาดการณ์ของโมเดล บันทึกการทดลอง และข้อมูลคุณลักษณะในฐานข้อมูลเชิงสัมพันธ์

การจัดเก็บและสืบค้นผลลัพธ์แมชชีนเลิร์นนิง เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน 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)

ตรวจสอบอย่างรวดเร็ว: การทำงานที่ดีที่สุด

คุณต้องการการทำงานห้ารายการจากตารางที่มีความแม่นยำสูงสุด

สรุปทบทวน: การจัดเก็บและการเรียกดูผลลัพธ์การเรียนรู้ของเครื่อง

คุณได้สร้างกระบวนการทำงานสำหรับติดตามการทดลองดังนี้:

  • ตาราง runs ที่มีแบบจำลอง พารามิเตอร์ในรูปแบบเจสัน เมตริก และเวลาประทับ
  • ตัวช่วย log_run สำหรับบันทึกการทำงานฝึกแบบจำลองทุกครั้ง
  • ORDER BY ... DESC LIMIT เพื่อค้นหาการทำงานที่ดีที่สุด และ WHERE เพื่อกรองข้อมูล
  • การรวมกลุ่มด้วย GROUP BY และไลบรารีแพนดาสเพื่อเปรียบเทียบเชิงลึกยิ่งขึ้น
  • พารามิเตอร์ที่จัดเก็บไว้ทำให้สามารถทำซ้ำแบบจำลองที่ชนะได้

ต่อไป: ฐานข้อมูลเวกเตอร์สำหรับการค้นหาเวกเตอร์ฝังความหมาย

คำถามที่พบบ่อย

บทเรียน “การจัดเก็บและสืบค้นผลลัพธ์แมชชีนเลิร์นนิง” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การจัดเก็บและสืบค้นผลลัพธ์แมชชีนเลิร์นนิง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การจัดเก็บและสืบค้นผลลัพธ์แมชชีนเลิร์นนิง”

เก็บผลการคาดการณ์ของโมเดล บันทึกการทดลอง และข้อมูลคุณลักษณะในฐานข้อมูลเชิงสัมพันธ์ คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “การจัดเก็บและสืบค้นผลลัพธ์แมชชีนเลิร์นนิง” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม

ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. SQLite ด้วยโมดูล sqlite3 ของ Python
  2. การผสาน Pandas และ SQL
  3. การจัดเก็บและสืบค้นผลลัพธ์แมชชีนเลิร์นนิง
  4. บทนำสู่ฐานข้อมูลเวกเตอร์
← กลับไปที่ Learn AI with Python