天天看點

[Python嗯~機器學習]---擁有多個特征的多元線性回歸

多元線性回歸

       上一篇部落格中我們讨論了一個特征變量的線性回歸,還是用南京夫子廟房價的例子來說,我們

預測房價僅僅使用面積是不夠的,比如房齡、朝向、幾室幾廳、廁所數量等都是房價的影響因素,

也就是可以作為标記房價的特征~~~

[Python嗯~機器學習]---擁有多個特征的多元線性回歸

       為了标記特征和樣本,我們規定,n 表示特征數,x上标 i 表示第 i 個樣本,而 x 上标 i 下标 j 則表示

第 i 個樣本的第j個特征。

[Python嗯~機器學習]---擁有多個特征的多元線性回歸

假設我們現在有四個特征,如上圖,

現在我們的假設函數就可以表示成:

[Python嗯~機器學習]---擁有多個特征的多元線性回歸
[Python嗯~機器學習]---擁有多個特征的多元線性回歸

并且這時候給第一個參數加一個為1的 X0,叫做偏置項,得到一個多特征的假設函數。

多變量的梯度下降:

[Python嗯~機器學習]---擁有多個特征的多元線性回歸
[Python嗯~機器學習]---擁有多個特征的多元線性回歸

在加了偏置項的基礎上,對每一個 θ 求導并更新就會總結成一個公式~~~

特征放縮(重要):

[Python嗯~機器學習]---擁有多個特征的多元線性回歸

在實際中,我們不同特征的尺度大小,取值範圍可能可能相差很大~~~

        例如,我們有兩個特征,分别是房子的面積以及房子的卧室數。房子的面積取值範圍大約

是0~300,而卧室數的取值範圍在0~5。這樣的話,如果我們把它們關于代價函數的等高線圖繪

制出來的話,就是上圖左側的狹長同心橢圓。

        這時候如上圖兩個變量尺度不一樣的話就康托圖就是一個狹長的橢圓在逼近收斂的時候就會

産生震蕩,因為橫軸方向的參數隻要略微變化等高線圖中顯示的損失函數就會劇烈變化,進而影響

收斂準确。如果兩個變量尺度差不多就會接近同心圓,收斂的方向就會比較線性~~~

        特征放縮也能加快收斂的速度,使盡量少的疊代次數收斂到最小值點。

[Python嗯~機器學習]---擁有多個特征的多元線性回歸
[Python嗯~機器學習]---擁有多個特征的多元線性回歸

目的:我們特征放縮的目标是把所有的特征放到同一個數量級下面

方法:均值标準化(重要)

        我們通常可以選擇使用特征值減去它的均值,然後再除以它們的最大值。

學習率 α :

前面我們讨論了如何特征縮放,我們梯度下降還需要一個參數, 步長 α ~~~

[Python嗯~機器學習]---擁有多個特征的多元線性回歸
[Python嗯~機器學習]---擁有多個特征的多元線性回歸

右圖中,我們橫軸表示疊代的次數,縱軸表示代價函數的值,我們可以看出正常情況下,随着疊代的

增加,我們的損失函數在不斷地減小,說明我們的 α 是正常工作的。後面下降的越來越慢~~~

        越往後,代價函數的值減小的越少。因為越接近最小值點,梯度就越小,也就是梯度下降更新規則中

的微分項越小,這就使得 θ 更新的越小,進而使得整個代價函數 J(θ) 的變化就越小。

        梯度下降算法是數值型的疊代算法,沒辦法确切地收斂到實際的最小值點,是以我們需要有個限制條件

避免無限地疊代下去。是以,我們通過觀察連續兩次疊代間,代價函數變化情況來判斷是否已經收斂。比如

如果兩次疊代間,代價函數 J(θ) 的變化幅度小于某個很小的值的時候,我們就認為梯度下降已經收斂了。不

過這個很小的值可以根據應用選取,比如可以選擇10^-3之類的。

        如果不是有效的梯度下降架構疊代次數和J(θ) 的圖會是其他類型的:

[Python嗯~機器學習]---擁有多個特征的多元線性回歸
[Python嗯~機器學習]---擁有多個特征的多元線性回歸

如果像上圖第一個随着疊代增加代價函數也增加,就說明代價函數發散了,這種情況是步長 α 太大了,導緻

跨過了最小值點,以前上一個部落格我們讨論過,這時候我們就需要減小步長 α 。

        要自己不斷嘗試,然後才能選出最好的學習率 α 。

特征和多項式回歸:

        在了解了線性回歸的基礎上,如果有多個特征,那麼回歸圖形可能就不是直線,可能是一個曲線,也可能

是超平面。這時候我們的假設函數就是一個非線性函數。

[Python嗯~機器學習]---擁有多個特征的多元線性回歸

以上圖為例,寬和高的乘積是面積,面積可以表示一個特征,人們更關心的是面積,這時候我們就可以對特征進行

個數上的壓縮,上面寬乘以高的式子可以看做特征的多項式。用特征的多項式可以生成更多的新特征。

[Python嗯~機器學習]---擁有多個特征的多元線性回歸
[Python嗯~機器學習]---擁有多個特征的多元線性回歸

如果隻有一個特征我們可以用特征的平方,三次方等構造新的特征項,每增加一個特征模型就越複雜,對資料的拟合

程度越高。

正規方程:

[Python嗯~機器學習]---擁有多個特征的多元線性回歸

梯度下降是疊代的思想,正規方程用矩陣解析也能找到合适的 θ 。

[Python嗯~機器學習]---擁有多個特征的多元線性回歸
[Python嗯~機器學習]---擁有多個特征的多元線性回歸
[Python嗯~機器學習]---擁有多個特征的多元線性回歸
[Python嗯~機器學習]---擁有多個特征的多元線性回歸
[Python嗯~機器學習]---擁有多個特征的多元線性回歸
[Python嗯~機器學習]---擁有多個特征的多元線性回歸

解釋正規方程:

1、假設函數應該是y = X*theta 

2、theta = y/X。或者theta = X^-1 * y

3、如果不是方陣,線性代數的基本知識,壓根無法求逆

4、變換,得到

[Python嗯~機器學習]---擁有多個特征的多元線性回歸

在這一篇部落格中,最重要的是特征的放縮~~~希望大家能夠有不同的了解。

繼續閱讀