TechCraft – エンジニアのためのスキルアップメモ

エンジニアのスキルアップを少しでも加速する技術ブログ

機械学習の「精度保証」を正しく理解する

機械学習の「精度保証」を正しく理解する

〜 RMSE・R²・MAEなど主要評価指標を具体例で徹底解説 〜

1. はじめに

機械学習のモデルを構築したあと、最も重要なのは「どれくらい正確に予測できるのか?」を評価することです。
このとき使われるのが 精度指標(性能評価指標)
しかし、「RMSEとMAEってどう違うの?」「R²がマイナスになるってどういうこと?」という混乱はよくある話です。

この記事では、代表的な精度指標を実例付きで解説し、精度保証のためにどの指標をどう使えばよいかを明確にしていきます。


2. 精度指標の目的と分類

機械学習モデルの精度評価は大きく次の2つに分けられます:

  • 回帰モデルの評価:連続値を予測する(例:価格、売上、気温など)
  • 分類モデルの評価:カテゴリを予測する(例:スパムか否か、病気の有無など)

この記事では 回帰モデルにおける精度保証 に絞り、以下の主要指標を解説します:

  • MAE(Mean Absolute Error)
  • MSE(Mean Squared Error)
  • RMSE(Root Mean Squared Error)
  • R²(決定係数)

3. 主要な回帰評価指標と使いどころ

✅ MAE:Mean Absolute Error(平均絶対誤差)

定義
実測値と予測値の絶対誤差の平均。


MAE = (1/n) × Σ|y_i - ŷ_i|

特徴

  • 単純で解釈しやすい
  • 外れ値の影響を受けにくい
  • 単位は元の変数と同じ(例:家賃 → 円)

実測:300, 500, 400
予測:310, 480, 390
差分:10, 20, 10 → 平均 = 13.3


✅ MSE:Mean Squared Error(平均二乗誤差)

定義
誤差を二乗して平均した値。


MSE = (1/n) × Σ(y_i - ŷ_i)²

特徴

  • 大きな誤差をより大きく評価(外れ値に敏感)
  • 勾配最適化で多く用いられる指標(数学的に扱いやすい)

差分:10, 20, 10 → 二乗:100, 400, 100 → 平均 = 200


✅ RMSE:Root Mean Squared Error(平方根平均二乗誤差)

定義
MSEの平方根を取ったもの。誤差の「標準的な大きさ」を表す。


RMSE = √[(1/n) × Σ(y_i - ŷ_i)²]

特徴

  • 単位が元の変数と同じで直感的にわかりやすい
  • MAEより外れ値に敏感
  • MSEより解釈しやすい

前項のMSE = 200 → √200 ≈ 14.14


✅ R²スコア:決定係数

定義
モデルの予測がどれだけ「平均だけで予測した場合」よりも改善されているかを示すスコア。


R² = 1 - [Σ(y_i - ŷ_i)² / Σ(y_i - ȳ)²]
(ȳ は目的変数の平均)

特徴

  • 1に近いほど良い(最大1.0)
  • 0以下になる場合もある(平均より悪いモデル)
  • 相対的な精度評価に使われる

  • 完全一致 → R² = 1.0
  • 平均と同程度 → R² ≈ 0
  • 平均よりも悪い → R² < 0

4. 精度保証における「指標の選び方」

指標 外れ値に強い 単位の解釈 解釈のしやすさ 向いているケース
MAE 平均的な誤差を知りたいとき
MSE 最小二乗法ベースのモデル
RMSE 実用的な誤差の大きさを知りたい
単位なし 相対的な精度評価

5. 実際の評価コード(scikit-learn使用例)

from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
import numpy as np

y_true = np.array([300, 500, 400])
y_pred = np.array([310, 480, 390])

mae = mean_absolute_error(y_true, y_pred)
mse = mean_squared_error(y_true, y_pred)
rmse = np.sqrt(mse)
r2 = r2_score(y_true, y_pred)

print(f'MAE: {mae:.2f}')
print(f'MSE: {mse:.2f}')
print(f'RMSE: {rmse:.2f}')
print(f'R²: {r2:.3f}')

出力例

MAE: 13.33
MSE: 200.00
RMSE: 14.14
R²: 0.970

6. まとめ

  • 機械学習の「精度保証」には、複数の評価指標を組み合わせてモデルの性能を多角的に分析することが重要。
  • MAEやRMSEは誤差の絶対的な大きさを、R²はモデルの相対的な性能を示します。
  • 使用する指標は、プロジェクトの目的や業務要件に応じて選ぶ必要があります。

正しく評価し、信頼できるモデルを提供することが、エンジニアとしての信頼につながります。