เมตริกการประเมินสำหรับการจำแนกประเภทข้อความ

Deep Learning สำหรับข้อความด้วย PyTorch

Shubham Jain

Instructor

ทำไมเมตริกการประเมินจึงสำคัญ

โฟกัสที่รีวิวหนังสือ:

  • ลองนึกถึงโมเดลที่วิเคราะห์ความรู้สึกจากรีวิวหนังสือ
  • โมเดลระบุว่านิยายขายดีได้รับรีวิวแย่ เราจะเชื่อได้ไหม?
  • ใช้เมตริกการประเมิน

รีวิวหนังสือ

Deep Learning สำหรับข้อความด้วย PyTorch

การประเมิน RNN Models

# Initialize model, criterion, and optimizer
rnn_model = RNNModel(input_size, hidden_size, num_layers, num_classes)
...
# Model training
for epoch in range(10): 
    outputs = rnn_model(X_train)
    ...
    print(f'Epoch: {epoch+1}, Loss: {loss.item()}')

outputs = rnn_model(X_test) _, predicted = torch.max(outputs, 1)
Deep Learning สำหรับข้อความด้วย PyTorch

Accuracy

  • สัดส่วนของการทำนายที่ถูกต้องต่อการทำนายทั้งหมด
from torchmetrics import Accuracy

actual = torch.tensor([0, 1, 1, 0, 1, 0]) predicted = torch.tensor([0, 0, 1, 0, 1, 1])
accuracy = Accuracy(task="binary", num_classes=2)
acc = accuracy(predicted, actual) print(f"Accuracy: {acc}")
Accuracy: 0.6666666666666666
Deep Learning สำหรับข้อความด้วย PyTorch

เกินกว่า accuracy

  • รีวิว 10,000 รายการ: 9,800 รายการเป็นเชิงบวก
    • โมเดลที่ทำนายว่าบวกเสมอ: accuracy 98%
      • โมเดลล้มเหลวในการจำแนกรีวิวเชิงลบ

 

  • Precision: ความมั่นใจในการระบุรีวิวว่าเป็นเชิงลบ
  • Recall: ความสามารถในการตรวจจับรีวิวเชิงลบ
  • F1 Score: ความสมดุลระหว่าง precision และ recall
Deep Learning สำหรับข้อความด้วย PyTorch

Precision และ Recall

  • Precision: จำนวนการทำนายบวกที่ถูกต้อง / จำนวนการทำนายบวกทั้งหมด
  • Recall: จำนวนการทำนายบวกที่ถูกต้อง / จำนวนข้อมูลในคลาสบวกทั้งหมด
from torchmetrics import Precision, Recall

precision = Precision(task="binary", num_classes=2) recall = Recall(task="binary", num_classes=2)
prec = precision(predicted, actual) rec = recall(predicted, actual)
print(f"Precision: {prec}") print(f"Recall: {rec}")
Precision: 0.6666666666666666
Recall: 0.5
Deep Learning สำหรับข้อความด้วย PyTorch

Precision และ Recall

Precision: 0.6666666666666666
Recall: 0.5
  • Precision: 66.66% ทำนายว่าเป็นบวกได้อย่างถูกต้อง
  • Recall: ตรวจจับค่าบวกได้ 50%
Deep Learning สำหรับข้อความด้วย PyTorch

F1 score

  • สมดุลระหว่าง precision และ recall
  • เหมาะกว่าสำหรับข้อมูลที่ไม่สมดุลระหว่างคลาส
from torchmetrics import F1Score
f1 = F1Score(task="binary", num_classes=2)
f1_score = f1(predicted, actual)
print(f"F1 Score: {f1_score}")
F1 Score: 0.5714285714285715
  • F1 Score เท่ากับ 1 = precision และ recall สมบูรณ์แบบ
  • F1 Score เท่ากับ 0 = ประสิทธิภาพแย่ที่สุด
Deep Learning สำหรับข้อความด้วย PyTorch

ข้อควรพิจารณา

  • ค่าเมตริกใน multiclass อาจเท่ากันได้

    • อาจบ่งชี้ว่าโมเดลทำงานได้ดี
  • ควรพิจารณาลักษณะปัญหาเสมอเมื่อตีความผลลัพธ์!

Deep Learning สำหรับข้อความด้วย PyTorch

มาฝึกกันเถอะ!

Deep Learning สำหรับข้อความด้วย PyTorch

Preparing Video For Download...