Mesures d'évaluation pour la classification de texte

Apprentissage profond pour le texte avec PyTorch

Shubham Jain

Instructor

Pourquoi les mesures d'évaluation comptent

Projecteur sur les critiques de livres :

  • Imaginez un modèle qui évalue le sentiment de critiques de livres
  • Le modèle affirme qu'un best-seller est mal évalué. Accepte-t-on cela ?
  • Utilisez des mesures d'évaluation

Critique de livre

Apprentissage profond pour le texte avec PyTorch

Évaluer les modèles 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)
Apprentissage profond pour le texte avec PyTorch

Exactitude (Accuracy)

  • Rapport des prédictions correctes sur le total des 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}")
Accuracy: 0.6666666666666666
Apprentissage profond pour le texte avec PyTorch

Au-delà de l'exactitude

  • 10 000 critiques : 9 800 sont positives
    • Un modèle qui prédit toujours « positif » : 98 % d'exactitude
      • Le modèle échoue à classer les critiques négatives

 

  • Précision : confiance lorsqu'une critique est étiquetée négative
  • Rappel : capacité du modèle à repérer les négatives
  • Score F1 : équilibre entre précision et rappel
Apprentissage profond 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"Precision: {prec}") print(f"Recall: {rec}")
Precision: 0.6666666666666666
Recall: 0.5
Apprentissage profond pour le texte avec PyTorch

Précision et rappel

Precision: 0.6666666666666666
Recall: 0.5
  • Précision : 66,66 % prédits correctement comme positifs
  • Rappel : 50 % des positifs repérés
Apprentissage profond pour le texte avec PyTorch

Score F1

  • Harmonise précision et rappel
  • Meilleure mesure pour des 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
Apprentissage profond pour le texte avec PyTorch

Points à considérer

  • Des scores multiclasse peuvent être identiques

    • Peut indiquer une bonne performance du modèle
  • Toujours tenir compte du problème pour interpréter les résultats !

Apprentissage profond pour le texte avec PyTorch

Passons à la pratique !

Apprentissage profond pour le texte avec PyTorch

Preparing Video For Download...