テキスト分類の評価指標

PyTorch で学ぶテキストの Deep Learning

Shubham Jain

Instructor

評価指標が重要な理由

書評に注目:

  • 書評の感情を判定するモデルを想定
  • ベストセラーを「低評価」と判定。受け入れるべきか?
  • 評価指標で検証

書評

PyTorch で学ぶテキストの Deep Learning

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 で学ぶテキストの Deep Learning

正解率(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 で学ぶテキストの Deep Learning

正解率だけでは不十分

  • 1万件中9,800件が肯定的
    • 常に肯定と予測すると正解率98%
      • ただし否定的レビューは分類不能

 

  • 適合率: 否定と判定した確からしさ
  • 再現率: 否定レビューの見逃しの少なさ
  • F1: 適合率と再現率のバランス
PyTorch で学ぶテキストの Deep Learning

適合率と再現率

  • 適合率: 正と予測した中で正解 / 予測した正の総数
  • 再現率: 正例中の正解 / 正例の総数
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 で学ぶテキストの Deep Learning

適合率と再現率

Precision: 0.6666666666666666
Recall: 0.5
  • Precision: 正例と予測された中で正解は66.66%
  • Recall: 正例全体のうち50%を検出
PyTorch で学ぶテキストの Deep Learning

F1スコア

  • 適合率と再現率を調和
  • 不均衡データで有効な指標
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=1 は適合率・再現率とも完全
  • F1=0 は最悪
PyTorch で学ぶテキストの Deep Learning

考慮点

  • マルチクラスで同じスコアになることがある

    • 良好な性能を示す場合がある
  • 解釈は常に課題設定に依存

PyTorch で学ぶテキストの Deep Learning

Ayo berlatih!

PyTorch で学ぶテキストの Deep Learning

Preparing Video For Download...