Metriche di valutazione per la classificazione di testi

Deep Learning per il testo con PyTorch

Shubham Jain

Instructor

Perché le metriche contano

Focus sulle recensioni di libri:

  • Immagina un modello che valuta il sentiment delle recensioni
  • Il modello dice che un bestseller ha recensioni pessime. Lo accettiamo?
  • Usa le metriche di valutazione

Recensione di un libro

Deep Learning per il testo con PyTorch

Valutare modelli 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 per il testo con PyTorch

Accuratezza

  • Rapporto tra previsioni corrette e previsioni totali
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 per il testo con PyTorch

Oltre l'accuratezza

  • 10.000 recensioni: 9.800 sono positive
    • Un modello che predice sempre positivo: accuratezza 98%
      • Il modello non classifica le negative

 

  • Precision: quanto ti puoi fidare quando etichetti una recensione come negativa
  • Recall: quanto bene il modello individua le recensioni negative
  • F1 Score: equilibrio tra precision e recall
Deep Learning per il testo con PyTorch

Precision e Recall

  • Precision: positivi corretti / tutti i positivi previsti
  • Recall: positivi corretti / tutti i casi della classe positiva
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 per il testo con PyTorch

Precision e Recall

Precision: 0.6666666666666666
Recall: 0.5
  • Precision: 66,66% previsti correttamente come positivi
  • Recall: ha catturato il 50% dei positivi
Deep Learning per il testo con PyTorch

F1 score

  • Armonizza precision e recall
  • Misura migliore con classi sbilanciate
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 di 1 = precision e recall perfette
  • F1 Score di 0 = prestazioni peggiori
Deep Learning per il testo con PyTorch

Considerazioni

  • I punteggi multiclasse possono essere identici

    • Può indicare buone prestazioni del modello
  • Considera sempre il problema quando interpreti i risultati!

Deep Learning per il testo con PyTorch

Esercitiamoci!

Deep Learning per il testo con PyTorch

Preparing Video For Download...