Metin sınıflandırmada değerlendirme metrikleri

PyTorch ile Metin için Deep Learning

Shubham Jain

Instructor

Değerlendirme metrikleri neden önemli

Kitap Yorumlarına Odaklanma:

  • Kitap yorumlarının duygusunu değerlendiren bir modeli hayal edin
  • Model, çok satan bir romanın kötü yorumlandığını söylüyor. Bunu kabul eder miyiz?
  • Değerlendirme metriklerini kullanın

Kitap yorumu

PyTorch ile Metin için Deep Learning

RNN Modellerini Değerlendirme

# 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)
PyTorch ile Metin için Deep Learning

Doğruluk (Accuracy)

  • Doğru tahminlerin toplam tahminlere oranı
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
PyTorch ile Metin için Deep Learning

Doğruluğun ötesinde

  • 10.000 yorum: 9.800’ü pozitif
    • Hep pozitif diyen bir model: %98 doğruluk
      • Model negatif yorumları ayırt edemedi

 

  • Kesinlik: bir yorumu negatif etiketlerken güven düzeyi
  • Duyarlılık: modelin negatif yorumları yakalama başarısı
  • F1 skoru: kesinlik ve duyarlılık dengesi
PyTorch ile Metin için Deep Learning

Kesinlik ve Duyarlılık

  • Kesinlik (Precision): doğru pozitif tahminler / tüm pozitif tahminler
  • Duyarlılık (Recall): doğru pozitif tahminler / pozitif sınıftaki tüm örnekler
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
PyTorch ile Metin için Deep Learning

Kesinlik ve Duyarlılık

Precision: 0.6666666666666666
Recall: 0.5
  • Kesinlik (Precision): pozitifi doğru işaretleme oranı %66,66
  • Duyarlılık (Recall): pozitiflerin %50’sini yakaladı
PyTorch ile Metin için Deep Learning

F1 skoru

  • Kesinlik ve duyarlılığı dengeler
  • Dengesiz sınıflar için daha iyi ölçüt
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 skoru 1 ise: kesinlik ve duyarlılık mükemmel
  • F1 skoru 0 ise: performans en kötü
PyTorch ile Metin için Deep Learning

Dikkat edilmesi gerekenler

  • Çok sınıflı skorlar aynı olabilir

    • İyi model performansını gösterebilir
  • Yorumlarken her zaman problemi göz önünde bulundurun!

PyTorch ile Metin için Deep Learning

Hadi pratik yapalım!

PyTorch ile Metin için Deep Learning

Preparing Video For Download...