1 適合率の概要
1.1 定義と直感的な意味
適合率(precision)とは、モデルや検索システムが「正として提示した結果」の集合のうち、実際に正しいものの割合を表す評価指標である。直感的には「選んだもののうち、どれだけ当たっているか」を測る。
たとえば情報検索で、上位に表示した文書のうち関連文書が占める割合を考えると理解しやすい。分類タスクでも、陽性として判定したサンプルのうち真に陽性であるものの比率が適合率に相当する。
1.2 数式による表現
適合率は、真陽性と偽陽性の関係に基づいて定義される。一般的な二値分類の文脈では、適合率は次の形で表される。
適合率 = 真陽性 /(真陽性+偽陽性)
ここで「真陽性(TP)」は正しく陽性と判定した件数、「偽陽性(FP)」は誤って陽性と判定した件数を指す。
1.2.1 真陽性・偽陽性の関係
適合率は、誤検出(偽陽性)が増えるほど低下する。陽性判定を強めることで真陽性も増える場合があるが、同時に偽陽性が相対的に増えると適合率は下がりうる。この性質により、適合率は「誤って選ぶ量」を抑えたい状況で重要になる。
一方で、偽陽性を抑えるために陽性判定を慎重にすると、真陽性の一部を取り逃がす可能性がある。この取り逃しは再現率に影響し、適合率単独では判断が完結しない理由となる。
1.2.2 0除算などの扱い
分母が(真陽性+偽陽性)=0となるケース、すなわち「陽性として一度も提示・予測されなかった」場合、適合率は未定義になる。実務では、次のいずれかの扱いが一般的である。
どの扱いを採用したかは、集計や比較の結果に大きく影響するため、評価レポートでは明示が望ましい。
1.3 関連指標との位置づけ
適合率は単独で全体性能を保証するものではない。誤検出と取りこぼしの両方を扱う指標群の一部として位置づけると、意味が明確になる。
一般に、適合率は「正しく選ぶ度合い」、再現率は「見逃さない度合い」と対応関係を持つ。さらに両者のバランスを要約する手段としてF値やPR曲線などが利用される。
1.3.1 再現率との対比
再現率(recall)は、実際に正しいもののうちどれだけ捕捉できたかを表す。二値分類では、再現率は真陽性を真陽性+偽陰性で割る形で定義される。
適合率と再現率の対比により、同じ真陽性数でも「誤って陽性に含めた量」や「実は陽性だったのに外した量」が評価に反映される。閾値を調整すると両者が同時に改善するとは限らず、用途に応じて重視する側が変わる。
1.3.2 F値(調和平均)との関係
F値(とくにF1)は、適合率と再現率を調和平均で結合した指標である。調和平均は、どちらか一方が低いと全体値が下がりやすい性質を持つ。そのため、適合率だけが高いが取りこぼしが多い状況、あるいは逆の状況を同時に抑えた評価が可能になる。
なお、F値には重み付きのバリエーションがあり、適合率側をより強く重視する設定もできる。この調整は評価設計で重要になる。
2 適合率の算出方法
2.1 分類タスクでの計算
適合率は分類問題で頻繁に用いられる。特に出力が「陽性/陰性」の二値か、「複数クラス」のいずれかで計算方法が変わる。
実務では、閾値を用いて確率出力からクラスを決定する場合が多い。適合率は最終的に得られた予測ラベルに基づいて計算される。
2.1.1 二値分類における適合率
二値分類では、予測結果を混同行列(confusion matrix)で整理すると算出しやすい。
適合率 = TP /(TP+FP)
ここで「陽性」が対象クラス、「陰性」がそれ以外のクラスとして扱われる。
2.1.1.1 混同行列からの読み取り
混同行列の各要素から適合率を読み取る際は、TPとFPのみが必要になる。具体的には、列や行の取り方(予測が行か実測が行か)によって表の配置が変わっても、適合率に関与するのは「予測で陽性に入ったもののうち実測で陽性だった部分」と「予測で陽性に入ったもののうち実測で陰性だった部分」である。
そのため、混同行列の軸の定義を誤ると適合率の符号や値が入れ替わることがある。評価の前に軸の意味を確認するのが重要である。
2.1.2 多クラス分類での計算方法
多クラス分類では、クラスごとに「そのクラスを陽性、それ以外を陰性」とみなして適合率を計算し、集計方法を選ぶ。
代表的にはマクロ平均とミクロ平均がある。
2.1.2.1 マクロ平均・ミクロ平均
マクロ平均は、各クラスの適合率を計算してから単純平均する。各クラスを同程度の重要度として扱うため、クラス数が多い場合でも解釈が比較的明確になる。
一方、ミクロ平均は、全クラスを統合したTPとFPを用いて適合率を計算する。各サンプルが同じ重みで寄与するため、データの偏りが強い状況では頻出クラスの影響が大きくなりやすい。
どちらが適切かは、評価したい目的(希少クラスも重視するか、全体の誤検出を抑えたいか)によって決まる。
2.2 情報検索での計算
情報検索では、ランキング(順序付きの出力)に対して適合率を拡張した指標が用いられる。重要なのは「上位何件を見せるか」という運用の現実に即した評価になる点である。
2.2.1 適合率@kの考え方
適合率@k(precision@k)は、ランキング上位k件に含まれる関連文書の割合を表す。通常、関連性の有無がラベルとして与えられる場合に計算できる。
適合率@k =(上位k件中の関連文書数)/ k
この指標は、ユーザが閲覧するであろう上位部分の品質を直接反映する。
2.2.1.1 kの選び方と解釈
kは検索システムのUIや利用者の行動に合わせて選ぶ。たとえば「最初のページだけを見る」ならkはページサイズに相当する値になる。
kが大きくなるほど、適合率はランキング全体の性質をより反映しやすくなるが、一般に上位ほど関連率が高いことが多いため、kを小さくすると値が高く出やすい。比較の際は、同一のkで揃える必要がある。
2.2.2 平均適合率(AP)の概念
平均適合率(AP: average precision)は、関連文書が登場する位置に応じて適合率を段階的に集約する考え方である。ランキング上で関連がどの程度早く出てくるかを反映しやすい。
典型的には、関連文書が出た各カットオフでの適合率を求め、それらの平均を取る。関連の並びが良い(早い位置に関連が多い)ほどAPは高くなる。
2.3 実データでの注意点
適合率は計算式自体は単純だが、実データでは前提条件の揺れが結果に影響する。評価セットの性質に依存するため、注意点の整理が必要になる。
2.3.1 ラベル付け誤差の影響
適合率は「正解ラベル」に対する一致度である。ラベル付けが誤っていると、実際には関連なのに不関連として扱われる、あるいはその逆が起きる。すると、モデルが正しい予測をしていても偽陽性として計数され、適合率を不当に下げることがある。
ラベルの信頼性を高めるためのアノテーション設計や、複数アノテータの合意形成などは、指標解釈の前提として重要になる。
2.3.2 クラス不均衡と評価の歪み
クラス数や分布が偏ると、適合率の見え方が変わる。ミクロ平均では頻出クラスが結果を左右しやすく、マクロ平均では希少クラスの不安定さが目立つ場合がある。
また、陽性クラスが極端に少ない場合、「陽性を一度も予測しない」ようなモデル挙動が適合率の扱い(0除算の規約)に強く依存する。したがって、評価の集計方式と未定義ケースの処理を合わせて検討する必要がある。
3 適合率を用いた評価と解釈
3.1 しきい値設定との関係
多くのモデルは確率やスコアを出力し、閾値を超えたものを陽性として扱う。この閾値により、偽陽性と真陽性の比率が変わり、適合率も連動して変化する。
一般に閾値を上げるほど陽性判定は保守的になり、偽陽性が減りやすい。その結果、適合率が上がる傾向があるが、取りこぼしが増え、再現率は下がりやすい。
3.1.1 確率出力と閾値の調整
確率出力を持つ場合、閾値は「どの程度の自信なら陽性として出すか」に対応する。適合率重視の設計では、偽陽性のコストを見積もって閾値を上げる選択が合理的になる。
ただし確率が校正されていない場合、閾値調整が期待通りに機能しないことがある。校正(キャリブレーション)の有無は、適合率を狙った調整の精度に影響しうる。
3.1.2 ROC・PR曲線との併用
ROC曲線は偽陽性率と真陽性率の関係を示すが、不均衡データでは解釈が難しくなることがある。その点、PR曲線は適合率と再現率の関係を直接示すため、適合率に関心がある場合はより関連性が高い。
閾値の候補を変えながらPR曲線上の位置を比較すると、誤検出を抑えつつ必要な捕捉を満たす点を選びやすい。
3.2 利用場面別の判断基準
適合率は用途に応じて意味合いが変わる。何を「成功」と見なすかがシステムの目的と結び付くため、判断基準は一律ではない。
3.2.1 検索システムでの適合率重視
検索では、ユーザが最初に見る上位部分の品質が直接的な体験に結びつく。適合率@kは、その場面の満足度に近い指標として使われる。
ただし検索対象によって「関連」の定義が変わるため、評価ラベルの作り方が重要になる。関連度が段階的にある場合は、適合率の拡張(例えばランキングに応じた重み付け)を検討することもある。
3.2.2 異常検知・フィルタリングでの適合率重視
異常検知やスパムフィルタのような用途では、誤って正常を異常として扱うコスト(業務負荷、誤停止など)が大きいことがある。この場合、偽陽性を抑えることが優先され、適合率を高くする方針が採用されやすい。
ただし適合率だけを上げると、真の異常を取り逃がす可能性が増える。監視や対応の体制に応じて、再現率とのバランスを決める必要がある。
3.3 誤りの種類と適合率の挙動
適合率の値は誤りの内訳に強く依存する。どの種類の失敗が増えているかを読み解くことで、改善方向が定まる。
3.3.1 偽陽性が高いときの特徴
偽陽性が増えると適合率は低下する。原因としては、モデルが不確実性の高い領域まで陽性として出している、特徴量が不十分でクラス境界が曖昧になっている、あるいは閾値が緩すぎることが考えられる。
このような状況では、閾値の見直しや、誤検出パターンの分析(代表例の確認)を通じて改善の手掛かりを得られる。
3.3.2 予測数が少ない場合の解釈
陽性予測が極端に少ない場合、適合率は高く見えることがある。たとえば少数の予測がすべて当たっていれば適合率は高いが、見逃しが多い可能性がある。
そのため、適合率の高さだけで性能を断定せず、陽性予測数や再現率と合わせた解釈が必要になる。特に運用では、陽性の件数が業務やコストに直結するため、予測量の確認は実用上不可欠である。
4 適合率の限界と実務上の工夫
4.1 限界(単独指標の弱点)
適合率は偽陽性の抑制に関して有効だが、単独で意思決定を行うと見落としが起きやすい。
4.1.1 再現率を無視する問題
適合率を高める目的で陽性判定を絞り込むと、真の陽性を取り逃がす可能性が増える。結果としてシステムは「当たっているが数が足りない」状態になる。
この問題は、実務で致命的になりうる。たとえば監査や検知の領域では、取り逃しが後から重大なコストにつながることがあるため、評価指標の組み合わせが欠かせない。
4.1.2 極端な予測の偏り
適合率は「陽性として出したものに対する正しさ」を測るため、陽性予測が偏ると指標が歪む。クラスが偏っているデータや、閾値が適切でない場合に起こりやすい。
また、サンプリング方法によって評価データの分布が変わると、適合率の比較が難しくなる。評価セットの作成方針を揃え、再現性のある手順で測定することが実務上の工夫となる。
4.2 改善・補完の考え方
適合率を単独で見る代わりに、関連する視点や目的関数を組み合わせることで、意思決定の質を高められる。
4.2.1 PR曲線・AUPRCの活用
PR曲線は閾値を動かしたときの適合率と再現率のトレードオフを可視化する。AUPRC(PR曲線の面積)はその要約として用いられ、適合率単独よりも幅広い性能を反映する。
とくに不均衡データでは、ROC曲線よりも適切に評価される場合がある。とはいえ、どの集計方法や閾値範囲を採用するかで値が変わるため、報告条件を明確にするのが望ましい。
4.2.2 コストに基づく評価設計
適合率は偽陽性の比率を反映するが、実際には偽陽性と偽陰性の相対的な損失が重要である。そこで、コスト(あるいは期待損失)を定義し、運用に整合する指標や閾値設定を行うことが有効になる。
たとえば偽陽性のコストが大きい場合は適合率を強めに重視する設計が合理的になる。逆に取りこぼしが重い場合は再現率側の重みを増やす。こうした設計により、指標が目的に結びつく。
4.3 モニタリングと運用
モデルの性能はデプロイ後に変化しうる。適合率を用いる場合も、定期的な監視と原因切り分けが必要になる。
4.3.1 時系列での適合率変化
データや利用状況が変わると、適合率は時間とともに推移する。たとえば入力分布の変化、ユーザ行動の変化、ラベル付け運用の変更が引き金になりうる。
運用では、適合率を単に見るだけでなく、偽陽性が増えたのか、陽性判定の閾値が変わったのか、といった要因を分解できる仕組みが望ましい。
4.3.2 データドリフトへの対応
データドリフトとは、入力データの統計的性質が時間とともに変化する現象である。モデルは学習時の分布前提を失うと、適合率が低下することがある。
対応策としては、評価データの再収集、特徴量の見直し、閾値の再調整、再学習のタイミング設定などが考えられる。適合率の監視はドリフト検知の手がかりとして使えるが、単独では原因特定が難しいため、他の指標やログと組み合わせるのが実務的である。