03.2.3 高校生向け
MAE・RMSE(高校生向け)
こんな場面を想像してみよう #
天気アプリの最高気温の予報を 5 日分メモし、実際の気温と比べました。
| 日 | 予報(℃) | 実際(℃) | ズレ \(e\) | \(\lvert e \rvert\) | \(e^2\) |
|---|---|---|---|---|---|
| 1 | 25 | 26 | −1 | 1 | 1 |
| 2 | 27 | 26 | +1 | 1 | 1 |
| 3 | 30 | 28 | +2 | 2 | 4 |
| 4 | 24 | 25 | −1 | 1 | 1 |
| 5 | 31 | 26 | +5 | 5 | 25 |
「この予報はどのくらい当たっているか」を 1 つの数で言いたいとき、ズレを平均すればよさそうです。でも +1 と −1 をそのまま足すと打ち消し合ってしまうので、符号を消してから平均します。消し方が 2 とおりあり、それが MAE と RMSE です。
$$ \mathrm{MAE} = \frac{1+1+2+1+5}{5} = 2.0, \qquad \mathrm{RMSE} = \sqrt{\frac{1+1+4+1+25}{5}} = \sqrt{6.4} \approx 2.53 $$散布図で考えると、横軸に「予報」、縦軸に「実際」をとって 5 つの点を打ち、対角線(予報=実際)を引いたときの、各点から対角線までの縦の距離がズレです。MAE はその距離の平均、RMSE は距離を 2 乗して平均した値の平方根です。
仕組み:2 乗すると大きなズレが「重く」なる #
まず、点ごとに「実際 − 予測」を出してズレを測ります。回帰直線を引いたグラフなら、点から直線までの縦の長さです。次に符号を消します。MAE は絶対値をとり、RMSE は 2 乗する。ここで分かれ道です。そのうえで \(n\) 個の合計を \(n\) で割って平均し、最後に RMSE だけは 2 乗したぶん単位が「℃²」になっているので、平方根をとって「℃」に戻します。
大きなズレを 1 つ入れてみると違いがはっきりします。5 日目のズレが 5 ではなく 10 だったとしましょう。MAE は \((1+1+2+1+10)/5 = 3.0\) と 1.0 増えるだけですが、RMSE は \(\sqrt{(1+1+4+1+100)/5} = \sqrt{21.4} \approx 4.63\) と 2 倍近くに跳ね上がります。2 乗の中では 10 が 100 として効くからです。逆に 5 つのズレが全部 2 なら、MAE = RMSE = 2.0 でぴったり一致します。
同じ計算を Python で書くと次のようになります。
| |
出力は MAE = 2.00, RMSE = 2.53 です。5 番目の値を 10 に変えて、RMSE だけが大きく動くことを確かめてみてください。
動かして見てみよう #
下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。
気をつけたいこと #
最初の注意は、外れ値が混ざると RMSE だけ悪く見えることです。センサーの故障で 1 回だけ 20 ℃ 外れた記録があると、RMSE は大きくなります。それが「モデルの悪さ」なのか「データの事故」なのかを散布図で確かめます。二つ目は、気温の MAE 2 ℃ と売上の MAE 2 万円のように、単位がちがう問題どうしは比べられないことです。同じデータでモデルを比べるときに使う指標です。三つ目は、MAE > RMSE になったら計算ミスということです。数学的にありえないので、どこかで絶対値と 2 乗を取りちがえています。
やってみよう #
最初の課題は表の操作です。上の表の 5 日目のズレを 0、5、10、20 と変えて、MAE と RMSE をそれぞれ計算し、RMSE − MAE がどう広がるか表にしてみよう。二つ目は実測で、自分のスマホの天気予報を 1 週間メモし、実際の気温との MAE と RMSE を出してみよう。差が大きかった日は何が起きた日だろう。三つ目は考える課題で、「大きく外すことだけは絶対に避けたい予測」と「ときどき大外れしても平均が合っていればよい予測」を 1 つずつ考え、それぞれ MAE と RMSE のどちらで評価すべきか説明してみよう。
つぎに読む #
MAE ≦ RMSE ≦ √n・MAE の不等式、外れ値ありなしの実験、scikit-learn での計算は 標準版の MAE・RMSE で扱っています。外れ値にもっと強い指標は 中央値絶対誤差(高校生向け)、「ズレの大きさ」ではなく「ばらつきを説明した割合」で見る指標は 決定係数(高校生向け) へ進んでください。数式なしで読むなら MAE・RMSE(中学生向け)、指標の一覧は 回帰の評価指標 にあります。