Chỉ số đánh giá cho phân loại văn bản

Deep Learning cho Văn bản với PyTorch

Shubham Jain

Instructor

Vì sao chỉ số đánh giá quan trọng

Tập trung vào đánh giá sách:

  • Hãy hình dung mô hình phân tích cảm xúc bài đánh giá sách
  • Mô hình cho rằng tiểu thuyết bán chạy bị đánh giá kém. Có chấp nhận không?
  • Hãy dùng các chỉ số đánh giá

Đánh giá sách

Deep Learning cho Văn bản với PyTorch

Đánh giá mô hình RNN

# 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 cho Văn bản với PyTorch

Độ chính xác (Accuracy)

  • Tỷ lệ dự đoán đúng trên tổng số dự đoán
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 cho Văn bản với PyTorch

Vượt ra ngoài accuracy

  • 10.000 đánh giá: 9.800 là tích cực
    • Mô hình luôn dự đoán tích cực: chính xác 98%
      • Mô hình không phát hiện đánh giá tiêu cực

 

  • Precision: mức tin cậy khi gán nhãn tiêu cực
  • Recall: mô hình phát hiện tiêu cực tốt đến đâu
  • F1: cân bằng giữa precision và recall
Deep Learning cho Văn bản với PyTorch

Precision và Recall

  • Precision: dương tính dự đoán đúng / tổng dương tính dự đoán
  • Recall: dương tính dự đoán đúng / tổng mẫu thuộc lớp dương tính
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 cho Văn bản với PyTorch

Precision và Recall

Precision: 0.6666666666666666
Recall: 0.5
  • Precision: 66,66% dự đoán dương tính chính xác
  • Recall: bắt được 50% mẫu dương tính
Deep Learning cho Văn bản với PyTorch

Điểm F1

  • Kết hợp precision và recall
  • Đo lường tốt hơn cho lớp mất cân bằng
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 = 1: precision và recall hoàn hảo
  • F1 = 0: hiệu năng tệ nhất
Deep Learning cho Văn bản với PyTorch

Lưu ý

  • Điểm đa lớp có thể giống nhau

    • Có thể cho thấy mô hình hoạt động tốt
  • Luôn xét theo bài toán khi diễn giải kết quả

Deep Learning cho Văn bản với PyTorch

Ayo berlatih!

Deep Learning cho Văn bản với PyTorch

Preparing Video For Download...