評価指標:モデルの良し悪しをはかる
モデルの予測がどれだけ良いかをはかる評価指標を学びます。基礎層では、正解率だけでは良し悪しを見誤る理由と、見逃しと空振りという2種類の間違いをつかみます。深掘り層では、混同行列の4つの用語を自力で読み解くルール、適合率と再現率の綱引きとF値、ROC曲線とAUC、回帰の平均二乗誤差・二乗平均平方根誤差・平均絶対値誤差まで説明できるようになります。
ねらい
このレッスンでは、モデルの予測がどれだけ良いかをはかる評価指標(ひょうかしひょう)を学びます。
基礎
正解率という1つの数字だけでは良し悪しを見誤る理由と、間違いに2つの種類があることを検査の例でつかみます。
1. 正解率の見せかけの高さが生まれるしくみ
ある病気を見つける検査のモデルを考えます。1000人を調べると、実際に病気なのは10人だけでした。ここで、中身を何も見ずに、全員へ「病気ではない」と答えるだけのモデルを置いてみます。
モデルの予測のうち、正しかったものの割合を正解率といいます。この手抜きのモデルは、病気でない990人に正しい答えを返すので、正解率は99パーセントに達します。数字の上では、ほとんど完璧なモデルに見えます。
それでも、このモデルは使いものになりません。からくりは、データのかたよりにあります。1000人のうち990人は病気ではないため、全員に「病気ではない」と答えるだけで、990人ぶんの正解を自動的に稼げてしまうのです。
種類ごとの数が大きくかたよったデータでは、多い側に合わせて答えるだけの手抜きでも、正解率は高く出ます。正解率という1つの数字は、この見せかけの高さと本当の実力を区別できません。
注意
正解率は、種類ごとの数がかたよったデータでは、高く出ても実力を表しません。1つの数字だけで判断せず、モデルがどんな間違いをしたかまで見る必要があります。
2. 見逃しと空振りという2種類の間違い
正解率が数え損ねているのは、間違いの中身です。検査のモデルが犯す間違いには、性質のまったく違う2種類があります。
1つ目は、病気の人に「病気ではない」と答えてしまう間違い、つまり見逃しです。発見が遅れて手当てが間に合わなくなるおそれがあり、命に関わりかねません。
2つ目は、健康な人に「病気の疑いがある」と答えてしまう間違い、いわば空振りです。よけいな心配をかけ、再検査の負担を招きます。
どちらの間違いをより避けたいかは、目的によって変わります。病気の検査では見逃しが致命的です。一方、迷惑メールの振り分けでは、大事なメールを迷惑メールの箱へ入れてしまう空振りのほうが困ります。だからこそ、間違いをひとまとめに数えるのではなく、種類ごとに数え分けて評価する必要があるのです。
ここまでの要点
- 正解率は、予測全体のうち当たった割合です。
- 種類ごとの数がかたよったデータでは、多い側に合わせるだけの手抜きでも正解率は高く出ます。
- 間違いには見逃しと空振りの2種類があり、どちらが致命的かは目的によって変わります。
まずは全体像をつかめれば十分という人は、ここで区切って大丈夫です。「正解率という1つの数字に頼らず、間違いの種類まで数え分ける」と押さえられていれば、この先の深掘りに進む土台はできています。
発展
ここからは、間違いを種類ごとに数え分ける混同行列という表と、そこから作られる分類の指標、そして数値を当てる回帰のための指標まで掘り下げます。
3. 丸暗記のいらない混同行列の読み解きルール
間違いを数え分けるために、まず言葉を決めます。機械学習では、見つけたい側を陽性と呼び、そうでない側を陰性と呼びます。病気の検査なら「病気である」が陽性、「病気ではない」が陰性です。迷惑メールの振り分けなら、迷惑メールの側が陽性になります。
分類の結果は、モデルの予測が陽性か陰性か、そして実際の正解が陽性か陰性かの組み合わせで、4通りに分かれます。この4通りの数を並べた表が混同行列です。
| 実際は陽性 | 実際は陰性 | |
|---|---|---|
| 陽性と予測 | 真陽性 | 偽陽性 |
| 陰性と予測 | 偽陰性 | 真陰性 |
4つのます目には、真陽性・偽陽性・偽陰性・真陰性という名前が付いています。似た漢字が並ぶので身構えたくなりますが、丸暗記は要りません。この4つの言葉には、いつでも自力で意味を復元できる、明確な読み解きのルールがあるからです。
1つ目のルールは、後ろの漢字にあります。陽性か陰性かは、モデルが出した予測そのものを表します。真陽性と偽陽性は、どちらも「モデルが陽性と予測した」ます目です。実際がどうだったかは、この2文字だけでは決まりません。
2つ目のルールは、前の漢字にあります。真か偽かは、その予測が実際の正解と合っていたかを表します。真は的中、偽ははずれです。
この2つを組み合わせれば、どの用語も頭の中で解読できます。たとえば偽陰性なら、次の順で読みます。「モデルは陰性と予測した。しかし偽、つまりその予測ははずれ。だから実際は陽性」。偽陰性は、病気の人を健康と判定した見逃しのます目だと分かります。
同じ要領で偽陽性を読むと、「陽性と予測したが、はずれ。実際は陰性」となります。健康な人に病気の疑いを告げた空振りのます目です。前の節で見た2種類の間違いは、混同行列の偽陰性と偽陽性のます目にそれぞれ対応しています。
ポイント
後ろの漢字(陽か陰か)はモデルの予測、前の漢字(真か偽か)は予測の正誤を表します。この2つのルールがあれば、4つの用語は暗記しなくても解読できます。
理解の確認
読み解きルールの練習として、残る2つも解読してみてください。真陽性は「陽性と予測して的中、実際も陽性」、真陰性は「陰性と予測して的中、実際も陰性」と読めれば、ルールは身に付いています。これから見る指標は、すべてこの4つのます目の数から計算されます。
4. 適合率と再現率の綱引きをまとめるF値
混同行列の4つの数からは、目的に合わせた指標を作れます。分類の指標としてまず押さえるのは、正解率・適合率・再現率・F値の4つです。正解率はすでに見たとおりで、真陽性と真陰性の合計を全体の数で割ったものです。
適合率(てきごうりつ)は、陽性と予測したもののうち、実際に陽性だった割合です。真陽性の数を「真陽性と偽陽性の合計」で割って求めます。適合率が高いほど、モデルが陽性と言ったときの信頼度が高く、空振りが少ないことを表します。
再現率(さいげんりつ)は、実際に陽性であるもののうち、モデルが陽性と当てられた割合です。真陽性の数を「真陽性と偽陰性の合計」で割って求めます。再現率が高いほど、見逃しが少ないことを表します。病気の検査のように見逃しが致命的な場面では、再現率が重んじられます。
式で書くと、3つは次のようになります。
正解率 = (真陽性 + 真陰性) ÷ 全体の数 適合率 = 真陽性 ÷ (真陽性 + 偽陽性) 再現率 = 真陽性 ÷ (真陽性 + 偽陰性)
適合率と再現率は、分子がどちらも真陽性で、分母だけが違います。適合率の分母は「陽性と予測した数」、再現率の分母は「実際に陽性だった数」です。どちらを分母に置くかで、何を見ている指標かが決まります。名前で覚えるより、この分母の違いで思い出せます。
厄介なのは、この2つが綱引きの関係にあることです。片方を上げようとすると、もう片方が下がりやすいのです。
理由は、モデルが陽性と判定する基準の置き方にあります。よほど確実なときだけ陽性と言う慎重な設定にすると、空振りが減って適合率は上がる一方、取りこぼしが増えて再現率は下がります。逆に、少しでも怪しければ陽性と言う積極的な設定にすると、見逃しが減って再現率は上がる一方、空振りが増えて適合率は下がります。
この綱引きのつり合いを1つの数字にまとめた指標がF値(エフち)です。F値は適合率と再現率の調和平均(ちょうわへいきん。小さいほうの値に強く引っ張られる平均の取り方)で、式で書くと、F値 = 2 × 適合率 × 再現率 ÷ (適合率 + 再現率)となります。ふつうの平均と違い、片方が0に近いと全体も0に近づきます。だから2つの値の両方が高いときにだけ高くなります。片方だけを極端に高くしてもF値は伸びないため、バランスの取れたモデルを選ぶ手がかりになります。
動かして確かめる
ここまでの綱引きを、下のトレーナーで実際に動かして確かめてみましょう。しきい値を右へ動かすと、 陽性と予測する人が減るため適合率が上がり再現率が下がります。左へ動かすと逆になります。
スタディード / G検定 / 動く解説
しきい値を動かすと、見逃しと空振りが入れ替わる。
20人の検査候補を、実際に陽性だった人と陰性だった人で色分けしました。しきい値を動かして、適合率(空振りの少なさ)と再現率(見逃しの少なさ)がどう動くか確かめてください。
5. しきい値によらず性能を比べるROC曲線とAUC
前の節の綱引きには、正体があります。多くの分類モデルは、陽性か陰性かをいきなり決めているのではなく、まず陽性らしさの度合いを数値で出し、その数値がある基準を超えたら陽性と判定しています。この基準の値をしきい値といいます。慎重な設定と積極的な設定の違いは、このしきい値の置き場所の違いです。
しきい値を1つに固定して測ると、その置き場所しだいで適合率も再現率も変わってしまいます。そこで、しきい値のあらゆる置き方を試しながら、モデルの性能を全体として眺める道具が使われます。それがROC曲線(アールオーシーきょくせん)とAUC(エーユーシー)です。
ROC曲線は、しきい値を少しずつ動かしながら、そのつど「実際の陽性を正しく拾えた割合」と「実際の陰性を誤って陽性とした割合」の組を点として打ち、つないだ曲線です。良いモデルほど、少ない誤りで多くの陽性を拾えるため、曲線は左上へ大きくふくらみます。
AUCは、ROC曲線の下側の面積です。完全に当てられるモデルなら1に近づき、でたらめに答えるのと変わらないモデルなら0.5前後になります。AUCを使うと、しきい値の選び方に左右されずに、モデルどうしの性能を比べられます。
6. 予測のずれの大きさをはかる回帰の指標
ここまでは、陽性か陰性かを当てる分類の指標でした。売上や気温のような数値そのものを当てる回帰では、予測は当たりか外れかの2択になりません。予測した値が実際の値からどれだけずれたかで、良し悪しをはかります。代表的な指標が3つあります。
平均二乗誤差(MSE)は、予測値と実際の値の差を二乗して、すべてのデータで平均した指標です。差を二乗するため、大きく外した予測ほど何倍も重く効きます。大外れを厳しく見たいときに向いています。
ただし、差を二乗しているため、この値はもとの数値と単位がそろいません。たとえば円で予測すると、誤差は円を二乗した単位になり、平均していくらずれるのかを直感的には読み取れないのです。
そこで、平均二乗誤差の平方根を取って、単位をもとに戻した指標が二乗平均平方根誤差(RMSE)です。予測が平均してどれくらいずれるのかをもとの数値と同じ単位で読み取れます。
平均絶対値誤差(MAE)は、予測値と実際の値の差の絶対値をすべてのデータで平均した指標です。二乗をしないため、大外れの予測を特別に重くは数えません。その結果、一部の極端な外れ値に評価全体を引きずられにくいという性質を持ちます。
なお、ここで見た平均二乗誤差は、できあがったモデルの実力を外から測る評価指標としての使い方です。同じ二乗のずれの計算は、学習の途中でモデルを直す方向を教える平均二乗誤差関数としても使われます。同じ式でも、測るために使うのか、学習を導くために使うのかで役割が違います。この区別は、ディープラーニングの誤差関数を学ぶときにもう一度出てきます。
理解度の確認
説明できる項目にチェックを入れましょう。すべて確認できたら、完了ボタンで記録します。
分からなかった点・気になった点
読み込み中です。