K_DM Book
用語集
対象者 高校生
対象者別の入口 →

対象者の設定はこのブラウザの中にだけ保存されます。

言語 JA

MAE・RMSE(高校生向け)

入門高校生

03.2.3 高校生向け

MAE・RMSE(高校生向け)

最終更新 2026-11-01 読了時間 2 分
まとめ
MAE と RMSE は、回帰モデル(数を予測するモデル)の予測と実際のズレをまとめて 1 つの数にした指標で、単位はもとのデータと同じ ℃ や円です。MAE(平均絶対誤差)はズレの絶対値をそのまま平均するので、「平均して何 ℃ 外れるか」と読めます。RMSE(二乗平均平方根誤差)はズレを 2 乗して平均し、平方根をとるので、5 ℃ のズレを 25 として数え、大きなズレを重く評価します。つねに MAE ≦ RMSE で、気温予報 5 日分の例なら MAE = 2.0、RMSE ≈ 2.53 となり、2 つの差が大きいほど極端に外れた予測が混ざっています。

こんな場面を想像してみよう #

天気アプリの最高気温の予報を 5 日分メモし、実際の気温と比べました。

日予報(℃)実際(℃)ズレ \(e\)\(\lvert e \rvert\)\(e^2\)
12526−111
22726+111
33028+224
42425−111
53126+5525

「この予報はどのくらい当たっているか」を 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 で書くと次のようになります。

1
2
3
4
5
errors = [1, 1, 2, 1, 5]            # 予報と実際のズレの大きさ(℃)
n = len(errors)
mae = sum(abs(e) for e in errors) / n
rmse = (sum(e * e for e in errors) / n) ** 0.5
print(f"MAE = {mae:.2f}, RMSE = {rmse:.2f}")

出力は 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(中学生向け)、指標の一覧は 回帰の評価指標 にあります。