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

ระบบผสมและตัวชี้วัดการประเมิน

การผสานการกรองแบบร่วมมือกับการกรองตามเนื้อหา RMSE, MAE, Precision@K และ Recall@K

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

เหตุใดจึงใช้ระบบผสม

การกรองแบบร่วมมือมีปัญหากับการเริ่มต้นแบบเย็น ส่วนการกรองแบบอิงเนื้อหามีแนวโน้มเจาะจงมากเกินไป ระบบผสมจะรวมทั้งสองวิธีเข้าด้วยกัน เพื่อให้แต่ละวิธีชดเชยจุดอ่อนของอีกวิธีหนึ่ง และมักให้ผลดีกว่าการใช้วิธีใดวิธีหนึ่งเพียงอย่างเดียว

การผสมแบบถ่วงน้ำหนัก

ระบบผสมที่ง่ายที่สุดจะรวมคะแนนด้วยน้ำหนักที่รวมกันได้เท่ากับ 1 ตัวอย่างเช่น 0.6 * CF + 0.4 * CB ให้น้ำหนักกับสัญญาณจากการกรองแบบร่วมมือมากกว่า แต่ยังคงใช้เนื้อหาเป็นทางเลือกสำรองและช่วยเพิ่มความหลากหลาย

final_score = 0.6 * cf_score + 0.4 * cb_score

การปรับแต่งน้ำหนัก

สัดส่วน 0.6 / 0.4 เป็นเพียงจุดเริ่มต้น ให้ปรับน้ำหนักด้วยชุดข้อมูลตรวจสอบ เมื่อผู้ใช้มีประวัติการใช้งานมาก ให้เพิ่มน้ำหนักของ CF สำหรับรายการใหม่ ให้เพิ่มน้ำหนักของ CB และคุณยังสามารถเปลี่ยนน้ำหนักสำหรับผู้ใช้แต่ละคนได้

กลยุทธ์ระบบผสมแบบอื่น

  • แบบถ่วงน้ำหนัก: ผสมคะแนนเข้าด้วยกันตามที่แสดงไว้ด้านบน
  • แบบสลับ: เลือก CF หรือ CB ตามความพร้อมของข้อมูล
  • การรวมคุณลักษณะ: ป้อนสัญญาณทั้งสองแบบเข้าสู่แบบจำลองเดียว

การผสมแบบถ่วงน้ำหนักเป็นวิธีที่ใช้กันมากที่สุดและเข้าใจเหตุผลได้ง่ายที่สุด

การประเมินผล: คำถามสองประเภท

การประเมินผลแบ่งออกเป็นคำถามสองข้อ:

  • การคาดการณ์คะแนน: คะแนนที่คาดการณ์ใกล้เคียงกับคะแนนจริงเพียงใด ใช้ RMSE/MAE
  • คุณภาพการจัดอันดับ: รายการที่เหมาะสมอยู่ใกล้ด้านบนหรือไม่ ใช้ความแม่นยำ@K อัตราการเรียกคืน@K และ NDCG@K

RMSE สำหรับการพยากรณ์การให้คะแนน

RMSE วัดค่าคลาดเคลื่อนกำลังสองเฉลี่ยระหว่างการให้คะแนนที่พยากรณ์กับการให้คะแนนจริง แล้วถอดรากที่สอง ค่านี้ลงโทษความคลาดเคลื่อนขนาดใหญ่อย่างมาก และเป็นตัวชี้วัดมาตรฐานด้านความแม่นยำของการให้คะแนน

import numpy as np

def rmse(pred, actual):
    return np.sqrt(np.mean((np.array(pred) - np.array(actual)) ** 2))

Precision@K

Precision@K = (รายการที่เกี่ยวข้องใน K อันดับแรก) / K ค่านี้ตอบคำถามว่า จากรายการ K รายการที่แนะนำไป มีสัดส่วนเท่าใดที่ผู้ใช้ชื่นชอบจริง ยิ่งค่าสูง ก็ยิ่งมีช่องว่างที่เสียเปล่าน้อยลง

def precision_at_k(recommended, relevant, k):
    top_k = recommended[:k]
    hits = len(set(top_k) & set(relevant))
    return hits / k

Recall@K

Recall@K = (รายการที่เกี่ยวข้องใน K อันดับแรก) / (รายการที่เกี่ยวข้องทั้งหมด) ค่านี้ตอบคำถามว่า จากรายการทั้งหมดที่ผู้ใช้น่าจะชื่นชอบ เรานำเสนอไว้ใน K อันดับแรกได้เป็นสัดส่วนเท่าใด

def recall_at_k(recommended, relevant, k):
    top_k = recommended[:k]
    hits = len(set(top_k) & set(relevant))
    return hits / len(relevant) if relevant else 0.0

ความสมดุลระหว่าง Precision กับ Recall

Precision ให้ความสำคัญกับการแนะนำสิ่งที่ถูกต้อง ส่วน recall ให้ความสำคัญกับการครอบคลุมรายการที่เกี่ยวข้องทั้งหมด ระบบแนะนำมักเน้น Precision@K เพราะผู้ใช้เห็นรายการเพียงสั้น ๆ ดังนั้นช่องอันดับต้น ๆ จึงสำคัญที่สุด

NDCG@K สำหรับคุณภาพการจัดอันดับ

NDCG@K (กำไรสะสมแบบลดน้ำหนักที่ทำให้เป็นมาตรฐาน) ให้คะแนนการจัดรายการที่เกี่ยวข้องมากไว้ใกล้กับด้านบน รายการที่เกี่ยวข้องซึ่งอยู่ในอันดับ 1 มีน้ำหนักมากกว่ารายการเดียวกันที่อยู่ในอันดับ 10 เพราะกำไรจะถูกลดน้ำหนักตามตำแหน่ง

NDCG ทำงานอย่างไร

DCG รวมค่าความเกี่ยวข้องของแต่ละรายการที่หารด้วยลอการิทึมของอันดับ ส่วน NDCG นำ DCG ไปหารด้วย DCG ในอุดมคติ (การจัดลำดับที่สมบูรณ์แบบ) จึงได้คะแนนตั้งแต่ 0 ถึง 1 โดย 1 หมายถึงรายการที่จัดอันดับได้สมบูรณ์แบบ

import numpy as np

def dcg(rels):
    return sum(r / np.log2(i + 2) for i, r in enumerate(rels))

def ndcg_at_k(rels, k):
    ideal = sorted(rels, reverse=True)
    return dcg(rels[:k]) / dcg(ideal[:k]) if dcg(ideal[:k]) else 0.0

ตรวจสอบความเข้าใจ

ทดสอบความรู้เกี่ยวกับตัวชี้วัดการประเมินของคุณ

สรุปทบทวน

คุณสร้างระบบแนะนำแบบผสมผสาน (เช่น 0.6 * CF + 0.4 * CB) และเรียนรู้ชุดเครื่องมือประเมินผล ได้แก่ RMSE สำหรับความแม่นยำของการให้คะแนน Precision@K และ Recall@K สำหรับการดึงคืนข้อมูล และ NDCG@K สำหรับคุณภาพการจัดอันดับ นี่เป็นบทสุดท้ายของหลักสูตรระบบแนะนำ หลักสูตรถัดไป: พื้นฐาน MLOps

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

บทเรียน “ระบบผสมและตัวชี้วัดการประเมิน” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “ระบบผสมและตัวชี้วัดการประเมิน”

การผสานการกรองแบบร่วมมือกับการกรองตามเนื้อหา RMSE, MAE, Precision@K และ Recall@K คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “ระบบผสมและตัวชี้วัดการประเมิน” ใช้เวลานานแค่ไหน

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

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

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

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

  1. การกรองแบบร่วมมือ: อิงผู้ใช้และอิงรายการ
  2. การแยกตัวประกอบเมทริกซ์ด้วย SVD
  3. การกรองตามเนื้อหา
  4. ระบบผสมและตัวชี้วัดการประเมิน
← กลับไปที่ Learn AI with Python