まず、散布図を作成します。
import matplotlib.pyplot as plt x = [1,2,3,4,5] y = [1571,1630,1681,1603,1623] plt.scatter(x, y)
合計距離の最小値を求める
D = 5Σ[t=1]*{yl – (w0 + w1xl)}^2
実装する
import numpy as np import matplotlib.pyplot as plt x = np.array([1,2,3,4,5]) y = np.array([1571,1630,1681,1603,1623]) def reg1dim(x, y): a = np.dot(x, y)/ (x ** 2).sum() return a a = reg1dim(x, y) plt.scatter(x, y, color="k") plt.plot([0,x.max()], [0,a * x.max()])
ああああああああああ、全然やりたいことと違う
plotする時に、0からスタートすると駄目なのか。。
平均(mean)は、np.mean()だから、こうか?
x = np.array([1,2,3,4,5]) y = np.array([1571,1630,1681,1603,1623]) m = np.mean(y) def reg1dim(x, y): a = np.dot(x, y)/ (x ** 2).sum() return a a = reg1dim(x, y) plt.scatter(x, y, color="k") plt.plot([0,x.max()], [m,a * x.max()])
あれ、なんかちゃうなー、 [m,a * x.max()]のところがおかしい。。
最小二乗法はこういう図になるはずなんだけど。。