AI-102試験対策のまとめ「Azure AI Languageのカスタムテキスト分類における評価メトリック」

## はじめに
Azure AI Engineer Associate(AI-102)取得に向けた勉強でまとめた内容を本記事では投稿しています。
試験範囲の内容を私が勉強していく中で、
・忘れてしまっていた内容
・他の知識と絡めて理解した方が良い内容
・Microsoft Learnの読解に苦戦した内容
などをできるだけ分かりやすく簡潔にまとめることを意識しています。
Azureの勉強を一から始め、AI-102取得を目指している方の参考になれば幸いです。
※本記事の内容が必ず試験に出るわけではないこと、ご注意ください
※勉強しながら投稿しているため、追加で学んだことがあれば随時投稿内容を更新します。

## 試験対策のまとめ
### Azure AI Languageのカスタムテキスト分類における評価メトリック
#### **評価に使用されるメトリック**
* 精度(Precision)
    - モデルの精密さと正確さを測定
    - 正しく識別された陽性(真陽性)と識別されたすべての陽性との比率
    - `Precision = #True_Positive / (#True_Positive + #False_Positive)`
* 再現性(Recall)
    - 実際の陽性クラスを予測するモデルの能力を測定
    - 予測された真陽性と実際にタグ付けされたものとの比率
    - `Recall = #True_Positive / (#True_Positive + #False_Negatives)`
* F1スコア
    - 精度と再現性の関数
    - 精度と再現性のバランスをとるときに必要
    - `F1 Score = 2 * Precision * Recall / (Precision + Recall)`

#### **モデルレベルとクラスレベルの評価メトリック**
データセット例
| ドキュメント | 実際のクラス | 予測クラス |
| --- | --- | --- |
| 1 | アクション、コメディ | コメディ |
| 2 | アクション | アクション |
| 3 | ロマンス | ロマンス |
| 4 | ロマンス、コメディ | ロマンス |
| 5 | コメディ | アクション |
* **「アクション」** クラスのクラスレベル評価
    | Key | Count | ドキュメント | 説明 |
    | --- | --- | --- | --- |
    | 真陽性(True_Positive) | <span style="color: red">1</span> | 2 | 正しくアクションに分類 |
    | 偽陽性(False_Positive) | <span style="color: blue">1</span> | 5 | 誤ってアクションに分類 |
    | 偽陰性(False_Negatives) | <span style="color: green">1</span> | 1 | アクションに分類されていない |
    - 精度(Precision) = <span style="color: red">1</span> / (<span style="color: red">1</span> + <span style="color: blue">1</span>) = 0.5
    - 再現性(Recall) = <span style="color: red">1</span> / (<span style="color: red">1</span> + <span style="color: green">1</span>) = 0.5
    - F1スコア = (2 * 0.5 * 0.5) / (0.5 + 0.5) = 0.5
* **「コメディ」** クラスのクラスレベル評価
    | key | Count | ドキュメント | 説明 |
    | --- | --- | --- | --- |
    | 真陽性(True_Positive) | <span style="color: red">1</span> | 1 | 正しくコメディに分類 |
    | 偽陽性(False_Positive) | <span style="color: blue">0</span> | - | 誤ってコメディに分類したものは無い |
    | 偽陰性(False_Negatives) | <span style="color: green">2</span> | 4,5 | コメディに分類されていない |
    - 精度(Precision) = <span style="color: red">1</span> / (<span style="color: red">1</span> + <span style="color: blue">0</span>) = 1
    - 再現性(Recall) = <span style="color: red">1</span> / (<span style="color: red">1</span> + <span style="color: green">2</span>) = 0.33
    - F1スコア = (2 * 1 * 0.33) / (1 + 0.33) = 0.5
* **「集合モデル」** のモデルレベル評価
    | key | Count | ドキュメント | 説明 |
    | --- | --- | --- | --- |
    | 真陽性(True_Positive) | <span style="color: red">4</span> | 1,2,3,4 | 正しいクラスを予測 |
    | 偽陽性(False_Positive) | <span style="color: blue">1</span> | 5 | 誤ったクラスを予測 |
    | 偽陰性(False_Negatives) | <span style="color: green">2</span> | 1,4 | 正しいクラスをすべて予測できていない |
    - 精度(Precision) = <span style="color: red">4</span> / (<span style="color: red">4</span> + <span style="color: blue">1</span>) = 0.8
    - 再現性(Recall) = <span style="color: red">4</span> / (<span style="color: red">4</span> + <span style="color: green">2</span>) = 0.67
    - F1スコア = (2 * 0.8 * 0.67) / (0.8 + 0.67) = 0.73


* 参考
    - https://learn.microsoft.com/ja-jp/azure/ai-services/language-service/custom-text-classification/concepts/evaluation-metrics

## 次の試験対策のまとめ
* **AI-102試験対策のまとめ「Azure AI Video Indexerで大容量ビデオのインデックス作成時の注意点」**

https://qiita.com/fsd-jume/items/8cb3c8faed773806b4ab

## 学習内容をまとめたページの一覧

https://qiita.com/fsd-jume/items/65aba5d5514e023fd66d