Metrici de evaluare pentru clasificarea textului

Deep Learning pentru text cu PyTorch

Shubham Jain

Instructor

De ce contează metricile de evaluare

Studiu de caz: recenzii de cărți:

  • Un model evaluează sentimentul recenziilor de cărți
  • Modelul susține că un bestseller are recenzii negative. Acceptăm aceasta?
  • Utilizați metrici de evaluare

Recenzie de carte

Deep Learning pentru text cu PyTorch

Evaluarea modelelor 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 pentru text cu PyTorch

Acuratețe

  • Raportul dintre predicțiile corecte și totalul predicțiilor
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 pentru text cu PyTorch

Dincolo de acuratețe

  • 10.000 recenzii: 9.800 sunt pozitive
    • Un model care prezice mereu pozitiv: 98% acuratețe
      • Modelul nu a clasificat recenziile negative

 

  • Precizie: încrederea în etichetarea unei recenzii ca negativă
  • Recall: cât de bine identifică modelul recenziile negative
  • Scorul F1: echilibru între precizie și recall
Deep Learning pentru text cu PyTorch

Precizie și Recall

  • Precizie: observații pozitive corect prezise / total pozitive prezise
  • Recall: observații pozitive corect prezise / toate observațiile din clasa pozitivă
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 pentru text cu PyTorch

Precizie și Recall

Precision: 0.6666666666666666
Recall: 0.5
  • Precizie: 66,66% predicții pozitive corecte
  • Recall: a capturat 50% din pozitivele reale
Deep Learning pentru text cu PyTorch

Scorul F1

  • Armonizează precizia și recall-ul
  • Măsură mai bună pentru clase dezechilibrate
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 de 1 = precizie și recall perfecte
  • F1 Score de 0 = performanță minimă
Deep Learning pentru text cu PyTorch

Considerații

  • Scorurile multiclasă pot fi identice

    • Poate indica o performanță bună a modelului
  • Luați întotdeauna în considerare contextul problemei!

Deep Learning pentru text cu PyTorch

Să exersăm!

Deep Learning pentru text cu PyTorch

Preparing Video For Download...