Mesures d’évaluation pour la classification de texte

Deep Learning pour le texte avec PyTorch

Shubham Jain

Instructor

Pourquoi les métriques d'évaluation sont importantes

"Focus sur les critiques de livres :

  • Imaginez un modèle qui évalue le sentiment des critiques de livres
  • Le modèle affirme qu’un roman à succès est mal évalué. Acceptons-nous cela ?
  • Utilisez des métriques d’évaluation

    Critique de livre{{1}}"

Deep Learning pour le texte avec PyTorch

Évaluation des modèles RNN

"`python

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'Époque : {epoch+1}, Perte : {loss.item()}') `

----CODE_GLUE---- `python

outputs = rnn_model(X_test) _, predicted = torch.max(outputs, 1) `{{1}}"

Deep Learning pour le texte avec PyTorch

Précision

"- Le rapport entre le nombre de prédictions correctes et le nombre total de prédictions

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}\")

out Précision : 0.6666666666666666{{5}}"

Deep Learning pour le texte avec PyTorch

Au-delà de la précision

"- 10 000 avis : 9 800 sont positifs

  - Un modèle qui prédit toujours positif : 98 % de précision
  • Le modèle n’a pas réussi à classer les avis négatifs
  • Précision : confiance dans l’étiquetage d’un avis comme négatif
  • Rappel : capacité du modèle à repérer les avis négatifs
  • Score F1 : équilibre entre précision et rappel {{5}}"
Deep Learning pour le texte avec PyTorch

Précision et rappel

"- Précision : observations positives correctement prédites / total des positifs prédits

  • Rappel : observations positives correctement prédites / toutes les observations de la classe positive
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\"Précision : {prec}\") print(f\"Rappel : {rec}\")

out Précision : 0,6666666666666666 Rappel : 0.5{{4}}"

Deep Learning pour le texte avec PyTorch

Précision et rappel

"out Précision : 0,6666666666666666 Rappel : 0,5

  • Précision : 66,66 % correctement prédits comme positifs
  • Rappel : 50 % des positifs capturés{{2}}"
Deep Learning pour le texte avec PyTorch

Score F1

"- Harmonise la précision et le rappel

  • Meilleure mesure pour les classes déséquilibrées
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
  • Score F1 de 1 = précision et rappel parfaits
  • Score F1 de 0 = pire performance {{4}}"
Deep Learning pour le texte avec PyTorch

Considérations

"- Les noyaux multiclasse peuvent être identiques

  • Peut indiquer de bonnes performances du modèle
  • Toujours prendre en compte le problème lors de l’interprétation des résultats !{{2}}"
Deep Learning pour le texte avec PyTorch

Passons à la pratique !

Deep Learning pour le texte avec PyTorch

Preparing Video For Download...