Machine Learning筆記(三) 多變量線性迴歸

Machine Learning筆記(三) 多變量線性迴歸

注:本文內容資源來自 Andrew Ng 在 Coursera上的 Machine Learning 課程,在此向 Andrew Ng 致敬。算法

1、多特徵(Multiple Features)

筆記(二)中所討論的房價問題,只考慮了房屋尺寸(Size)一個特徵,如圖所示:函數

這樣只有單一特徵的數據,每每難以幫助咱們準確的預測房價走勢。所以,考慮採集多個特徵的數據值,每每能提高預測效果。例如,選取以下4個特徵做爲輸入值時的狀況:學習

對一些概念的解釋:測試

  • n: 特徵數量spa

  • x(i): 第i個訓練樣本的輸入(全部特徵)code

  • y: 輸出變量/目標變量orm

  • xj(i): 第i個訓練樣本的第j個特徵的值ip

對於多個特徵,咱們須要更新假設函數,以包含全部的輸入特徵,對於4個特徵的假設函數以下:資源

推而廣之,n個特徵的假設函數以下圖所示。爲了方便,咱們定義 x1=1 ,採用列向量來表示參數 θ和 輸入 Xio

這樣,假設函數 hθ(x) 可表示爲:

多特徵的線性迴歸問題,被稱爲 多變量線性迴歸問題

2、多變量梯度降低(Gradient Descent for Multiple Variables)

多變量的線性迴歸問題與單變量相似,因爲特徵數量從1變爲n,因此須要更多的計算。其對好比下:

3、特徵規範化(Feature Scaling)

因爲如今有多個特徵,且各個特徵的取值範圍有所不一樣。例如,房屋的尺寸通常在數千左右,然而臥室的個數每每是個位數的,要將他們原封不動地表示在圖像中,將會形成大部分的數據都擁擠在一個範圍內。極度的不均勻將致使梯度降低速度的減緩,沒法進行有效區分。那麼,就須要利用特徵規範化的方法,將全部特徵都限定在一個範圍左右。

在上圖左就能夠看出,因爲未進行特徵規範化,等值線呈現出扁平化,致使收斂速度較慢。而圖右,將房屋尺寸除以2000,臥室個數除以5,這樣,將兩個特徵都轉化到了 0~1 的範圍內,等值線呈現較爲均勻的狀態,加快了收斂速度

特徵規範化

    將每個特徵值都轉化到同一個特定的範圍內(一般選 -1 <= x <= 1)

在特徵規範化中,另外一個經常使用的方法是均值標準化(mean normalization)。均值標準化的轉化方法以下:

概念

  • μi: 特徵 xi 的均值

  • si: 特徵 xi 的範圍(最大值-最小值)

例如:在本例中,x1 和 x2 的轉化以下:

均值標準化

    利用特徵均值與範圍,將特徵規範到 -0.5~0.5 的範圍內。

4、學習率(Learning Rate)

本節見介紹,如何確認梯度降低正常工做,以及如何選擇學習率 α 。

首先,如何確認梯度降低正常工做。咱們的目標是最小化 J(θ) ,並但願其在每一輪迭代中都減少,直至最後收斂:

簡單的收斂測試方法是:若是 J(θ) 的減少小於一個 ε 值(例如10-3)是,說明已經收斂。

對於如何選擇 α 的問題,在以前的章節已有講解。若是 α 過小,收斂速度將會很慢,若是 α 太大,J(θ) 可能不會減少,甚至可能最後不收斂。通常狀況下 α 一般選擇 0.00一、0.0一、0.一、1 等較小值。

5、特徵以及多項式迴歸(Features and Polynomial Regression)

如今咱們瞭解了多變量線性迴歸問題。在本節中,咱們將討論特徵的選擇以及如何用這些特徵得到好的學習算法,以及一部分多項式迴歸問題,它可使用線性迴歸的方法來擬合很是複雜的函數,甚至非線性函數。

以預測房價爲例。假設你有兩個特徵,房屋的臨街寬度(frontage),以及縱向深度(depth),於是,假設函數以下所示:

固然,咱們也能夠用其餘的方法來表示這個特徵,例如此問題中,咱們能夠創造一個面積特徵,它等於寬度與深度的乘積,那麼假設函數就能夠簡化爲上圖下面所示。

再仔細分析房價問題的訓練樣本,咱們能夠粗略地發現,用一條曲線比一條直線效果更好。所以引入多項式迴歸的概念,以一個多項式假設函數來代替原有的線性函數:

能夠看到,若是選擇一個二次多項式,能夠較好的匹配樣本數據,可是當房屋尺寸持續增加時,價格將會呈降低趨勢,這與現實是明顯不符合的。於是,選擇三次多項式多是一個較好的選擇。並且,在此問題中,咱們只用了一個特徵,即房屋尺寸,卻得出了更加複雜的曲線,以帶來更加好的效果。

固然,多項式的選擇能夠是不少種的。咱們還可使用根號函數來做爲假設函數,這更加地符合實際狀況:

6、正規方程(Normal Equation)

對於某些線性迴歸問題,使用正規方程來求解參數 θ 的最優值更好。

對於目前咱們使用的梯度降低方法, J(θ) 須要通過屢次的迭代才能收斂到最小值。

而正規方程方法提供了一種求 θ 的解析解法,即直接進行求解,一步獲得最優值。

正規方程法的關鍵點就是對 J(θ) 進行求導,導數等於0的點極爲最低點,以此求得最優的 θ ,以下圖所示:

利用矩陣計算,能夠方便地表示 θ 的計算過程,

利用matlab,能夠快速地計算 θ 的最優解:

對比梯度降低和正規方程,能夠發現其各有優缺點。

梯度降低須要手動的選擇學習率 α ,且須要屢次迭代才能獲得最優解。而正規方程不須要選擇學習率,也不須要迭代,能夠直接求解。可是, θ 的矩陣表示雖然簡單,其內部計算是至關複雜的。當特徵數 n 相對較小時,使用正規方程求解相對方便。可是,當 n 很大時,正規方程將花費大量的時間進行矩陣求逆運算,這個時候,選用梯度降低方法更好。

相關文章
相關標籤/搜索