Python

RMSE、MAE、MSEの違いを解説!Pythonでそれぞれ計算してみよう!

MSE、RMSE、MAE アイキャッチ
記事内に商品プロモーションを含む場合があります
ウマたん
ウマたん
当サイト【スタビジ】の本記事ではRMSE、MAE、MSEについて解説してきます。これらの指標は機械学習のモデルにおける評価指標であり、目的に合わせて適切に使うことが大切です。今回はこれらの評価指標の解説とPythonによる実装を見ていきましょう!

こんにちは!

スタビジ編集部です!

今回はMSE、RMSE、MAEについて解説していきます!

これら三つの指標は主に機械学習モデルの評価指標として用います。特に回帰問題における機械学習モデルで使用します。

ウマたん
ウマたん
これら3つの指標はよく使われるので、指標の意味と式をしっかり理解していこう!

この記事では、MSE、RMSE、MAEについて解説していきます!またこれらの指標をPythonで実装していきます!

・MSE、RMSE、MAEについて解説!
・MSE、RMSE、MAEをPythonで実装!

以下の動画でも解説しているのであわせてチェックしてみてください!

MSE、RMSE、MAEについて解説!

quiz

早速MSE、RMSE、MAEを解説していきます。(\(y_{i}\)は実測値、\(\hat{y_{i}}\)は予測値として用いています。)

MSE(Mean Squared Error)

まずMSEはMean Squared Errorの略であり、残差の二乗の平均を表しています。

身近な例として、最小二乗法を用いた回帰分析ではMSEを最小化するようにパラメータを調節していますね!

\(MSE = \frac{1}{n}\sum_{i=1}^{n}(y_{i}-\hat{y_{i}})^{2}\)

しかしMSEの単位に着目してみると学習データの単位の二乗となるので、評価指標の解釈が非常に難しいんです。

RMSE(Root Mean Squared Error)

そこで登場するのがRMSE

RMSEはRoot Mean Squared Errorの略であり、MSEの平方根を表しています。これによってRMSEの単位は学習データの単位と同じになるため、解釈がしやすくなります。

\(RMSE = \sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_{i}-\hat{y_{i}})^{2}}\)

MAE(Mean Absolute Error)

最後にMAEはMean Absolute Errorの略であり、残差の絶対値の平均を表しています。

\(MAE=\frac{1}{n}\sum_{i=1}^{n}|y_{i}-\hat{y_{i}}|\)

RMSEとの違いは、外れ値にロバストである(頑健である)か。

RMSEはMSEのルートを取って単位を揃えているのですが、残差の二乗を用いているので、残差が大きいほどRMSEの値も高くなってしまいます。

一方、MAEは残差の絶対値であるので大きさはRMSEと比較するとロバストになるんです!

したがって解釈性を重視、あるいは外れ値の影響を抑えたい場合はMAEが有効です!

具体的な計算式で計算してMSE、RMSE、MAEを比較してみよう!

数式だけだとイメージが湧きにくいと思うので具体的にMSE、RMSE、MAEを計算して見ていきましょう!

以下のような結果が得られたとしましょう!

予測値観測値残差
10011010
10001100100

この時、MSE、RMSE、MAEはどうなるでしょうか?

・MSE

まずMSEは予測値と観測値の差である残差の二乗を足すので、\(10^2+100^2=10100\)となり、それを2で割った5050となります。

・RMSE

それではRMSEはどうなるでしょう?MSEの値にルートを取るので、71.063・・・となります。

・MAE

それではMAEはどうなるでしょう?\(10+100=110\)を2で割った55となりますね。

一方で以下のようなケースではどうでしょう?

予測値観測値残差
10011010
10011010

・MSE

この時、MSEは\(10^2+10^2=200\)となり、それを2で割った100となります。

・RMSE

RMSEはMSEの値にルートを取るので、10となります。

・MAE

MAEは\(10+10=20\)を2で割った10となりますね。

残差が同じ場合はRMSEとMAEが等しくなりました。

もちろんMSEは数字の単位が違うので大きくなりますが、RMSEも外れ値があると外れ値に引っ張られて大きな値を取りがちな傾向があることが分かったと思います。

単一の指標だけではなくて様々な指標を複合的に見て評価できるようになりましょう!

MSE、RMSE、MAEをPythonで実装!

stories pc

そして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 まとめ

Happy

本記事ではMSE、RMSE、MAEについてまとめました!

今回は回帰問題における評価指標を見てきましたが、分類問題に使われる評価指標もあるので、ぜひこちらの記事も見てくださいね!

混同行列 アイキャッチ
混同行列と評価指標についてわかりやすく解説&Python実装!当サイト【スタビジ】の本記事では、混同行列について解説してきます。混同行列は分類問題で用いられており、Accuracyに限らないモデルの性能を評価することができます。今回は混同行列の定義を解説しつつ、これらの関係性について分かりやすく解説していきます!...

また今回は回帰分析を使ったので、どのような手法なのか知りたい方はこちらもご覧ください!

回帰分析
回帰分析の理論とRでの実装!当サイト【スタビジ】の本記事では、統計学・データサイエンスの基本である回帰分析について理論とRでの実装を見ていきます。回帰分析についてしっかりおさえておくことで機械学習など高度な手法についても理解が深まります。...

このようなデータサイエンスの力を身に付けるためにはスタビジの記事やスクールを活用すると良いでしょう。

当メディアでは、データサイエンティストの経験を詰め込んだデータサイエンス特化のスクール「スタアカ(スタビジアカデミー)」を運営していますので,興味のある方はぜひチェックしてみてください!

AIデータサイエンス特化スクール「スタアカ」

スタアカトップ
【価格】ライトプラン:1280円/月
プレミアムプラン:149,800円
【オススメ度】
【サポート体制】
【受講形式】オンライン形式
【学習範囲】データサイエンスを網羅的に学ぶ
実践的なビジネスフレームワークを学ぶ
SQLとPythonを組み合わせて実データを使った様々なワークを行う
マーケティングの実行プラン策定
マーケティングとデータ分析の掛け合わせで集客マネタイズ

データサイエンティストとしての経験をふまえてエッセンスを詰め込んだのがこちらのスタビジアカデミー、略して「スタアカ」!!

当メディアが運営するスクールです。

24時間以内の質問対応と現役データサイエンティストによる複数回のメンタリングを実施します!

カリキュラム自体は、他のスクールと比較して圧倒的に良い自信があるのでぜひ受講してみてください!

他のスクールのカリキュラムはPythonでの機械学習実装だけに焦点が当たっているものが多く、実務に即した内容になっていないものが多いです。

そんな課題感に対して、実務で使うことの多いSQLや機械学習のビジネス導入プロセスの理解なども合わせて学べるボリューム満点のコースになっています!

Pythonが初めての人でも学べるようなカリキュラムしておりますので是非チェックしてみてください!

ウォルマートのデータを使って商品の予測分析をしたり、実務で使うことの多いGoogleプロダクトのBigQueryを使って投球分析をしたり、データサイエンティストに必要なビジネス・マーケティングの基礎を学んでマーケティングプランを作ってもらったり・Webサイト構築してデータ基盤構築してWebマーケ×データ分析実践してもらったりする盛りだくさんの内容になってます!

・BigQuery上でSQL、Google Colab上でPythonを使い野球の投球分析
・世界最大手小売企業のウォルマートの実データを用いた需要予測
・ビジネス・マーケティングの基礎を学んで実際の企業を題材にしたマーケティングプランの策定
・Webサイト構築してデータ基盤構築してWebマーケ×データ分析実践して稼ぐ

データサイエンスに関する記事はこちら!

統計学入門に必要な知識と独学勉強方法を簡単に学ぼう!当ブログ【スタビジ】の本記事では、統計学入門に必要な知識をカンタンにまとめ、それらをどのように効率的に独学で勉強していけばよいかをお話ししていきます。統計学は難しいイメージが少しありますが、学び方をしっかり考えれば大丈夫!...
デーサイエンス本
【データサイエンティスト厳選18冊】データサイエンスを学ぶ上でオススメな本・教材!当ブログ【スタビジ】の本記事では、データサイエンスを学ぶ上でオススメできる本を厳選して紹介していきます。ここではデータサイエンティストになるために習得するスキルをデータサイエンスと称しております。いくつかの観点に切り分けて見ていきます。...

データサイエンスを勉強できるスクールやサイトは、ぜひこちらを参考にしてみてください!

データサイエンティスト スクール
【徹底比較】データサイエンティストのための学習ができるスクール9選! スクール名 オススメ度 価格の安さ サポート体制 公式サイト テックアカデミー ...
スタビジアカデミーでデータサイエンスをさらに深く学ぼう!

スタアカサービスバナースタビジのコンテンツをさらに深堀りしたコンテンツが動画と一緒に学べるスクールです。

プレミアムプランでは私がマンツーマンで伴走させていただきます!ご受講お待ちしております!

スタビジアカデミーはこちら