numpyで線形回帰する

提供: Akionux-wiki
Share/Save/Bookmark
移動: 案内検索

numpyで線形回帰して、matplotlibで結果をプロットする流れ。 以下のPythonスクリプトを例とする。

import numpy as np
A=np.array([[i*0.1,1] for i in range(10)])
B=np.array([i*0.2 for i in range(10)])
X=np.linalg.lstsq(A,B)

import matplotlib.pyplot as plt
x = np.array([0,1], dtype=float)
plt.figure(figsize=(4, 4), dpi=80)
plt.plot(x, X[0][0]*x+X[0][1])

plt.savefig('dummy_name.png')
plt.close()

線形回帰

まずはnumpyをnpとしてインポート

import numpy as np

独立変数(A)と従属変数の配列(B)を作る

A=np.array([[i*0.1,1] for i in range(10)])
B=np.array([i*0.2 for i in range(10)])

独立変数の配列の要素が[値,1]になっているが、この1の部分にはの形に回帰したい場合は1を、の形に回帰したい場合は0を入れる。 最小二乗法で線形回帰を実行し、結果をXに入れる

X=np.linalg.lstsq(A,B)

プロット

matplotlibのpyplotをインポート

import matplotlib.pyplot as plt

プロット用の独立変数の配列を作る

x = np.array([0,1], dtype=float)

図を新たに作る

plt.figure(figsize=(4, 4), dpi=80)

プロットする

plt.plot(x, X[0][0]*x+X[0][1])

プロットをファイルに保存する。 sagemath notebookを使う場合は表示するために必要。

plt.savefig('dummy_name.png')

最後にプロットを閉じる。

plt.close()