RMSE、MAE、MSEの違い/使い分けについて解説!Pythonでそれぞれ計算してみよう!

目次
ウマたん当サイト【スタビジ】の本記事ではRMSE、MAE、MSEについて解説してきます。これらの指標は機械学習のモデルにおける評価指標であり、目的に合わせて適切に使うことが大切です。今回はこれらの評価指標の解説とPythonによる実装を見ていきましょう!
こんにちは!
スタビジ編集部です!
今回はMSE、RMSE、MAEについて解説していきます!
これら三つの指標は主に機械学習モデルの評価指標として用います。特に回帰問題における機械学習モデルで使用します。
ウマたんこれら3つの指標はよく使われるので、指標の意味と式をしっかり理解していこう!
この記事では、MSE、RMSE、MAEについて解説していきます!またこれらの指標をPythonで実装していきます!
以下の動画でも解説しているのであわせてチェックしてみてください!
MSE、RMSE、MAEについて解説!

早速MSE、RMSE、MAEを解説していきます。(は実測値、は予測値として用いています。)
MSE(Mean Squared Error)
まずMSEはMean Squared Errorの略であり、残差の二乗の平均を表しています。
身近な例として、最小二乗法を用いた回帰分析ではMSEを最小化するようにパラメータを調節していますね!
しかしMSEの単位に着目してみると学習データの単位の二乗となるので、評価指標の解釈が非常に難しいんです。
RMSE(Root Mean Squared Error)
そこで登場するのがRMSE
RMSEはRoot Mean Squared Errorの略であり、MSEの平方根を表しています。これによってRMSEの単位は学習データの単位と同じになるため、解釈がしやすくなります。
MAE(Mean Absolute Error)
最後にMAEはMean Absolute Errorの略であり、残差の絶対値の平均を表しています。
RMSEとの違いは、外れ値にロバストである(頑健である)か。
RMSEはMSEのルートを取って単位を揃えているのですが、残差の二乗を用いているので、残差が大きいほどRMSEの値も高くなってしまいます。
一方、MAEは残差の絶対値であるので大きさはRMSEと比較するとロバストになるんです!
したがって解釈性を重視、あるいは外れ値の影響を抑えたい場合はMAEが有効です!
具体的な計算式で計算してMSE、RMSE、MAEを比較してみよう!
数式だけだとイメージが湧きにくいと思うので具体的にMSE、RMSE、MAEを計算して見ていきましょう!
以下のような結果が得られたとしましょう!
| 予測値 | 観測値 | 残差 |
| 100 | 110 | 10 |
| 1000 | 1100 | 100 |
この時、MSE、RMSE、MAEはどうなるでしょうか?
・MSE
まずMSEは予測値と観測値の差である残差の二乗を足すので、となり、それを2で割った5050となります。
・RMSE
それではRMSEはどうなるでしょう?MSEの値にルートを取るので、71.063・・・となります。
・MAE
それではMAEはどうなるでしょう?を2で割った55となりますね。
一方で以下のようなケースではどうでしょう?
| 予測値 | 観測値 | 残差 |
| 100 | 110 | 10 |
| 100 | 110 | 10 |
・MSE
この時、MSEはとなり、それを2で割った100となります。
・RMSE
RMSEはMSEの値にルートを取るので、10となります。
・MAE
MAEはを2で割った10となりますね。
残差が同じ場合はRMSEとMAEが等しくなりました。
もちろんMSEは数字の単位が違うので大きくなりますが、RMSEも外れ値があると外れ値に引っ張られて大きな値を取りがちな傾向があることが分かったと思います。
単一の指標だけではなくて様々な指標を複合的に見て評価できるようになりましょう!
MSE、RMSE、MAEをPythonで実装!

そしてMSE、RMSE、MAEをPythonで実装していきます!
今回はsklearn.metricsパッケージを用いて3つの評価指標を実装していきます!また用いるデータは糖尿病の進行状況のデータを用いて、回帰分析を行います!
注意する点として、RMSEを実装する際はmean_sqared_errorの属性であるsquaredをFalseに指定する必要があります。
import pandas as pd
from sklearn.datasets import load_diabetes
from sklearn.linear_model import LinearRegression
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error,mean_absolute_error
from sklearn.model_selection import train_test_split
diabetes = load_diabetes()
x = pd.DataFrame(diabetes.data,columns=diabetes.feature_names)
y = pd.DataFrame(diabetes.target)
x_train,x_test,y_train,y_test = train_test_split(x,y)
model = LinearRegression()
model.fit(x_train,y_train)
y_pred = model.predict(x_test)
print("MSE:{}".format(mean_squared_error(y_test,y_pred)))
print("RMSE:{}".format(mean_squared_error(y_test,y_pred,squared=False)))
print("MAE:{}".format(mean_absolute_error(y_test,y_pred)))

これでMSE、RMSE、MAEを実装することができました!
他の評価指標に関しては以下の記事でまとめていますのでチェックしてみてください!
機械学習の分類・予測精度における評価指標を徹底解説!当サイト【スタビジ】の本記事では、機械学習を実装する上での評価指標について徹底的にまとめていきます!回帰タスクや分類タスクにおける評価指標について見ていきましょう。評価フェーズや評価における注意点についても解説していきます。
MSE・RMSE・MAE まとめ

ここまでご覧いただきありがとうございました!
本記事ではMSE、RMSE、MAEについてまとめました!
今回は回帰問題における評価指標を見てきましたが、分類問題に使われる評価指標もあるので、ぜひこちらの記事も見てくださいね!
混同行列と評価指標についてわかりやすく解説!Pythonでの実装も!当サイト【スタビジ】の本記事では、混同行列について解説してきます。混同行列は分類問題で用いられており、Accuracyに限らないモデルの性能を評価することができます。今回は混同行列の定義を解説しつつ、これらの関係性について分かりやすく解説していきます!
また今回は回帰分析を使ったので、どのような手法なのか知りたい方はこちらもご覧ください!
回帰分析の理論とRでの実装!当サイト【スタビジ】の本記事では、統計学・データサイエンスの基本である回帰分析について理論とRでの実装を見ていきます。回帰分析についてしっかりおさえておくことで機械学習など高度な手法についても理解が深まります。
このようなデータサイエンスの力を身に付けるためにはスタビジの記事やスクールを活用すると良いでしょう。
当メディアでは、データサイエンティストの経験を詰め込んだデータサイエンス特化のスクール「スタアカ(スタビジアカデミー)」を運営していますので,興味のある方はぜひチェックしてみてください!
AIデータサイエンス特化スクール「スタアカ」

| 【価格】 | ライトプラン:1,280円/月(全コースが受講し放題) プレミアムプラン:129,800円(通常149,800円・買い切り) |
|---|---|
| 【オススメ度】 | |
| 【サポート体制】 | |
| 【受講形式】 | オンライン形式 |
| 【学習範囲】 | 統計学・機械学習・ディープラーニングを網羅的に学ぶ 生成AI(LLM・RAG・プロンプトエンジニアリング)を学ぶ SQLとPythonを組み合わせて実データを使った様々なワークを行う 実践的なビジネスフレームワークを学ぶ マーケティングの実行プラン策定 |
データサイエンティストとしての経験をふまえてエッセンスを詰め込んだのがこちらのスタビジアカデミー、略して「スタアカ」!!
当メディアが運営するスクールです。
月額1,280円のライトプランで、統計学から機械学習・生成AIまで全コースが受講し放題です!
プレミアムプランでは、24時間以内の質問対応と現役データサイエンティストとの1on1(30分×4回)を実施します!
カリキュラム自体は、他のスクールと比較して圧倒的に良い自信があるのでぜひ受講してみてください!
他のスクールのカリキュラムはPythonでの機械学習実装だけに焦点が当たっているものが多く、実務に即した内容になっていないものが多いです。
そんな課題感に対して、実務で使うことの多いSQLや機械学習のビジネス導入プロセスの理解なども合わせて学べるボリューム満点のコースになっています!
Pythonが初めての人でも学べるようなカリキュラムにしておりますので是非チェックしてみてください!
ウォルマートのデータを使って商品の予測分析をしたり、実務で使うことの多いGoogleプロダクトのBigQueryを使って投球分析をしたり、データサイエンティストに必要なビジネス・マーケティングの基礎を学んでマーケティングプランを作ってもらったりする盛りだくさんの内容になってます!
データサイエンスに関する記事はこちら!
【初心者必見】統計学入門に必要な知識と独学勉強方法を簡単に学ぼう!当ブログ【スタビジ】の本記事では、統計学入門に必要な知識をカンタンにまとめ、それらをどのように効率的に独学で勉強していけばよいかをお話ししていきます。統計学は難しいイメージが少しありますが、学び方をしっかり考えれば大丈夫!
【データサイエンティスト厳選18冊】データサイエンスを学ぶ上でオススメな本・教材!当ブログ【スタビジ】の本記事では、データサイエンスを学ぶ上でオススメできる本を厳選して紹介していきます。ここではデータサイエンティストになるために習得するスキルをデータサイエンスと称しております。いくつかの観点に切り分けて見ていきます。
データサイエンスを勉強できるスクールやサイトは、ぜひこちらを参考にしてみてください!
【徹底比較】データサイエンティストになるための学習ができるスクール9選!当サイト【スタビジ】の本記事では、データサイエンティストへの学習ができるスクールを紹介していきます。スクールに通ったからと言ってデータサイエンティストになれるわけではありませんが、データサイエンティストへの基本を着実に固めることは可能です…読んだ内容を、スタアカの「Python基礎」コースで身につける
データサイエンス・AIを、動画と課題で体系的に学べるオンラインスクール。最初のレッスンは無料で見られます。




