機械学習におけるモデルの性能評価
二値分類などの機械学習でモデルを作成した後の性能評価についてまとめました.
混同行列
モデルの性能評価をする方法には様々なものがあります. その中で混同行列は2クラス分類の評価結果を表現する方法で, 最も包括的な方法の一つです. 今回は具体例として, 「癌を発症しているかどうか」を予測する場合について考えることとします.
「癌であるかどうか」を予想する場合のパターンは次の4つになります.
- 「癌」を「癌である」と予測する
- 「癌」を「癌でない」と予測する
- 「癌でない」を「癌である」と予測する
- 「癌でない」を「癌でない」と予測する
また, 「癌である」とする予測をPositive, 「癌でない」とする予測をNegative, 予測が当たった場合をtrue, 外れた場合をfalseとします. 4つのパターンを混同行列で表現すると以下のようになります.
実際に癌であるデータ(陽性) | 実際に癌でないデータ(陰性) | |
---|---|---|
癌であると予測したデータ(陽性) | True & Positive (TP) | False & Positive (FP) |
癌でないと予測したデータ(陰性) | False & Negative (FN) | True & Negative (TN) |
本記事では精度, 適合率, 再現率, 特異率の4つについてまとめます.
精度(Accuracy)
- 予測したものがどれだけ当たっていたかを表す値
- 正確な予測を全てのサンプル数で割った値
- 精度の計算式
精度 = TP + TN / TP + TN + FP + FN
実際に癌であるデータ(陽性) | 実際に癌でないデータ(陰性) | |
---|---|---|
癌であると予測したデータ(陽性) | True & Positive (TP) | False & Positive (FP) |
癌でないと予測したデータ(陰性) | False & Negative (FN) | True & Negative (TN) |
適合率 (Precision)
- 陽性であると予測されたものが, どのくらい実際に陽性であったかを測定するもの.
- 今回の例で言うと, 癌と予測した内, 実際どのくらいが本当に癌であったかの割合
- 適合率の計算式
適合率 = TP / TP + FP
実際に癌であるデータ(陽性) | 実際に癌でないデータ(陰性) | |
---|---|---|
癌であると予測したデータ(陽性) | True & Positive (TP) | False & Positive (FP) |
癌でないと予測したデータ(陰性) | False & Negative | True & Negative |
適合率は, 偽陽性の数を制限したい場合に用いられます. 偽陽性とは実際には陰性のものを誤って陽性と判断してしまうこと.(実際には癌でないことを癌であると予測してしまうこと)
例えば, 新薬が臨床試験で有効な結果を出すかどうかについて予測するモデルを考えます. 臨床試験は高価であるため, 薬の製薬会社は, 薬が本当に効果があることを確信していない限り臨床試験を行いたくないはずです. 実際には効果がない薬について臨床試験をするということはあまりしたくないはずです. つまり実際には効果がない薬を効果があると間違って予測をする件数はできるだけ減らしたいはずです. このような場合には適合率を用いてモデルの性能評価を行います.
再現率 (Recall)
- 実際に陽性のうち, 陽性と予測されたものの割合
- 再現率の計算
再現率 = TP / TP + FN
実際に癌であるデータ(陽性) | 実際に癌でないデータ(陰性) | |
---|---|---|
癌であると予測したデータ(陽性) | True & Positive (TP) | False & Positive |
癌でないと予測したデータ(陰性) | False & Negative (FN) | True & Negative |
再現率は偽陰性を避けることを目的とした場合に用いられる. 偽陰性とは実際には陽性のものを誤って陰性と判断してしまうこと.(実際に癌であることを癌でないと予測してしまうこと)
この場合は癌の例が分かりやすいと思います. 癌である患者さんを癌でないと予測してしまうのは非常にまずいです. 取り返しのつかないことになってしまう危険性も出てきます. 癌である全ての人を見つけることが重要で, 癌でない人を癌であると誤って予測することが多少あっても, 癌を絶対に逃したくない場合に再現率を重視します.
特異率(Specificity)
- 実際に陰性のうち, 陰性であると予測されたものの割合を表す. 再現率の逆である.
- 特異率の計算式
特異率 = TN / FP + TN
実際に癌であるデータ(陽性) | 実際に癌でないデータ(陰性) | |
---|---|---|
癌であると予測したデータ(陽性) | True & Positive (TP) | False & Positive (FP) |
癌でないと予測したデータ(陰性) | False & Negative (FN) | True & Negative (TN) |
適合率と再現性のトレードオフ
適合率と再現率はトレードオフの関係にあります. つまり, 適合率が高くなると再現率は低くなり, 適合率を低くすると, 再現率は高くなります.
例えば, 全てを陽性であると予測すると再現率は100%となります. しかし, 陰性のものを陽性であると誤った予測をする割合も増えるため, 適合率は低くなってしまいます.
終わり
今回はモデルの性能評価として用いられる, 精度, 適合率, 再現率, 特異率についてまとめました.
参考文献・引用
- https://aizine.ai/confusion-matrix0225/
- Andreas C. Muller and Sarah Guido(2016) 「Pythonではじめる機械学習 -scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎-」