03.3.1 中学生向け
Accuracy(中学生向け)
クイズ:この天気予報は何点? #
あなたが 10 日間、「明日は雨が降るか」を予想したとします。結果はこうでした。
| 日 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 予想 | 晴 | 雨 | 晴 | 晴 | 雨 | 晴 | 晴 | 雨 | 晴 | 晴 |
| 本当 | 晴 | 雨 | 雨 | 晴 | 雨 | 晴 | 晴 | 晴 | 晴 | 晴 |
| 当たり | ○ | ○ | × | ○ | ○ | ○ | ○ | × | ○ | ○ |
当たったのは 10 日のうち 8 日。「80 % 当たった」と答えた人は、もう正解率を計算しています。機械学習でも、コンピュータの予想の点数はこの数え方で出します。
図で見る:正解率と「公平な正解率」 #

上の図は、病院のデータで「病気があるか・ないか」をコンピュータに予想させたときの結果です。左の棒がふつうの正解率、右の棒は「病気ありの人だけの当たり率」と「病気なしの人だけの当たり率」を平均した公平な正解率です。2 本の高さがほぼ同じなので、この予想はどちらのグループも同じくらい当てていることが分かります。
仕組み:どう数える? #
まず、予想と本当の答えを横に並べます。上の表のように、1 件ずつペアを作ります。次に、当たりとはずれに分けます。当たりは「雨と言って雨」「晴れと言って晴れ」の 2 種類あり、どちらも同じ 1 個の当たりとして数えます。そして、当たりの数 ÷ 全部の数を計算すると、これが左の棒の高さで、例では 8 ÷ 10 で 80 % になります。最後に、グループごとにも数えます。雨の日 3 日だけ、晴れの日 7 日だけで当たり率を出し、その平均をとると右の棒になります。2 本の差が大きいほど、片方のグループばかり当てている印です。
動かして見てみよう #
下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。
気をつけたいこと #
最初の注意点は、答えがかたよっていると 97 % のような高い点が出てしまうことです。100 日のうち雨が 3 日だけの町なら、毎日「晴れ」と言うだけで正解率は 97 % ですが、この予報は雨を 1 日も当てていません。二つ目は、2 種類のはずれの重さが同じに数えられることです。「雨なのに晴れと言った(かさを忘れる)」と「晴れなのに雨と言った(かさがむだになる)」は困り方が違うのに、正解率はどちらも同じ 1 個のはずれとして数えます。三つ目は、「正解率が高い=役に立つ」ではないことで、雨を当てたいのか晴れを当てたいのか、何を当てたいのかによって見るべき数は変わります。
やってみよう #
最初の課題は、10 日間、自分で明日の天気(晴れか雨か)を予想してメモし、正解率を計算することです。二つ目は、「10 日のうち雨が 1 日だけ」の表を自分で作り、「毎日晴れ」と予想したときの正解率と、雨の日だけの当たり率を比べることです。三つ目は、身の回りで「何も考えずに同じ答えを言うだけで正解率が高くなる場面」を 1 つ考えることで、ヒントは、ほとんどの人が合格するテストで「合格」と予想することです。
つぎに読む #
式と Python のプログラムまで含めた本編は 正解率(標準版) です。当たり・はずれを 4 つのマスに整理する表は 中学生向けの混同行列 で紹介しています。ほかの「予想の点数のつけ方」は 分類の評価指標 の一覧からたどれます。