機械学習の具体的手法
G検定の回帰の評価指標(MSE・RMSE・MAE・決定係数の計算例)
数値を予測する回帰の指標を、4件のデータの計算例で確認します。誤差の大きさの平均を表すのが三つの誤差指標、実測値のばらつきのうち説明できた割合を表すのが決定係数です。
計算例は、scikit-learn公式ドキュメントの使用例と同じ4件で、実測値は 3・-0.5・2・7、予測値は 2.5・0・2・8 です。
この記事の目次
公式情報の確認
試験日、料金、申込条件、試験方式など変動する情報は、公式情報を最終確認してください。
試験の出題範囲・実施要項は変動するため、受験前に公式情報を確認してください。
4つの回帰の指標の式と読み方
| 指標 | 何を計算するか | 読み方 |
|---|---|---|
| MAE(平均絶対誤差) | 誤差の絶対値の平均 | 単位は元の値と同じ。大きな外れの影響が比較的小さい |
| MSE(平均二乗誤差) | 誤差の2乗の平均 | 単位は元の値の2乗。大きな誤差を強く反映する |
| RMSE(二乗平均平方根誤差) | MSEの平方根 | 単位は元の値と同じ。大きな誤差を強く反映する |
| 決定係数(R²) | 1 −(誤差の2乗の合計 ÷ 実測値の平均からのずれの2乗の合計) | 最良は1.0。常に平均を予測するモデルは0.0。負になることもある |
MAE・MSE・RMSEは小さいほど予測が近く、決定係数は1に近いほど説明できています。学習時に最小化する誤差関数と、評価に使う指標の違いは損失関数と評価指標を比べたページにあります。
4件の誤差を並べる
誤差は「予測値 − 実測値」で、絶対値と2乗は、その誤差から作ります。
| 件 | 実測値 | 予測値 | 誤差 | 絶対値 | 2乗 |
|---|---|---|---|---|---|
| 1 | 3 | 2.5 | -0.5 | 0.5 | 0.25 |
| 2 | -0.5 | 0 | 0.5 | 0.5 | 0.25 |
| 3 | 2 | 2 | 0 | 0 | 0 |
| 4 | 7 | 8 | 1 | 1 | 1 |
絶対値の合計は 0.5 + 0.5 + 0 + 1 = 2、2乗の合計は 0.25 + 0.25 + 0 + 1 = 1.5 です。
MAEとMSEとRMSEを計算する
- MAE = 2 ÷ 4 = 0.5
- MSE = 1.5 ÷ 4 = 0.375
- RMSE = 0.375の平方根 ≒ 0.61
MAEの0.5とMSEの0.375は、scikit-learn公式ドキュメントの使用例の出力と一致します。RMSEは、公式ドキュメントが「MSEの平方根で、目的変数と同じ単位で測れる指標」と説明するとおり、MSEから求めます。MSEの単位は元の値の2乗なので、同じ単位で誤差の大きさを言いたいときはRMSEを使います。
MAEとRMSEの使い分けはMAEとRMSEの違いのページにまとめています。
大きな外れがあるとどう変わるか
別の4件で、誤差の絶対値が(1, 1, 1, 1)の場合と(0, 0, 0, 4)の場合を比べます。この数はこのページの架空の例です。
| 誤差の絶対値 | MAE | MSE | RMSE |
|---|---|---|---|
| 1, 1, 1, 1 | 1 | 1 | 1 |
| 0, 0, 0, 4 | 1 | 4 | 2 |
誤差の合計は同じ4でも、1件に集中するとMSEは4倍、RMSEは2倍になります。誤差を2乗すると、大きな誤差ほど強く効くためです。MAEは2つとも1で、変わりません。
決定係数の計算
決定係数は、1 −(誤差の2乗の合計 ÷ 実測値と実測値の平均との差の2乗の合計)で求めます。実測値の平均は (3 − 0.5 + 2 + 7) ÷ 4 = 2.875 です。
| 件 | 実測値 | 平均との差 | 差の2乗 |
|---|---|---|---|
| 1 | 3 | 0.125 | 0.015625 |
| 2 | -0.5 | -3.375 | 11.390625 |
| 3 | 2 | -0.875 | 0.765625 |
| 4 | 7 | 4.125 | 17.015625 |
差の2乗の合計は 29.1875、誤差の2乗の合計は 1.5 なので、決定係数は 1 − 1.5 ÷ 29.1875 ≒ 0.95 です。
- scikit-learnの公式ドキュメントは、決定係数を、モデルの説明変数で説明できた目的変数の分散の割合と説明している
- 最良のスコアは1.0で、モデルが任意に悪くなりうるため負にもなる
- 入力を無視して実測値の平均を予測し続けるモデルは0.0になる
- 分散はデータセットごとに違うため、異なるデータセットの間で単純には比べにくい
線形回帰で最小化する誤差の考え方は線形回帰とロジスティック回帰のページで、数値例つきで確認できます。
場面ごとの指標の選び分け
ここまでの計算から、場面ごとに次のように選び分けられます。選び方は、このページの計算例からの整理です。
- 予測の誤差を、元の値と同じ単位で「平均でどれだけ外れるか」として伝えたいときは、MAEかRMSE。この例ではMAEが0.5、RMSEが約0.61で、元の値の単位のまま読める
- まれな大きな外れを重く見たいときは、2乗を使うMSEかRMSE。外れの例ではMAEが1のままでもRMSEは2まで上がるので、大きな外れがあるかどうかも見分けられる
- 大きな外れの影響を抑えたいときは、絶対値の平均のMAE
- 単位が違う別々のデータで、モデルの当てはまりを比べたいときは、単位を持たない割合の決定係数。ただし分散はデータセットごとに違うので、異なるデータセットの間では単純に比べない
MSEとRMSEは、片方がわかればもう片方が求まる関係です。MSEが0.375ならRMSEは0.375の平方根で約0.61、RMSEが2ならMSEは2の2乗で4になります。試験の問題文で数値が与えられたときは、どの指標の値なのかを先に確かめてから計算します。
問題文から読み取る
このページの計算例から導いた読み方です。出題を予想するものではありません。
- 「誤差の2乗の平均」とあれば、MSE
- 「MSEの平方根」「目的変数と同じ単位」とあれば、RMSE
- 「誤差の絶対値の平均」「外れ値の影響を受けにくい」とあれば、MAE
- 「説明できた分散の割合」「1に近いほど当てはまりが良い」とあれば、決定係数
- 「正解率・適合率・再現率」は分類の指標で、数値を予測する回帰には使わない
G検定の学習に使う書籍(Amazon)
PRよくある質問
MSEとRMSEは何が違いますか?
RMSEはMSEの平方根です。scikit-learnの公式ドキュメントは、MSEの平方根をとったRMSEは目的変数と同じ単位で測れる指標だと説明しています。この例ではMSEが0.375、RMSEが約0.61です。
MAEとRMSEは、どちらが外れ値に強いですか?
誤差を2乗するRMSEは大きな誤差を強く反映するので、MAEのほうが外れの影響を受けにくい指標です。このページの外れの例では、MAEはどちらも1のまま、RMSEは1から2に変わります。
決定係数は負の値になりますか?
なります。scikit-learnの公式ドキュメントは、最良のスコアは1.0で、モデルが任意に悪くなりうるので負にもなると説明しています。入力を無視して実測値の平均を予測し続けるモデルが0.0です。
回帰の指標は、G検定のシラバスにありますか?
JDLAのG検定ページは、試験範囲の技術分野に「モデルの選択・評価」と「誤差関数」を挙げています。MSEなどの回帰の指標は、このページでは、その学習で使う内容として整理しています。出題を予想するものではありません。
