適合率と再現率とは何か?
一言でいうと、適合率は「判定の当たりの確かさ」、再現率は「取りこぼしの少なさ」を表す指標です。どちらも、分類モデル(異常か正常か、不良か良品か、など)の性能を測るのに使います。
IoT の異常検知でいえば、アラートを出したときに本当に異常である割合が適合率、実際に起きた異常のうちアラートで捉えられた割合が再現率です。scikit-learn の公式ドキュメントでも、適合率は「負のものを正と判定しない能力」、再現率は「正のものをすべて見つける能力」として説明されています。
混同行列と各指標の式はどうなっているのか?
判定の結果は、実際の状態と判定の組み合わせで4つに分かれます。これを表にしたものを混同行列と呼びます。ここでは「異常」を見つけたい対象(陽性)とします。
- 適合率=TP÷(TP+FP)。分母は「判定:異常」の列。アラートのうち当たりだった割合。
- 再現率=TP÷(TP+FN)。分母は「実際:異常」の行。本当の異常のうち捉えた割合。
- F値=2×適合率×再現率÷(適合率+再現率)。二つの調和平均。
- 正解率=(TP+TN)÷全体。正常・異常を問わず判定が合っていた割合。
| 判定:異常 | 判定:正常 | |
|---|---|---|
| 実際:異常 | TP(真陽性):正しく異常と判定 | FN(偽陰性):見逃し |
| 実際:正常 | FP(偽陽性):誤検知(空振り) | TN(真陰性):正しく正常と判定 |
各指標の式は次のとおりです。分母に何が入るかを、表のどの行・列かで覚えると取り違えにくくなります。
POINT
適合率と再現率は、多くの場合どちらかを上げるともう一方が下がる関係にあります。判定のしきい値を下げてアラートを出しやすくすると、見逃しは減りますが空振りが増えます。
異常検知の数値例で計算するとどうなるか?
独自の数値例で計算します。設備の1,000回分の稼働記録のうち、実際に異常だったのは20回です。あるモデルは25回を「異常」と判定し、そのうち15回が本当の異常でした。
TP=15、FP=10、FN=5、TN=970(1,000回の判定)
- 1適合率 = TP÷(TP+FP)= 15÷25 = 0.60
- 2再現率 = TP÷(TP+FN)= 15÷20 = 0.75
- 3F値 = 2×0.60×0.75÷(0.60+0.75)= 0.90÷1.35
- 4正解率 =(15+970)÷1,000 = 0.985
F値 ≒ 0.67
数値は当サイトの架空の例です。
| 判定:異常 | 判定:正常 | 計 | |
|---|---|---|---|
| 実際:異常 | TP=15 | FN=5 | 20 |
| 実際:正常 | FP=10 | TN=970 | 980 |
| 計 | 25 | 975 | 1,000 |
適合率は 15÷25=0.60、再現率は 15÷20=0.75、F値は 2×0.60×0.75÷(0.60+0.75)=0.90÷1.35≒0.67 です。正解率は(15+970)÷1,000=0.985 になります。
ここで、何も考えずに全部を「正常」と判定するモデルを考えると、正解率は 980÷1,000=0.98 と、上のモデルとほとんど変わりません。しかし異常を一つも捉えていないので、再現率は 0÷20=0 です。異常が少ないデータでは正解率が高く見えやすいため、適合率と再現率を合わせて見る必要があります。
どちらを重視するかは、見逃しと空振りのどちらの損失が大きいかで決まります。重大な故障を見逃すと損害が大きい設備なら再現率を重視し、アラートのたびに作業員が出動する費用が大きいなら適合率も重視します。この考え方は予知保全とはの運用とも直結します。
異常と判定した集団:合計 25
- 本当に異常(TP):15 / 25(60%)
- 正常だった(FP):10 / 25(40%)
実際に異常だった集団:合計 20
- 捉えた異常(TP):15 / 20(75%)
- 見逃した異常(FN):5 / 20(25%)
適合率は15/25=60%、再現率は15/20=75%。何を集団にするかを先に確認する。
本文の独自計算例を図示。同じ記録を判定側と実際側から見て、各集団を100%にしたものです。棒の全長で25件と20件の絶対数を比較する図ではありません。
IoT中級ではどの範囲で、どう問われそうか?
MCPC の公式ページでは、IoTシステム技術検定 中級(80問・90分・4者択一)の出題カテゴリとして「IoTデータ活用技術(AI、ビッグデータ分析、活用事例)」が示され、比率は25〜30%です。当サイトでは、公式テキスト『IoT技術テキスト 第4版』の第3章「IoTデータ活用技術」がこの範囲に当たると推定しています(章名からの当サイトの判断です)。
4択では次のような型が考えられます。出題頻度は公表されていません。
- 計算:混同行列の数値から、適合率・再現率・F値を求めさせる。
- 定義の区別:「判定したもののうち」と「実際のもののうち」の説明を取り違えた選択肢を見抜かせる。
- 指標の選び方:見逃しを減らしたい場面で重視する指標を選ばせる。
- 正解率の落とし穴:偏ったデータで正解率だけを根拠にした記述を不適切として選ばせる。
分類という課題そのものは機械学習の種類で、画像の判定などに使われる手法はディープラーニングとはで扱っています。試験の形式はIoTシステム技術検定 中級とはへ。
どこで取り違えやすいのか?
計算問題は、分母を選び間違えると選択肢に用意された誤答にそのまま当たります。次の表で確かめてください。
- 上のモデル:正解率0.985
- 全部「正常」:正解率0.98
- 上のモデル:再現率0.75
- 全部「正常」:再現率0
異常が少ないデータでは正解率が高く見えやすい。何件の異常を捉えたかを再現率で確かめる。
数値は当サイトの架空の例(1,000回中、実際の異常20回)です。
| 取り違え | 正しい考え方 | 確認する問い |
|---|---|---|
| 適合率と再現率の分母を逆にする | 適合率は判定した数、再現率は実際の数が分母 | 分母は「判定:異常」か「実際:異常」か |
| 正解率が高ければ良いモデル | 異常が少ないと、全部正常と答えても高く出る | 異常を何件捉えたか |
| F値は二つの単純な平均 | 調和平均。どちらかが低いとF値も低くなる | 2×P×R÷(P+R)で計算したか |
| 適合率と再現率は同時に上げやすい | しきい値の調整では一方を上げると他方が下がりやすい | しきい値を動かすと何が増えるか |
| FP と FN を逆に覚える | FP は正常を異常と判定した空振り、FN は異常の見逃し | 判定が「陽性」だったのはどちらか |
確認問題1
混同行列から適合率と再現率を求められるか?
ある異常検知モデルの判定結果は、TP(異常を正しく異常と判定)が30件、FP(正常を異常と判定)が10件、FN(異常を正常と判定)が20件であった。適合率と再現率の組合せとして、正しいものはどれか。
選択肢を準備しています。「正解と解説を見る」は先に開けます。
正解と解説を見る
正解:3。適合率=30÷(30+10)=0.75、再現率=30÷(30+20)=0.60 です。
1は二つの指標を逆にしています。2は適合率の分母に TP+FP+FN(60件)を使っています。4は再現率の分母に TP+FP+FN(60件)を使っています。
確認問題2
F値を計算できるか?
適合率が 0.50、再現率が 1.00 のモデルの F値(適合率と再現率の調和平均)として、最も近いものはどれか。
選択肢を準備しています。「正解と解説を見る」は先に開けます。
正解と解説を見る
正解:2。F値=2×0.50×1.00÷(0.50+1.00)=1.00÷1.50≒0.67 です。
1は低いほうの値をそのまま選んだもので、調和平均の計算になっていません。3は二つの単純な平均(算術平均)で、F値ではありません。4は高いほうの値で、適合率の低さが反映されていません。
確認問題3
場面に合う指標を選べるか?
ある設備では、重大な故障を見逃すと大きな損害が出るため、誤検知が多少増えても故障の見逃しを減らしたい。この目的で特に重視すべき指標として、最も適切なものはどれか。
選択肢を準備しています。「正解と解説を見る」は先に開けます。
正解と解説を見る
正解:4。再現率は、実際の故障のうち検知できた割合なので、見逃し(FN)を減らすほど高くなります。
1の適合率は、アラートのうち本当の故障だった割合で、誤検知の少なさを表すため、この目的とは重視する方向が逆です。2の正解率は、故障が少ないと見逃しが多くても高く出るため、この目的には向きません。3の特異度は、実際に正常なもののうち正常と判定できた割合で、見逃しではなく誤検知の少なさに関わる指標です。
計算を含む問題を本番と同じ4択で解いてみるなら、登録不要のIoT中級の無料お試し20問で、解説まで通して確認できます。