Utvärderingsmått för textklassificering

Djupinlärning för text med PyTorch

Shubham Jain

Instructor

Varför utvärderingsmått är viktiga

Bokrecensioner i fokus:

  • Tänk dig en modell som bedömer sentimentet i bokrecensioner
  • Modellen påstår att en bästsäljare har fått dåliga recensioner. Ska vi acceptera det?
  • Använd utvärderingsmått

Bokrecension

Djupinlärning för text med PyTorch

Utvärdera RNN-modeller

# 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)
Djupinlärning för text med PyTorch

Noggrannhet

  • Andelen korrekta förutsägelser av det totala antalet förutsägelser
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
Djupinlärning för text med PyTorch

Bortom noggrannhet

  • 10 000 recensioner: 9 800 är positiva
    • En modell som alltid förutsäger positivt: 98 % noggrannhet
      • Modellen misslyckas med att klassificera negativa recensioner

 

  • Precision: säkerheten i att märka en recension som negativ
  • Recall: hur väl modellen hittar negativa recensioner
  • F1-poäng: balansen mellan precision och recall
Djupinlärning för text med PyTorch

Precision och Recall

  • Precision: korrekt förutsagda positiva observationer / totalt förutsagda positiva
  • Recall: korrekt förutsagda positiva observationer / alla observationer i den positiva klassen
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
Djupinlärning för text med PyTorch

Precision och Recall

Precision: 0.6666666666666666
Recall: 0.5
  • Precision: 66,66 % korrekt förutsagda som positiva
  • Recall: fångade 50 % av de positiva
Djupinlärning för text med PyTorch

F1-poäng

  • Harmoniserar precision och recall
  • Bättre mått vid obalanserade klasser
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-poäng på 1 = perfekt precision och recall
  • F1-poäng på 0 = sämsta möjliga prestanda
Djupinlärning för text med PyTorch

Att tänka på

  • Värden för flera klasser kan vara identiska

    • Det kan tyda på god modellprestanda
  • Ta alltid hänsyn till problemet när du tolkar resultaten!

Djupinlärning för text med PyTorch

Nu kör vi en övning!

Djupinlärning för text med PyTorch

Preparing Video For Download...