本文只是做為乙個自我梳理
線形回歸的特點
將特徵x 和結果 y 分別放入兩個不同矩陣
多元線形回歸的時候新增乙個x0=
1x_0 = 1
x0=
1多元線形回歸的時候新增乙個x0=
1x_0 = 1
x0=
1梯度下降 梯度下降
** h(x
)=θt
xh(x) = \theta^tx
h(x)=θ
tx** h(x
)=θt
xh(x) = \theta^tx
h(x)=θ
tx所以第一步載入矩陣:
資料就搬照鏈結裡面的
data = np.array([[1.1,1.5,2.5],
[1.3,1.9,3.2],
[1.5,2.3,3.9],
[1.7,2.7,4.6],
[1.9,3.1,5.3],
[2.1,3.5,6]])
這裡面x的值就是前兩個,一共有六組訓練。例:y
=2.5
=1.1θ1
+1.5θ2
+θ
0y=2.5=1.1θ_1 +1.5\theta_2+\theta_0
y=2.5=
1.1θ
1+1
.5θ2
+θ0
def getdata(data):
m,n = np.shape(data)
traindata = np.ones((m,n))
traindata[:,:-1] = data[:,:-1] #這一步完成將y分離,並且前面新增了乙個x0 = 1;
trainlabel = data[:,-1] #賦予其y值;
return traindata,trainlabel
x[:,]是numpy中陣列的一種寫法,表示對乙個二維陣列,取該二維陣列第一維中的所有資料;第二維中取第0個資料,直觀來說,x[:,0]就是取所有行的第1個資料,
x[:,1] 就是取所有行的第2個資料;
x[:,:2]代表區所有行的前兩個資料;
第三步梯度下降
θ j:
=θj−
α1m∑
i=1m
(h(x
(i))
−y(i
))∗x
(j
)θ_ j:= θ_j - α\frac\sum_^(h(x^) - y^)*x^
θj:=θ
j−α
m1i
=1∑m
(h(
x(i)
)−y(
i))∗
x(j)
這是梯度下降的公式 ,此間需要用到的引數有,x,y, θ,學習率α ,訓練集數量m,訓練次數maxiteration
這裡我們都需要為這些變數乙個初始值
x,y 就是上面的traindata 和 trainlabel
θ值我們需要初始化,有多少個x值就初始化多少個θ,用矩陣的方式
m 就是m行(m個訓練數量)
最大次數自己定
學習率自己取,不要取大
m, n = np.shape(traindata)
#print(traindata)
theta = np.ones(n)
#print(theta)
alpha = 0.05
maxiteration = 9999
def batchgradientdescent(x, y, theta, alpha, m, maxiterations):
xtrains = x.transpose() #將x轉置
for i in range(0, maxiterations):
hypothesis = np.dot(x, theta) #計算h(x)的值
#print(hypothesis)
loss = hypothesis - y #計算h(x (i) )−y (i))
#print(loss)
gradient = np.dot(xtrains, loss) / m #用x的轉置乘以loss 就是等式最後和x(j)相乘
theta = theta - alpha * gradient #得到θ
return theta
最後一步,**h(x)的值,其實就是h(x
)=θ0
x0+θ
1x1+
θ3x3
+θ4x
4...
....
.+θn
xn
h(x) = θ_0x_0+θ_1x_1+θ_3x_3+θ_4x_4........+θ_nx_n
h(x)=θ
0x0
+θ1
x1
+θ3
x3+
θ4x
4..
....
..+θ
nxn
θ與x的矩陣相乘
def predict(x, theta):
ypre = np.dot(x, theta)
return ypre
線性回歸 梯度下降
線性回歸演算法屬於監督學習的一種,主要用於模型為連續函式的數值 過程總得來說就是初步建模後,通過訓練集合確定模型引數,得到最終 函式,此時輸入自變數即可得到 值。1 初步建模。確定假設函式 h x 最終 用 2 建立價值函式 j 也叫目標函式 損失函式等,求引數 用 3 求引數 對價值函式求偏導 即...
回歸 梯度下降法
給定 m條訓練資料,假定方法 先說明向量問題,乙個向量就代表一條特徵值 梯度下降公式 重複公式直到 收斂。公式中意思是 1 第i個 2 重複計算1。直到 repeat util convergence python def gradient x,y,bu,number m,n x.shape wei...
線性回歸梯度下降
梯度下降 一種最優化演算法,就是沿著函式的梯度方向尋找函式的最小值 線性回歸模型 最終的目標就是利用 梯度下降法 求出使 誤差函式 最小的線性函式的系數值 梯度下降演算法有兩種 1.批量梯度下降 batch gradient descent 2.隨機梯度下降 stochastic gradient ...