Metriky hodnocení pro klasifikaci textu

Deep Learning for Text with PyTorch

Shubham Jain

Instructor

Proč jsou hodnoticí metriky důležité

Recenze knih v praxi:

  • Představte si model hodnotící sentiment recenzí knih
  • Model označí bestsellerový román za špatně hodnocený. Přijmeme to?
  • Použijte hodnoticí metriky

Recenze knihy

Deep Learning for Text with PyTorch

Hodnocení RNN modelů

# 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 for Text with PyTorch

Přesnost

  • Poměr správných předpovědí k celkovému počtu předpovědí
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 for Text with PyTorch

Nad rámec přesnosti

  • 10 000 recenzí: 9 800 je pozitivních
    • Model vždy předpovídající pozitivní: 98% přesnost
      • Model nedokázal klasifikovat negativní recenze

 

  • Přesnost: spolehlivost označení recenze jako negativní
  • Pokrytí: jak dobře model rozpozná negativní recenze
  • F1 skóre: rovnováha mezi přesností a pokrytím
Deep Learning for Text with PyTorch

Přesnost a pokrytí

  • Přesnost: správně předpovězené pozitivní / celkem předpovězené pozitivní
  • Pokrytí: správně předpovězené pozitivní / všechna pozitivní pozorování
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 for Text with PyTorch

Přesnost a pokrytí

Precision: 0.6666666666666666
Recall: 0.5
  • Přesnost: 66,66 % správně předpovězených pozitivních
  • Pokrytí: zachyceno 50 % pozitivních
Deep Learning for Text with PyTorch

F1 skóre

  • Harmonizuje přesnost a pokrytí
  • Lepší metrika pro nevyvážené třídy
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 skóre 1 = perfektní přesnost a pokrytí
  • F1 skóre 0 = nejhorší výkon
Deep Learning for Text with PyTorch

Poznámky

  • Skóre multiclass modelů mohou být totožná

    • Může indikovat dobrý výkon modelu
  • Při interpretaci výsledků vždy zohledněte problém!

Deep Learning for Text with PyTorch

Pojďme procvičovat!

Deep Learning for Text with PyTorch

Preparing Video For Download...