解答と解説を表示
<h4>平均二乗誤差(MSE)の計算方法</h4>
<p>平均二乗誤差(Mean Squared Error, MSE)は、回帰問題などでモデルの予測精度を評価するために用いられる指標の一つです。以下の式で計算されます。</p>
<div class="formula">
$MSE = \frac{1}{N} \sum_{i=1}^{N} (y_{true, i} - y_{pred, i})^2$
</div>
<p>ここで、\(N\) はデータ点の数、\(y_{true, i}\) は i 番目のデータの実際の値、\(y_{pred, i}\) は i 番目のデータに対するモデルの予測値です。</p><h5>ステップ1: 各データ点の予測値を計算</h5>
<p>モデル \( y_{pred} = 2x + 1 \) を使用します。</p>
<ul>
<li>データ点1 (x=1): \( y_{pred, 1} = 2(1) + 1 = 3 \)</li>
<li>データ点2 (x=2): \( y_{pred, 2} = 2(2) + 1 = 5 \)</li>
<li>データ点3 (x=3): \( y_{pred, 3} = 2(3) + 1 = 7 \)</li>
</ul><h5>ステップ2: 各データ点の二乗誤差を計算</h5>
<ul>
<li>データ点1: \( (y_{true, 1} - y_{pred, 1})^2 = (3.5 - 3)^2 = (0.5)^2 = 0.25 \)</li>
<li>データ点2: \( (y_{true, 2} - y_{pred, 2})^2 = (4.5 - 5)^2 = (-0.5)^2 = 0.25 \)</li>
<li>データ点3: \( (y_{true, 3} - y_{pred, 3})^2 = (6.0 - 7)^2 = (-1.0)^2 = 1.0 \)</li>
</ul><h5>ステップ3: 二乗誤差の平均を計算</h5>
<p>データ点の数 \(N=3\) です。</p>
<div class="formula">
$MSE = \frac{1}{3} (0.25 + 0.25 + 1.0)
= \frac{1.5}{3}
= 0.5 $
</div><p>したがって、平均二乗誤差は 0.5 です。</p><div class="key-point">
<div class="key-point-title">MSEの特徴</div>
<ul>
<li>予測誤差の二乗を平均するため、大きな誤差に対してより大きなペナルティを与える。</li>
<li>単位が元の値の二乗になるため、解釈がしにくい場合がある(RMSE(Root Mean Squared Error)を使うこともある)。</li>
<li>微分可能であるため、勾配降下法などの最適化アルゴリズムで損失関数としてよく用いられる。</li>
</ul>
</div><h5>Python (NumPy) による計算</h5>
<div class="code-block">
<pre>
import numpy as npx_values = np.array([1, 2, 3])
y_true = np.array([3.5, 4.5, 6.0])# モデルによる予測
y_pred = 2 * x_values + 1# MSEの計算
mse = np.mean((y_true - y_pred)**2)print(f"True values (y_true): {y_true}")
print(f"Predicted values (y_pred): {y_pred}")
print(f"Squared Errors: {(y_true - y_pred)**2}")
print(f"Mean Squared Error (MSE): {mse:.4f}")
# 出力:
# True values (y_true): [3.5 4.5 6. ]
# Predicted values (y_pred): [3 5 7]
# Squared Errors: [0.25 0.25 1. ]
# Mean Squared Error (MSE): 0.5000
</pre>
</div>