吳恩達機器學習筆記(2) 多變數線性回歸

2021-08-21 03:45:08 字數 2613 閱讀 1207

我們這次的例題還是用我們上次單變數線性回歸模型一樣的問題——房價問題,但是我們這次新增了房間數,房子所在樓層數,房子面積這三個新變數到我們的例題中。

我們把這四個變數命名為x1,x2,x3,x4結果為y,用n表示我們有n個特徵,用m表示樣本數量。既然我們多了這麼多特徵變數,那麼我們的模型的公式也要改變:

但為了計算和表示的方便我們多設乙個變數x0=1,也就是說我們的θ0 * x0,這樣我們可以把特徵表示成乙個矩陣x = [x0,x1,x2........,xn],同時我們的要求的引數θ也能表示成同長度的矩陣θ = [θ0,θ1,θ2.....,θ3]

這樣我們的h(x)就可以表示成h(x) =(θ^t )*x

多元線性回歸的代價函式和單變數的回歸的代價函式是一樣的,所以我們這裡的梯度下降的方法和公式沒有太大的差別,都是原引數減去學習率與原引數在代價函式上的偏導的乘積:

雖然多元線性回歸的梯度下降方法和單變數回歸沒有太大的差別,但是多元線性回歸涉及到單變數回歸沒有的問題,就是多個特徵值的取值差別過大,導致模型很難擬合。這裡我們需要運用特徵縮放的方法對資料進行預處理。特徵縮放其實很簡單,比如我們的兩個變數房屋的面積和房間數。房屋的面積 的範圍在0-2000英吋,而我們的房間數在1-5間,這兩個特徵值就相差過大,導致梯度下降的困難。這裡我們只需要把我們的房屋面積除以2000,房間數除以5,這樣我們兩個特徵值的範圍就在0-1之間,梯度下降就更加容易。

這裡給的是學習率選擇的技巧。

首先我們可以繪製出梯度下降迭代的次數和代價函式值的關係圖,來判斷函式是否收斂,從而判斷這個學習率是否合適。

假如我們的影象函式曲線隨著迭代次數增加而上公升,說明我們的學習率過大,如果我們的曲線是忽上忽下,則說明我們的學習率偏小。根據影象我們就可以找到方向修改我們的學習率到合適的大小。

我們推薦學習率的改變方式是每十倍取值,比如0.001偏小了我們下次就取0.01,再偏小再取0.1。

很多時候我們的資料分布不是直線型的,可能是曲線,也可能是其他圖形,這裡將教大家如何擬合非直線型函式。比如這個房屋面積與**的資料,我們可以看出來像一條拋物線,我們就可以用二次模型去擬合。如果後面繼續上公升了,就像乙個三次函式,我們就用三次模型去擬合,然後把每一項替換了。

這個問題就轉換成了用x1,x2,x3來建立回歸。讓我們的模型擬合度更高。但是要記住不要忘了特徵縮放。畢竟三次和一次的值會相差很大,增加梯度下降的難度。當然選擇什麼函式模型去擬合,還是取決於資料在座標系上的分布像什麼函式模型。

其實很多讀者在我們給出例題的時候就想到了我們高中時候學過的最小二成法求回歸方程,就會產生疑惑,我們明明可以直接求取各個引數,為什麼還要用梯度下降這種費時費力的方式來求回歸方程呢?這裡就給出了直接求取引數的正規方程。我們梯度下降的目的是求出代價函式的取得最小值或者區域性最小值的值,在我們高中就學過用導數等於零來求極大值和極小值,這裡我們就是用代價函式導數等於零來求引數的解。我門就是把逐個引數θ求代價函式j的偏導,然後把他們全部置零,並求解。

但這樣求解的方式很麻煩,所以這裡給出一般解法,首先我們構建x0,x1,x3…..xn的所以特徵值的乙個矩陣,以及所有目標值y的矩陣,這裡我們給出乙個例子:

那麼我們的引數的解也是乙個矩陣,可以通過這個公式得到:

使用這種方法我們就可以不用對特徵值進行縮放了

上面給出的正規方程解法,一步我們就可以得到我們想要的結果,是不是很方便,但是正規方**的這麼萬能的話我們也不會在前面廢這麼大的勁來講解梯度下降法。這裡我們就給出兩種方法的優劣。

首先梯度下降我們要確定學習率,而且需要很多次迭代來訓練,費時費力,正規方程則不需要。

但是我們特徵過多的話,正規方程求解的時間維度是o(n ^ 3),這就需要比梯度下降更多的時間來求解。梯度下降適用於更多的情況,而且符合機器學習的方法,所以我們在做機器學習更傾向於用梯度下降而不是用正規方程。

寫完這篇我大概就要準備期末考試了,大概更新的速度會很慢很慢,可能兩個星期一更吧。。。祝我考試順利吧。

吳恩達機器學習筆記 多變數線性回歸

目錄前言 一 多維特徵 二 多變數梯度下降 1.代價函式 2.批量梯度下降演算法 3.演示 未驗證 三 特徵縮放 幫助梯度下降演算法更快收斂 1.為什麼要進行特徵縮放 2.特徵縮放的幾種方法 3.進行特徵縮放的注意事項 總結 目前為止,我們 了單變數 特徵的回歸模型,現在我們對房價模型增加更多的特徵...

吳恩達《機器學習》課程總結(4)多變數線性回歸

上圖中列數即為特徵的個數,行數是樣本數。函式假設如下 其中x0 1。和單變數的損失函式相同 其中,求導迭代如下 特徵之間的尺度變化相差很大 如乙個是0 1000,乙個是0 5 梯度演算法需要非常多次的迭代才能收斂,如下圖所示 方法 將各個特徵縮放至大致相同的尺度,最簡單的方法就是特徵減去均值除以方差...

吳恩達機器學習筆記2 單變數線性回歸

線性回歸演算法 用直線來擬合資料 h0 x 0 1 x,要想h0 值 接近y 實際值 也就是使得 值和實際值的平方誤差和最小,可用平方代價誤差函式來解決。平方代價誤差函式說明 平方是為了保證正值,二分之一m的目的是求導 計算變化率 後消掉係數。假設h,引數 代價函式j,優化目標 如何進行機器學習?如...