今回は、PythonでRMSE – Root Mean Square Errorをメトリクスとして実装することに焦点を当てます。
Pythonにおける二乗平均平方根誤差(RMSE)とは?
RMSEの概念を深く理解する前に、まずPythonのエラーメトリクスを理解しましょう。
エラーメトリクスは、以下のような様々なメトリクスを通して、効率と精度を追跡することができます。
- 平均二乗誤差(MSE)
- 二乗平均平方根誤差(RMSE)
- R二乗
- 精度
- MAPE など
平均二乗誤差は、回帰問題に対するあらゆる機械学習アルゴリズムの精度やエラー率を判断するためのエラーメトリクスの1つです。
つまり、MSEはある特徴量や変数の予測値と実際の値との平均二乗差を求めるためのリスク関数です。
RMSEはRoot Mean Square Errorの頭文字を取ったもので、Mean Square Error関数から得られる値の平方根です。
RMSEを用いると、モデルのパラメーターの推定値と実測値の差を簡単にプロットすることができる。
これにより、モデルの効率性を明確に判断することができる。
通常、RMSEのスコアが180未満であれば、中程度またはよく動作するアルゴリズムとして良いスコアとみなされます。
RMSEが180を超える場合は、モデルのパラメータに対して特徴選択とハイパーパラメータチューニングを行う必要があります。
次のセクションでは、その実装に焦点を当てよう。
NumPyモジュールによる二乗平均平方根誤差の測定
以下の式を見てみましょう。
import math
y_actual = [ 1 , 2 , 3 , 4 , 5 ]
y_predicted = [ 1.6 , 2.5 , 2.9 , 3 , 4.1 ]
MSE = np.square(np.subtract(y_actual,y_predicted)).mean()
RMSE = math.sqrt(MSE)
print ( "Root Mean Square Error: )
print (RMSE)
|
上記のように、二乗平均平方根は、変数/特徴の推定値と実際の値の二乗差の平均の平方根です。
以下の例では、NumPy モジュールの関数を用いて RMSE の概念を実装している。
- numpy.subtract()` 関数を用いて、推定値と実測値の差分を計算します。
- さらに、
numpy.square()
関数を用いて、上記の結果の二乗を計算します。 - 最後に
numpy.mean()
関数で二乗した値の平均を計算します。出力はMSEスコアです。 - 最後に、
math.sqrt()
関数でMSEの平方根を計算し、RMSEの値を得ます。
例えば、以下の様になります。
Root Mean Square Error: 0.6971370023173351 |
結果は以下の通りです。
from sklearn.metrics import mean_squared_error
import math
y_actual = [ 1 , 2 , 3 , 4 , 5 ]
y_predicted = [ 1.6 , 2.5 , 2.9 , 3 , 4.1 ]
MSE = mean_squared_error(y_actual, y_predicted)
RMSE = math.sqrt(MSE)
print ( "Root Mean Square Error: )
print (RMSE)
|
Python scikit learn ライブラリによるRMSE
この例では、sklearn.metricsライブラリの mean_square_error()
関数を用いてMSEスコアを算出しています。
さらに、以下のようにMSEの平方根でRMSEスコアを算出しています。
例えば、以下の様になります。
Root Mean Square Error: 0.6971370023173351 |
結果は以下の通りです。
まとめ
ここまでで、このトピックは終了です。
もし何か疑問があれば、お気軽にコメントください。
Pythonに関連するこのような記事のために、ご期待ください、そして、それまでは、幸せな学習!