『音による故障予知の教科書たたき台:7.6 評価指標(精度、再現率、F値、AUC)』LLMと一緒に書いてみた—AIが導く研究メモ

7. 機械学習の基本  

7.6 評価指標(精度、再現率、F値、AUC)

分類モデルの良し悪しを判断するには、何をどの程度うまく当てているかを数字で示す評価指標が必要になる。代表的なのが「精度(Precision)」「再現率(Recall)」「F値(F1スコア)」「AUC(曲線下面積)」で、互いに補い合う関係にある。まず直感をつかみやすい順に、どんな意味か、どこに強みと弱みがあるか、どんな場面で使い分けるかを整理する。

精度は「異常と判定した中に、実際の異常がどれだけ含まれているか」を表す割合で、偽警報(本当は正常なのに異常と判定)が多いと下がる。再現率は「実際の異常のうち、どれだけを取りこぼさずに見つけたか」を表す割合で、見逃し(本当は異常なのに正常と判定)が多いと下がる。精度は誤警報の少なさ、再現率は見逃しの少なさの物差しであり、一般に両者はトレードオフの関係にある。[1]

F値(F1スコア)は、精度と再現率のバランスを1つの数で表すための指標で、両者の調和平均で定義される。調和平均を用いるのは、一方が極端に低いと全体の評価を厳しく下げ、両者がバランスよく高いときにのみ高得点になる性質を狙うためである。この「小さい方に敏感」という性質が、精度か再現率のどちらか一方だけが高い状況にペナルティを与え、実運用に適したバランス評価になっている。[2][3][4][5]

AUCは、しきい値を動かしてモデルのふるまいを曲線でならし、曲線の下の面積を1つの数で要約したものを指す。二値分類でよく使うのがROC曲線(真陽性率=再現率を縦、偽陽性率を横にとる)と、その面積であるROC-AUCで、しきい値に依存しない識別力の全体像を把握できる。もう1つはPR曲線(精度を縦、再現率を横)と、その面積であるPR-AUC(平均適合率)で、少数派(陽性=異常)の検出性能に焦点を当てる可視化・要約である。[6][7][8]

ここまでを踏まえて、使い分けの要点を整理する。大量の正常に対して異常が稀な「不均衡データ」では、正解率やROC-AUCが見かけ上良く見えても、肝心の少数派を見逃していることがある。この場面では、精度・再現率・F1、そしてPR曲線とPR-AUCを優先して評価するのが実務の定石で、PR系は少数派(陽性)の検出面に敏感であるため、実態に即した比較がしやすい。一方、クラスのバランスが取れている場合や、陰性側の性能も含めた全体的な識別力を見たいときはROC-AUCも有用である。結論として、「不均衡が大きい→PR(精度・再現率・F1・PR-AUC)を重視、バランスが良い→ROC-AUCも参考」という方針が合理的である。[9][10][7][8][11][6]

精度と再現率の読み方をもう少し具体化する。精度を上げるには偽陽性(誤警報)を減らす必要があり、しきい値を厳しくすると上がりやすいが、その分見逃しが増えて再現率は下がりがちになる。逆に再現率を上げるには見逃しを減らす必要があり、しきい値を緩めるほど上がるが、誤警報が増えて精度は下がりやすい。この関係を1本の曲線で俯瞰できるのがPR曲線で、しきい値調整の実務的なガイドになる。[6][1]

F1スコアは、精度と再現率のどちらか片方が低いと強く引き下げられるため、「見逃しも誤警報も一定水準以下に抑えたい」タスクの一次指標として適する。F1は0〜1の範囲で、1に近いほどバランス良好、0に近いほど不良である。調和平均を採る理由は、精度・再現率の分母が異なる比率を正しく平均するには逆数の世界で平均(すなわち調和平均)が自然であり、また小さい方に強く影響を受ける性質が、偽陽性と偽陰性の双方を等しく重く見る設計に合致するからである。[12][3][5][2]

ROC-AUCとPR-AUCの違いも運用上の重要点だ。ROC曲線は再現率(真陽性率)と偽陽性率の関係を見るため、陰性(正常)が非常に多い環境でも曲線が“きれい”に見えやすい一方、少数派の実務的な検出力を過大評価してしまうことがある。PR曲線は精度と再現率、つまり陽性(異常)側にフォーカスした見え方のため、不均衡での比較・しきい値設計に適する。総じて、陽性の希少クラスを重視するタスク(故障や異常の検出)ではPR曲線とPR-AUCを主参考にするのが妥当で、曲線全体と面積(平均適合率)でモデルを比較し、その上で必要再現率を満たす点から閾値を選ぶのが実務的である。[10][8][11][9][6]

最後に、評価設計の手順をコンパクトにまとめる。1) 何を優先するか(見逃しか誤警報か)を業務側と合意し、必要再現率や許容誤警報の方針を先に決める。2) 不均衡データでは、正解率を主指標にしない。精度・再現率・F1を基本とし、PR曲線とPR-AUCを重視してモデル比較と閾値選定を行う。3) しきい値は固定値ではなく、PR曲線を見ながら「必要再現率の範囲で精度が最も高い点」を候補にする。必要に応じて期待コストや処理能力(許容アラート数)も勘案して最終決定する。4) ROC-AUCは全体識別力の参考指標として併用するが、少数派性能の判断はPR側で最終化する。5) 以上の比較は、独立した検証用データで行い、前処理は訓練データの統計で学んだ変換を検証に適用する(情報漏えい防止)。テストは最後に一度だけ用いて過大評価を避ける。これらを守れば、故障予知の現場でも、見逃しと誤警報のバランスを数に基づいて合理的に調整できる。[8][1][10][6] [1] https://developers.google.com/machine-learning/crash-course/classification/accuracy-precision-recall

[2] https://www.picsellia.com/post/understanding-the-f1-score-in-machine-learning-the-harmonic-mean-of-precision-and-recall

[3] https://stackoverflow.com/questions/26355942/why-is-the-f-measure-a-harmonic-mean-and-not-an-arithmetic-mean-of-the-precision

[4] https://en.wikipedia.org/wiki/F-score

[5] https://scikit-learn.org/stable/modules/generated/sklearn.metrics.f1_score.html

[6] https://neptune.ai/blog/f1-score-accuracy-roc-auc-pr-auc

[7] https://blog.alliedoffsets.com/boost-your-binary-classification-game-auc-roc-vs-auc-pr-which-one-should-you-use

[8] https://developers.google.com/machine-learning/crash-course/classification/roc-and-auc

[9] https://aicompetence.org/auc-vs-precision-recall-curve-imbalanced-datasets/

[10] https://journals.plos.org/plosone/article?id=10.1371%2Fjournal.pone.0118432

[11] https://machinelearningmastery.com/roc-curves-and-precision-recall-curves-for-imbalanced-classification/

[12] https://arize.com/blog-course/f1-score/

[13] https://www.deepchecks.com/f1-score-accuracy-roc-auc-and-pr-auc-metrics-for-models/

[14] https://www.sciencedirect.com/science/article/pii/S2666389924001090

[15] https://www.kaggle.com/general/7517

[16] https://atmarkit.itmedia.co.jp/ait/articles/2212/05/news018.html

[17] https://coralogix.com/ai-blog/ultimate-guide-to-pr-auc-calculations-uses-and-limitations/

[18] https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4655233

[19] https://www.reddit.com/r/learnmath/comments/wnqsw6/machine_learning_cant_understand_f1_score_is/

[20] https://www.v7labs.com/blog/f1-score-guide

※本ページは、AIの活用や研究に関連する原理・機器・デバイスについて学ぶために、個人的に整理・記述しているものです。内容には誤りや見落としが含まれている可能性もありますので、もしお気づきの点やご助言等ございましたら、ご連絡いただけますと幸いです。

※本ページの内容は、個人的な学習および情報整理を目的として提供しているものであり、その正確性、完全性、有用性等についていかなる保証も行いません。本ページの情報を利用したこと、または利用できなかったことによって発生した損害(直接的・間接的・特別・偶発的・結果的損害を含みますが、これらに限りません)について、当方は一切責任を負いません。ご利用は利用者ご自身の責任でお願いいたします。

おすすめの記事