目錄
一、前言:
二、模型描述:
1.hypothesis:
2.cost function:
三、多元梯度下降法
1.特徵放縮
2.學習率α的選擇:
四、特徵與多項式回歸
五、正規方程(區別於梯度下降法)
六、梯度下降法與正規方程法的比較
在所有公式中,n為特徵個數,m為樣本數量
與前面單變數線性回歸類似,只是input值的個數,即特徵的個數從乙個變成了多個。
在上個單變數線性回歸中,只採用了乙個特徵,房子尺寸,這裡我們多新增了房間個數、樓層數以及房子的"年齡"。分別將這三個變數設為x1,x2,x3,x4。結果設為y。
用矩陣表示:
由此得:
多元線性回歸的代價函式和單變數的回歸的代價函式是一樣的,都是原引數減去學習率與原引數在代價函式上的偏導的乘積:
repeat until convergence" class="mathcode" src=""/>
(全部同時更新)
雖然多元線性回歸的梯度下降方法和單變數回歸沒有太大的差別,但是多元線性回歸涉及到單變數回歸沒有的問題,就是多個特徵值的取值差別過大,導致模型很難擬合。因此需要運用特徵縮放的方法對資料進行預處理。
特徵縮放其實很簡單,比如我們的兩個變數房屋的面積和房間數。房屋的面積 的範圍在0-2000英吋,而我們的房間數在1-5間,這兩個特徵值就相差過大,導致梯度下降的困難。
只需要把房屋面積除以2000,房間數除以5,這樣兩個特徵值的範圍就在0-1之間,梯度下降就更加容易。
通常放縮得範圍有如下幾種:
-1 ~ 1
-3 ~ 3
-1/3 ~ 1/3
可以繪製出梯度下降迭代的次數和代價函式值的關係圖,來判斷函式是否收斂,從而判斷這個學習率是否合適。
若學習率合適,則影象如下圖所示
假如影象函式曲線隨著迭代次數增加而上公升,說明我們的學習率過大。
假如曲線是忽上忽下,則說明我們的學習率偏小。
根據影象我們就可以找到方向修改我們的學習率到合適的大小。通常學習率的改變方式是每十倍取值,比如0.001偏小了,則採取0.01,再偏小再取0.1。也可以採取每三倍的取值。
很多時候採取的資料集的資料分布不是直線型的,可能是曲線,也可能是其他圖形,此時就需要擬合非直線型的函式
比如這個房屋面積與**的資料,我們可以看出來像一條拋物線,可以用二次模型去擬合。但是由一定數學知識就可以知道,當size超過一定值時,price會隨著size的增大而減小,顯然是與實際情況不相符的。此時便需要採取更加合理的三次模型。
此時函式就轉化成用x1,x2,x3建立的模型。擬合度更高。
採取多次模型,特徵放縮更為重要!
用這種方法不需要進行特徵縮放
梯度下降法
正規方程法
需要選擇學習率α(缺點)
不需要選擇學習率α(優點)
需要迭代(缺點)
不需要迭代(缺點)
當特徵數n非常大時,效率高(優點)
當特徵數n非常大時,效率低(優點)
如何選擇?
機器學習 多變數線性回歸
注 本系列部落格是博主學習stanford大學 andrew ng 教授的 機器學習 課程筆記。博主深感學過課程後,不進行總結非常easy遺忘,依據課程加上自己對不明確問題的補充遂有此系列部落格。本系列部落格包含線性回歸 邏輯回歸 神經網路 機器學習的應用和系統設計 支援向量機 聚類 將維 異常檢測...
機器學習 多變數線性回歸
1 說明 需要 房屋的 除了房屋面積還有其他的特徵量,比如層數,年齡,臥室數目等等,如下圖。因為有多個特徵值,所以稱為多變數線性回歸。2 假設函式 單變數只有乙個特徵值,所以之前的假設函式將不再適用,下面是多變數的假設函式。其中x0設定為1 3 特徵縮放 在所有特徵值中,size的範圍大概在0 20...
Python學習(機器學習 多變數線性回歸)
通過scale feature利用梯度下降法求theta 直接代入推導出來的theta公式 通過驗算測試引數,可以得知兩個方法 結果相同 part1 load data print loading data.n f open c python27 machinelearning ex1data2.t...