Python での RMSE の使用

Fariba Laiq 2023年1月30日
  1. Python での二乗平均平方根誤差の式
  2. Python で NumPy を使用して RMSE を計算する
  3. Python で scikit-learn ライブラリを使用して RMSE を計算する
Python での RMSE の使用

二乗平均とも呼ばれる RMS(二乗平均平方根)は、一連の数値の二乗の算術平均の平方根です。

RMSE(二乗平均平方根誤差)は、実際の結果とモデルからの計算結果の差を示します。これは、モデルの品質(定量的データを使用)、モデルの予測精度、またはモデルのエラーの割合を定義します。

RMSE は、教師あり機械学習モデルを評価するための方法の 1つです。RMSE が大きいほど、モデルの精度が低くなり、その逆も同様です。

NumPy ライブラリまたは scikit-learn ライブラリを使用して、Python で RMSE を見つける方法は複数あります。

Python での二乗平均平方根誤差の式

RMSE の計算の背後にあるロジックは、次の式によるものです。

$$ RMSE=\sqrt{\sum_{i=1}^n {(predicted_{i}-actual_{i})}^2} $$

Python で NumPy を使用して RMSE を計算する

NumPy は、大きなデータ、数値、配列、および数学関数を処理するための便利なライブラリです。

このライブラリを使用すると、入力として実際の値と予測された値が与えられたときに、RMSE を簡単に計算できます。NumPy ライブラリの組み込み関数を使用して、二乗、平均、差、平方根などのさまざまな数学演算を実行します。

次の例では、最初に実際の値と予測された値の間のを計算することによって、RMSE を計算します。その差の二乗を計算し、次に平均を取ります。

このステップまで、MSE を取得します。RMSE を取得するには、MSE平方根を使用します。

このライブラリを使用するには、最初にインストールする必要があります。

サンプルコード:

# python 3.x
import numpy as np

actual = [1, 2, 5, 2, 7, 5]
predicted = [1, 4, 2, 9, 8, 6]
diff = np.subtract(actual, predicted)
square = np.square(diff)
MSE = square.mean()
RMSE = np.sqrt(MSE)
print("Root Mean Square Error:", RMSE)

出力:

#python 3.x
Root Mean Square Error: 3.265986323710904

Python で scikit-learn ライブラリを使用して RMSE を計算する

Python で RMSE を計算する別の方法は、scikit-learn ライブラリを使用することです。

scikit-learn は機械学習に役立ちます。このライブラリには、組み込みの mean_square_error 関数を含む sklearn.metrics というモジュールが含まれています。

このモジュールからコードに関数をインポートし、関数呼び出しから実際の値と予測された値を渡します。この関数は MSE を返します。RMSE を計算するために、MSE の平方根を取ります。

このライブラリを使用するには、最初にインストールする必要があります。

サンプルコード:

# python 3.x
from sklearn.metrics import mean_squared_error
import math

actual = [1, 2, 5, 2, 7, 5]
predicted = [1, 4, 2, 9, 8, 6]
MSE = mean_squared_error(actual, predicted)
RMSE = math.sqrt(MSE)
print("Root Mean Square Error:", RMSE)

出力:

#python 3.x
Root Mean Square Error: 3.265986323710904
著者: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

関連記事 - Python Math