การประเมินโมเดลแบบหลายคลาส
มาประเมินตัวจำแนกประเภทเมฆด้วย precision และ recall เพื่อดูว่าโมเดลจำแนกเมฆทั้ง เจ็ด ประเภทได้ดีแค่ไหน ในงาน classification แบบหลายคลาส วิธีการเฉลี่ยคะแนนข้ามคลาสมีความสำคัญมาก ซึ่งมีอยู่ 4 แนวทาง ได้แก่:
- ไม่เฉลี่ย แต่วิเคราะห์ผลลัพธ์แยกตามแต่ละคลาส
- Micro-averaging คำนวณ metric โดยรวมจากทุกตัวอย่างโดยไม่แยกคลาส
- Macro-averaging คำนวณ metric แยกตามคลาส แล้วนำมาเฉลี่ย
- Weighted-averaging คล้ายกับ macro แต่ถ่วงน้ำหนักการเฉลี่ยตามขนาดของแต่ละคลาส
Precision และ Recall ถูก import จาก torchmetrics ไว้แล้ว ได้เวลาดูกันว่าโมเดลของเราทำงานได้ดีเพียงใด!
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Learning ระดับกลางด้วย PyTorch
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Define metrics
metric_precision = Precision(task=____, num_classes=____, average=____)
metric_recall = ____
net.eval()
with torch.no_grad():
for images, labels in dataloader_test:
outputs = net(images)
_, preds = torch.max(outputs, 1)
metric_precision(preds, labels)
metric_recall(preds, labels)
precision = metric_precision.compute()
recall = metric_recall.compute()
print(f"Precision: {precision}")
print(f"Recall: {recall}")