numpy.polyfit(x,y,n)
SciPy.org numpy.polyfitを参考にしています。
テキトーな日本語に加え、テキトーな解釈なので、上の公式マニュアルも読むことをお勧めします。
poly1dと連携させるとかなり便利です。
簡単に回帰線をmatplotで描けます。
np.polyfit(x,y,n)
polyfit(x, y, deg, rcond = None, full = False, w = None, cov = False)
x:numpyのarray型 M行1列
y:numpyのarray型 M行1列 か M行k列
deg:多項式の係数の数
以下省略
戻り値
多項式の係数と切片がarrayで返される
’’’よく分からないけどメモ’’’
Full=Falseかつcov = Trueのとき、多項式係数の推定値の共分散行列が返される
実行
poly1dを使い回帰線を描きます。
ソースコード
%matplotlib inline import numpy as np from pylab import * #ランダムな数を固定 np.random.seed(0) x = np.random.normal(3.0, 1.0, 100) y = 10 + x * np.random.rand(100) ''' 多項式回帰 ''' #numpyのarrayに変換 x = np.array(x) y = np.array(y) p4 = np.polyfit(x, y, 4) print('多項式の係数{0}'.format(p4)) xp = np.linspace(0, 8, 100) p = np.poly1d(p4) #xとyの散布図 plt.scatter(x,y) #多項式回帰線 plt.plot(xp, p(xp), c='r') plt.title('deg = 4') plt.show()
出力結果
おまけ
過学習