評価メトリック

データセットは 2 つに分割されています (トレーニング用セットとテスト用セット)。 トレーニング セットはモデルのトレーニングに使用され、テスト セットはトレーニング後のモデルのテストとして使用され、モデルのパフォーマンスと評価が計算されます。 テスト セットは、トレーニング プロセスを通じてモデルに導入されることはなく、新しいデータでモデルがテストされることを確認します。

モデルの評価は、トレーニングが正常に完了した後に自動的にトリガーされます。 評価プロセスでは、トレーニング済みモデルを使い、テスト セット内のドキュメントのユーザー定義クラスを予測することから始まり、指定されたデータ タグ (真実のベースラインを確立するもの) との比較を行います。 その結果が返されるので、モデルのパフォーマンスを確認することができます。 カスタム テキスト分類の評価には、次のメトリックを使用します。

  • 精度: モデルの精密さと正確さを測定します。 これは、正しく識別された陽性 (真陽性) と識別されたすべての陽性との比率です。 精度メトリックによって、予測クラスのうち、正しくラベル付けされている数が明らかになります。

    Precision = #True_Positive / (#True_Positive + #False_Positive)

  • リコール: 実際の陽性クラスを予測するモデルの能力を測定します。 これは、予測された真陽性と実際にタグ付けされたものとの比率です。 リコール メトリックによって、予測クラスのうち、正しいものの数が明らかになります。

    Recall = #True_Positive / (#True_Positive + #False_Negatives)

  • F1 スコア: F1 スコアは、精度とリコールの関数です。 精度とリコールのバランスを取るときに必要です。

    F1 Score = 2 * Precision * Recall / (Precision + Recall)

Note

精度、リコール、F1 スコアは、各クラスについては個別に計算され ("クラスレベル" の評価)、モデルについてはまとめて計算されます ("モデルレベル" の評価)。

モデルレベルとクラスレベルの評価メトリック

精度、リコール、評価の定義は、クラスレベルとモデルレベルのどちらの評価でも同じです。 ただし、次の例に示すように、"真陽性"、"擬陽性"、"擬陰性" の数は異なります。

以下のセクションでは、次のデータセット例を使用します。

ドキュメント 実際のクラス 予測クラス
1 アクション、コメディ コメディ
2 action action
3 ロマンス ロマンス
4 ロマンス、コメディ ロマンス
5 コメディ action

"アクション" クラスのクラスレベル評価

Key Count 説明
真陽性 1 ドキュメント 2 は正しく "アクション" に分類されました。
偽陽性 1 ドキュメント 5 は誤って "アクション" に分類されました。
偽陰性 1 ドキュメント 1 は "アクション" に分類されるべきでしたが、そうなりませんでした。

精度 = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 1) = 0.5

リコール = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5

F1 スコア = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.5 * 0.5) / (0.5 + 0.5) = 0.5

"コメディ" クラスのクラスレベル評価

Key Count 説明
真陽性 1 ドキュメント 1 は正しく "コメディ" に分類されました。
偽陽性 0 誤って "コメディ" に分類されたドキュメントはありませんでした。
偽陰性 2 ドキュメント 5 と 4 は "コメディ" に分類されるべきでしたが、そうなりませんでした。

精度 = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 0) = 1

リコール = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 2) = 0.33

F1 スコア = 2 * Precision * Recall / (Precision + Recall) = (2 * 1 * 0.67) / (1 + 0.67) = 0.80

集合モデルのモデル レベルの評価

Key Count 説明
真陽性 4 ドキュメント 1、2、3、4 は、予測時に正しいクラスが指定されました。
偽陽性 1 ドキュメント 5 は、予測時に間違ったクラスが指定されました。
偽陰性 2 ドキュメント 1 と 4 は、予測時にすべての正しいクラスが指定されませんでした。

精度 = #True_Positive / (#True_Positive + #False_Positive) = 4 / (4 + 1) = 0.8

リコール = #True_Positive / (#True_Positive + #False_Negatives) = 4 / (4 + 2) = 0.67

F1 スコア = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.8 * 0.67) / (0.8 + 0.67) = 0.73

Note

単一ラベル分類モデルの場合、偽陰性と擬陽性の数は常に等しくなります。 カスタム単一ラベル分類モデルの場合、各ドキュメントに対して常に 1 つのクラスが予測されます。 予測が正しくない場合、予測クラスの FP 数が 1 つ増え、実際のクラスの FN 数が 1 つ増えますが、モデル全体の FP と FN の数は常に等しくなります。 これは、マルチラベル分類には当てはまりません。ドキュメントのクラスのいずれかを予測できなかった場合は、擬陰性としてカウントされるためです。

クラスレベルの評価メトリックの解釈

それでは、特定のクラスに対する精度またはリコールが高いというのは、実際にはどのような意味なのでしょうか。

呼び戻し Precision 解釈
このクラスは、このモデルによって完全に処理されます。
このクラスは、このモデルによって予測されないことがありますが、実行される場合は信頼度は高くなります。 これは、このクラスがデータセット内に少数しか存在しないことが原因の可能性があるため、データ分布のバランスを取ることを検討してください。
このモデルを使用すると、このクラスを適切に予測できますが、信頼度は低くなります。 これは、このクラスがデータセット内に多数存在することが原因の可能性があるため、データ分布のバランスを取ることを検討してください。
このクラスは、このモデルによって適切に処理されません。通常は予測されず、されたとしても信頼度は高くありません。

カスタム テキスト分類モデルでは、偽陰性と偽陽性の両方が発生することが予想されます。 それぞれがシステム全体にどのような影響するかを考慮し、モデルによって正しい予測が無視されたり、間違った予測が認識されたりするシナリオを慎重に検討する必要があります。 シナリオによっては、"精度" または "リコール" の方がモデルのパフォーマンス評価に適している可能性があります。

たとえば、テクニカル サポートのチケットの処理に関するシナリオの場合、間違ったクラスを予測すると、間違った部門やチームに転送される可能性があります。 この例では、システムを擬陽性に対する感度を高めることを検討する必要があり、評価には精度がより適したメトリックとなります。

もう 1 つの例として、メールを "重要" と "スパム" に分類するシナリオの場合、誤った予測で "スパム" とラベルが付けられると、有益なメールを見逃す可能性があります。 一方、スパム メールに "重要" とラベルが付けられた場合は、無視できます。 この例では、システムを偽陰性に対する感度を高めることを検討する必要があり、評価にはリコールがより適したメトリックとなります。

汎用的なシナリオに最適化する場合や、精度とリコールの両方が重要な場合は、F1 スコアを利用できます。 評価スコアは、シナリオや受け入れ基準に応じた主観的なものです。 すべてのシナリオに通用する絶対的な評価メトリックはありません。

ガイダンス

モデルをトレーニングした後、モデルを改善する方法に関するいくつかのガイダンスと推奨事項が表示されます。 ガイダンス セクションのすべてのポイントをカバーするモデルを作成することをお勧めします。

  • トレーニング セットに十分なデータがある: クラス型のラベル付きインスタンスがトレーニング データ内に 15 個未満の場合、これらのケースでモデルが適切にトレーニングされないため、精度が低下することがあります。

  • すべてのクラス型がテスト セットに存在する: テスト データにクラス型のラベル付きインスタンスがない場合、テストされていないシナリオにより、モデルのテスト パフォーマンスの包括性が低下することがあります。

  • クラス型はトレーニング セットとテスト セット内でバランスを取る: サンプリング バイアスによってクラス型の頻度が不正確になった場合、モデルで予期されるクラス型の発生数が多すぎるか、少なすぎるため、モデルの精度が低下することがあります。

  • クラス型がトレーニング セットとテスト セットで均等に分散されている: クラス型の組み合わせがトレーニング セットとテスト セットで一致しない場合、モデルのトレーニング方法とテスト方法が異なるためにテスト精度が低下することがあります。

  • トレーニング セット内のクラス型が明確に区別されている: トレーニング データが複数のクラス型に似ている場合は、クラス型が頻繁に相互に誤って分類される可能性があるため、精度が低下することがあります。

混同行列

重要

混同行列は、複数ラベルの分類プロジェクトでは使用できません。 混同行列は、モデルのパフォーマンスの評価に使用される N x N 行列であり、N はクラスの数です。 この行列によって、予測されるラベルとモデルによって予測されたものが比較されます。 これにより、モデルのパフォーマンスと、発生しているエラーの種類を、全体的に把握できます。

混同行列を使用すると、互いに近すぎて、誤りが発生しやすい (あいまいな) クラスを識別できます。 この場合は、これらのクラスをまとめて結合することを検討します。 それができない場合は、モデルで両者を区別できるよう、両方のクラスを使用してより多くのドキュメントにラベル付けすることを検討します。

正しい予測はすべてテーブルの対角線に配置されるため、予測エラーがないかテーブルを視覚的に調べるのは簡単です。それらは対角線外の値で表されるためです。

A screenshot of an example confusion matrix.

混同行列からクラス レベルとモデル レベルの評価メトリックを計算できます。

  • 斜線の付いている値は、各クラスの "真陽性" の値です。
  • クラスの行の値の合計は (斜線を除く)、モデルの "擬陽性" です。
  • クラスの列の値の合計は (斜線を除く)、モデルの "擬陰性" です。

同様に、

  • モデルの "真陽性" は、すべてのクラスの "真陽性" の合計です。
  • モデルの "擬陽性" は、すべてのクラスの "擬陽性" の合計です。
  • モデルの "擬陰性" は、すべてのクラスの "擬陰性" の合計です。

次のステップ