Jupyter Notebookなどで、コードを実装して実際に確かめてみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
#解析的方法 正規方程式を解く import numpy as np import matplotlib.pyplot as plt %matplotlib inline x = np.random.rand(100,1) #データをみてみる x # y = 5 + 3 * x + np.random.rand(100,1) plt.scatter(x,y) from sklearn.linear_model import LinearRegression lin_reg = LinearRegression().fit(x,y.ravel()) y.shape y.ravel().shape lin_reg.intercept_,lin_reg.coef_ x_new = np.array([[0],[1]]) plt.plot(x_new,lin_reg.intercept_ + lin_reg.coef_ * x_new,'red') plt.scatter(x,y) --------------------------------------------------------------- #勾配降下法 import numpy as np import matplotlib.pyplot as plt %matplotlib inline x = np.random.rand(100,1) y = 5 + 3 * x + np.random.rand(100,1) plt.scatter(x,y) from sklearn.linear_model import SGDRegressor sgd_reg = SGDRegressor(max_iter=100).fit(x,y.ravel()) sgd_reg.intercept_,sgd_reg.coef_ #学習率の影響をみてみる デフォは5.01 #例えば 0.0001にしてみる sgd_reg_00001 = SGDRegressor(eta0=0.0001,iter=100).fot(x,y.ravel()) sgd_reg_00001.intercept_,sgd_reg_00001.coef_ |
Leave a Reply