การจัดเก็บและสืบค้นผลลัพธ์แมชชีนเลิร์นนิง
เก็บผลการคาดการณ์ของโมเดล บันทึกการทดลอง และข้อมูลคุณลักษณะในฐานข้อมูลเชิงสัมพันธ์
การจัดเก็บและสืบค้นผลลัพธ์แมชชีนเลิร์นนิง เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- SQLite ด้วยโมดูล sqlite3 ของ Python
- การผสาน Pandas และ SQL
- การจัดเก็บและสืบค้นผลลัพธ์แมชชีนเลิร์นนิง
- บทนำสู่ฐานข้อมูลเวกเตอร์