Numpy で最小二乗法フィットを実行する方法 (例付き)
最小二乗法は、特定のデータセットに最もよく適合する回帰直線を見つけるために使用できる方法です。
NumPy のlinalg.lstsq( ) 関数を使用して、最小二乗調整を実行できます。
次のステップバイステップの例は、この関数を実際に使用する方法を示しています。
ステップ 1: X と Y の値を入力します
次の NumPy 配列を作成することから始めましょう。
import numpy as np #define x and y arrays x = np. array ([6, 7, 7, 8, 12, 14, 15, 16, 16, 19]) y = np. array ([14, 15, 15, 17, 18, 18, 19, 24, 25, 29])
ステップ 2: 最小二乗調整を実行する
次のコードを使用して最小二乗近似を実行し、データに最もよく「適合」する行を見つけることができます。
#perform least squares fitting n.p. linalg . lstsq (np. vstack ([x, np. ones ( len (x))]). T , y, rcond= None )[ 0 ] array([0.96938776, 7.76734694])
結果は、最適な直線の傾きと切片の値を含むテーブルになります。
結果から次のことがわかります。
- 勾配: 0.969
- 盗塁数: 7,767
これら 2 つの値を使用すると、最適な直線を求める方程式を書くことができます。
ŷ = 7.767 + 0.969x
ステップ 3: 結果を解釈する
最適な線を解釈する方法は次のとおりです。
- x が 0 の場合、y の平均値は7.767です。
- x が 1 単位増加するごとに、y は平均0.969増加します。
最適直線を使用して、x の値に基づいて y の値を予測することもできます。
たとえば、 xa の値が 10 の場合、 y の値は17.457になると予測します。
- ŷ = 7.767 + 0.969x
- ŷ = 7.767 + 0.969(10)
- ŷ = 17.457
追加リソース
次のチュートリアルでは、NumPy で他の一般的なタスクを実行する方法について説明します。
NumPy配列から特定の要素を削除する方法
NumPy配列の最大値インデックスを取得する方法
NumPy 配列に値を入力する方法