多項式回帰について with Python

deg3 データサイエンス





多項式回帰


$$\hat{ y } = \beta_0 + \beta_1x_1 + \beta_2x_2 \cdots + \beta_nx_n$$

と表します。

プログラムと結果

numpyのpolyfit()と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)

xp = np.linspace(0, 8, 100)

#1~5次の多項式回帰線を描きます。
for i in range(5):
    p4 = np.polyfit(x, y, i+1)
    print('多項式の係数{0}'.format(p4))
    p = np.poly1d(p4)
    #xとyの散布図
    plt.scatter(x,y)
    #多項式回帰線
    plt.plot(xp, p(xp), c='r')
    plt.title('deg = {}'.format(i+1))
    plt.show()

コメント

タイトルとURLをコピーしました