Метрики оцінювання для класифікації тексту

Глибоке навчання для тексту з PyTorch

Shubham Jain

Instructor

Чому метрики оцінювання важливі

У фокусі — огляди книжок:

  • Уявіть модель, що визначає тональність оглядів
  • Модель стверджує, що бестселер має погані відгуки. Чи повіримо?
  • Використовуйте метрики оцінювання

Огляд книжки

Глибоке навчання для тексту з PyTorch

Оцінювання моделей 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)
Глибоке навчання для тексту з PyTorch

Точність (Accuracy)

  • Частка правильних передбачень серед усіх передбачень
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
Глибоке навчання для тексту з PyTorch

Поза точністю

  • 10 000 оглядів: 9 800 позитивних
    • Модель завжди прогнозує «позитивно»: 98% точності
      • Модель не розпізнає негативні огляди

 

  • Precision: упевненість у мітці «негативний»
  • Recall: як добре модель знаходить негативні огляди
  • F1 Score: баланс між precision і recall
Глибоке навчання для тексту з PyTorch

Precision і Recall

  • Precision: правильно передбачені позитивні / усі передбачені як позитивні
  • Recall: правильно передбачені позитивні / усі об'єкти позитивного класу
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
Глибоке навчання для тексту з PyTorch

Precision і Recall

Precision: 0.6666666666666666
Recall: 0.5
  • Precision: 66,66% вірно позначених як позитивні
  • Recall: виявлено 50% позитивів
Глибоке навчання для тексту з PyTorch

F1-міра

  • Узгоджує precision і recall
  • Краще мірило для незбалансованих класів
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: ідеальні precision та recall
  • F1 Score = 0: найгірша якість
Глибоке навчання для тексту з PyTorch

Зауваги

  • Оцінки для кількох класів можуть збігатися

    • Це може свідчити про добру роботу моделі
  • Завжди враховуйте постановку задачі, тлумачачи результати!

Глибоке навчання для тексту з PyTorch

Давайте потренуємось!

Глибоке навчання для тексту з PyTorch

Preparing Video For Download...