Metryki oceny klasyfikacji tekstu

Uczenie głębokie dla tekstu z PyTorch

Shubham Jain

Instructor

Dlaczego metryki oceny są ważne

Recenzje książek w centrum uwagi:

  • Wyobraź sobie model oceniający sentyment recenzji książek
  • Model twierdzi, że bestseller ma złe recenzje. Czy należy to zaakceptować?
  • Stosuj metryki oceny

Recenzja książki

Uczenie głębokie dla tekstu z PyTorch

Ocena modeli 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)
Uczenie głębokie dla tekstu z PyTorch

Dokładność

  • Stosunek poprawnych przewidywań do wszystkich przewidywań
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
Uczenie głębokie dla tekstu z PyTorch

Poza dokładnością

  • 10 000 recenzji: 9 800 jest pozytywnych
    • Model zawsze przewidujący pozytywne: dokładność 98%
      • Model nie klasyfikował recenzji negatywnych

 

  • Precyzja: pewność przy oznaczaniu recenzji jako negatywnej
  • Czułość: jak dobrze model wykrywa recenzje negatywne
  • Wynik F1: równowaga między precyzją a czułością
Uczenie głębokie dla tekstu z PyTorch

Precyzja i czułość

  • Precyzja: poprawnie przewidziane obserwacje pozytywne / wszystkie przewidziane pozytywne
  • Czułość: poprawnie przewidziane obserwacje pozytywne / wszystkie obserwacje pozytywne
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
Uczenie głębokie dla tekstu z PyTorch

Precyzja i czułość

Precision: 0.6666666666666666
Recall: 0.5
  • Precyzja: 66,66% trafnie przewidzianych jako pozytywne
  • Czułość: wykryto 50% przypadków pozytywnych
Uczenie głębokie dla tekstu z PyTorch

Wynik F1

  • Harmonizuje precyzję i czułość
  • Lepsza miara dla niezbalansowanych klas
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 = 1 oznacza idealną precyzję i czułość
  • F1 Score = 0 oznacza najgorszy wynik
Uczenie głębokie dla tekstu z PyTorch

Uwagi

  • Wyniki wieloklasowe mogą być identyczne

    • Może wskazywać na dobrą wydajność modelu
  • Zawsze uwzględniaj problem przy interpretacji wyników!

Uczenie głębokie dla tekstu z PyTorch

Czas na ćwiczenia!

Uczenie głębokie dla tekstu z PyTorch

Preparing Video For Download...