1. 程式人生 > >【機器學習筆記】二、 Regression迴歸

【機器學習筆記】二、 Regression迴歸

一、基礎

這裡面,輸入變數x有兩個,一個是居住面積(living area),一個是房間數目(bedrooms)。

所以x 是一個二維向量。表示第i組資料中的居住面積(living area)。表示第i組資料中的房間數目。

我們假設輸入和輸出呈線性關係,那麼便有下面的公式。

其中,叫做parameters(引數),也叫做weight(權重)。以上的公式還可以簡寫成


其中右邊是線性代數中向量相乘的寫法。

這樣一來,我們最終是要學習的就是parameters θ ,也就是求θ 的值,使得h(x)最接近於y(h(x)表示預測的值,y表示實際的房價)

怎麼判斷h(x)是不是接近於y呢? 所以有了下面的公式。


有沒有很熟悉,貌似是最小二乘法的公式。

二、LMS演算法(最小二乘法)

為了使得J(θ)最小,這裡用一個"initial guess"當做初始的θ的預測值,然後不斷地迭代,這種演算法就是(gradient descent)梯度下降演算法,迭代的公式如下:
好吧,其實高等數學中有學過梯度的概念,梯度是變化最大的方向導數,對於二元函式,梯度是求偏導,記不清了,書不在身邊。 α 是(學習速率) learning rate,θj是同步更新的,也就是對於這個例子,三個θ是一起更新的。 下面是假設只有一組資料(訓練集只有一份資料)的時候的偏微分的推導過程。
將推導後偏微分的公式代入,便有了下面的。

:=是右邊等於左邊,如果有學過程式設計,這個:=就是程式設計裡面的等號。 上式叫做LMS update rule,又叫做Widrow-Hoff learning rule. 當training example不止一份集合的時候,有下面的演算法。
其實是兩個迴圈吧,外面的迴圈是針對j的,有幾個未知θ,就有幾次repeat,裡面的是迴圈是針對i的,有m組資料。因為對於每個θ,都需要遍歷一遍。當然效率比較低叫做batch gradient descent這裡面討論了局部最優和整體最優的問題,沒看懂,可能類似有時候梯度下降會逐漸下降到區域性最優而不是整體最優,視訊裡面有講。 下面的圖是由等高線組成的,上面的藍色表示比較低,軌跡是梯度下降的軌跡,從(48,30)開始下降,每次取點。橫座標和縱座標應該是θ的取值,可以看到,逐漸逼近最低點。

 

另外一種演算法是一個訓練集合點一個點加入。叫做stochastic gradient descent隨機梯度下降incremental gradient descent。

這個演算法最明顯的優點是收斂快,所以隨機梯度下降比批量梯度下降受歡迎,特別是資料量多的時候。這裡的隨機是指梯度下降的方向比較隨機,每次並不意味著朝著梯度的方向下降。

可以看到,這個演算法外層是M個數據組,裡層是θ。後者的優點是早點逼近最終的θ。因為當第一組資料運算結束的時候,就能得到各個θ的值了,後面就是在不斷地修正。

三、標準方程

這部分提供了用矩陣來表示的一種方法,不用迭代,因為剛被線性代數虐過,我就不分析過程了。結果如下  

四、過擬合和欠擬合

如果比較適合用二次函式的模型,用了一次函式,那是欠擬合(underfitting),用了三次函式,那就是過擬合(overfitting)。

五、locally weighted linear regression (LWR)區域性加權線性迴歸 LOESS

引數學習演算法有確定的未知引數,只要求出相應的引數就可以求出對應的模型。

非引數學習演算法 引數隨著訓練集合中資料的增多而增多。 區域性加權線性迴歸是非引數學習演算法(non-parametric learning algorithms)。