先是幾個英文:
linear regression線性回歸 gradient descent梯度下降 normal equations正規方程組
notation符號:
m denote(指示) the number of training examples
x denote the input variables(also called features)
y denote the output variables(also called target variables)
(x,y) training example
第i行training example (x^(i),y^(i))
n denote features的數量
比如根據房子大小判斷房子價錢這個例子,有m個例子就是說有m個(x,y)數據,如果x不止一個,就是說我們還要根據房子的位置啊,房間個數等特征來判斷房子價錢,那么這個n就是這些特征的數量。x1是size,x2是beddrooms,那么n=2
開始算法:
現在有一個學習函數h,要使得h(x)能符合結果Y,h(x)可以用下面這樣的式子來表示:
又稱作hypothesis
θ在這兒稱為參數,在這兒的意思是調整feature中每個分量的影響力,就是到底是房屋的面積更重要還是房屋的地段更重要。首先對θ賦值,這個值可以是隨機的,也可以讓θ是一個全零的向量。
又另(這個1/2就記一下吧,前面乘上的1/2是為了在求導的時候,這個系數就不見了。)
好的現在我們要讓J(Θ)最小對吧。
gradient descent:就是想象你在下山,你要最最陡下降最快的那條路到達山底(J(Θ)最小值),所以這里要求個偏導。
當單個特征值時,上式中j表示系數(權重)的編號,右邊的值賦值給左邊θj從而完成一次迭代。
單個特征的迭代如下:
多個特征的迭代如下:
上式就是批梯度下降算法(batch gradient descent),當上式收斂時則退出迭代,何為收斂,即前后兩次迭代的值不再發生變化了。一般情況下,會設置一個具體的參數,當前后兩次迭代差值小於該參數時候結束迭代。注意以下幾點:

這里整個算法才用了j個training examples