前提・実現したいこと
参考にしているコードの「#最小二乗法の式を解いて係数を得る」箇所が何をしているのかわかりません。
自分の持っているコードに適応する場合には、どう書いたらいいのでしょか?
参考にしているコード
# 必要なライブラリのインポート import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression # 観測点の生成(等間隔のxに対して、ノイズを乗っけたyを生成) np.random.seed(0) x = (np.arange(51) / 50)[:, np.newaxis] noise = (np.random.rand(51) / 3)[:, np.newaxis] y = (x * 2) + noise y[30:38] = 3.25 # 最小二乗法の式を解いて係数を得る x_ = np.concatenate([x, np.ones(np.shape(x))], axis=1) w = np.dot(np.linalg.inv(np.dot(x_.T, x_)), np.dot(x_.T, y)) y_hat_ = np.dot(x_, w)
手元にあるコード
python
1 2# 実験値 3x = np.array([6.26379, 8.57417, 8.66527, 8.75069, 11.6708, 12.3487, 14.5032, 15.7422, 21.7646, 23.0518, 26.5069, 26.4035, 26.321, 23.0045, 19.2654, 17.9425, 14.5669, 13.513, 10.4902, 9.95136, 9.77395]) 4y = np.array([3.709910308, 3.300454417, 3.219869361, 2.879991517, 2.250120678, 2.24981186, 1.859931899, 1.839996231, 1.560029151, 1.360016958, 1.210037387, 1.527926405, 1.320005022, 1.340038138, 1.618120234, 1.410033737, 1.83006856, 1.849465938, 2.141939621, 2.219958336, 2.494675074]) 5 6# 係数見つけたい関数 7def func(x, a): 8 return ((-(a+(b*x))) + ((a+((b*x)**2)) - (4*b*math.log(0.1)))**0.5) / (2*b)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/22 02:51
2020/11/22 02:53