Stanford機器學習課程筆記——多變數線性迴歸模型
Stanford機器學習課程筆記——多變數線性迴歸模型
1. 多變數線性迴歸模型引入
前面一篇中學習了單變數的線性迴歸模型,那麼自然就會想到多變數線性迴歸模型,以及非線性模型。這篇我們就學習。
其實,前面的單變數,顧名思義就是樣本的特徵只有1個,那麼多變數就是樣本的特徵有多個。同樣是前面的房屋價格的例子,吳恩達大叔給出了多變數的例子,如下:
這個新例子中,每個樣本的特徵有4個(房屋面積,臥室個數,樓層,建築年代),需要許褚的依舊是房屋的價格。
多變數線性迴歸模型的假設和前面是類似的,只不過theta的個數隨著變數個數增加而增加,為:。然後我們可以給theta_0配對一個x_0,這樣整個形式就一樣了。也就是:,其中我們可以令x_0=1,這樣可以轉換成常見的向量乘矩陣的形式。也就是:。其中的theta是行向量,裡面都是線性迴歸模型中的引數,X是樣本矩陣,每一列為一個樣本(注意,這裡和sklearn中的每一行為一個樣本是不一樣的)。
有了假設,後面就是代價函式。多變數線性迴歸模型中的代價函式和單變數的相似,都是樣本的誤差平方和:
只不過其中h_0_x_i中x_i的個數增多了。
同樣,我們也可以使用梯度下降法來求解上述目標函式。其粗略的演算法步驟如下:
其中關鍵指出在於假設h對所有表示係數theta_i的求導。其實也簡單,因為h關於theta的表示式是線性的,那麼求導自然就很方便啦,這裡我們就直接貼出來吳恩達大叔的原稿:
這樣就得到了更新所有theta時候的下降方向,不過要注意:所有theta_i的更新一定是同時的!
2. 特徵縮放
這個特徵縮放,我理解類似與特徵的歸一化normalization. 這是樣本多變數情況所特有的。因為樣本有多個特徵,而每個特徵的量綱不完全一樣,最大值最小值的取值範圍也不同,所以我們需要把它們統一到-1到1之間。
具體而言,對於其中一個特徵,我們把所有樣本在該特徵維度上的值都提取出來,計算均值和標準差。然後利用下面公式歸一化:
其中mu_n是均值,S_n是標準差。這樣所有樣本在該特徵維度上的值均在-1到1之間了。
3. 學習率alpha
這是梯度下降法中的學習率,它決定了在找到下降最快的方向之後,到底下降多少的程度。這是一個度的關係。可以說,梯度下降法這樣子萬能的求解最優化的選手收到影響的因素就兩個,除了初始點的設定之外,還有一個就是它了。
梯度下降法的求解效果收到了學習率大小的影響,如果alpha過小,那麼收斂的速度會很慢,求解需要迭代的次數很多;如果alpha很大,那麼可能使得更新的時候越過了區域性最小值,導致無法收斂,求解失敗。(不過這樣子看來,還是設定小一些比較穩妥。。)
畫出代價函式值關於迭代次數的變化曲線,可以看出alpha設定的是否合理:
而如果alpha設定的不合理,那麼代價函式的值可能會逐漸增大,或者在動盪:
上面右圖看的比較明顯。那麼這個學習率到底怎麼設定呢?
還是吳恩達大叔給出了建議:
看出來了吧,先試一試小的alpha,0.001,如果感覺它太小了,那麼再試一試0.01,如果太大了,返回來試一試0.003,這樣子一次試下去。。。
4. 非線性迴歸——多項式迴歸
開頭我們提到了不是所有的資料都滿足線性迴歸的,那麼非線性迴歸又如何呢?這裡我們學習一個簡單的非線性迴歸模型,多項式迴歸,而且它還是可以轉化成線性迴歸的。轉換的思路如下:
也就是說,我們可以把後面的高次項重新用一個新的變數來表示,新的變數只是一次的,這樣我們整個模型都是一次的。接下來我們繼續可以使用線性迴歸模型的方法求解。梯度下降法啊,代價函式啊,都是適用的。
5. 正規方程——解析解
課程中說這個是正規方程,剛開始看還不是很理解,後面知道了,其實這裡就是解析解。因為我們前面的梯度下降法求得的都是區域性最優,不是全域性的。這個是解析解,全域性的。
說是解析解,是因為迴歸模型中的代價函式都是可以求導,令導數為零,求得最優解的。那麼回到我們剛才說的代價函式形式,我們把假設h的向量乘矩陣的形式帶入代價函式中,再求導,即可得:
其中矩陣X是樣本特徵矩陣,這個是我們直接就有的,y也是直接有的。也就是說,我們可以把X和y帶入上式,就可以一下子求得最優的theta向量了。
但是,我們要注意計算時間複雜度。因為這個求解公司中有矩陣的逆運算,它的時間複雜度是O(n^3),而且有的時候不是滿秩,不可以求逆運算。所以這兩個方法(解析解和梯度下降法)各有利弊,總結如下:
其實,遇到不可求逆的情況,分析原因可知:這個因為矩陣不滿秩,也就是說代表矩陣X行數的樣本特徵維數大於代表列數的樣本個數,這就是傳統的小樣本問題。這個時候,我們可以先用PCA降維,把樣本的特徵維數降低,小於樣本的個數,這樣就可以了。
已經寫到一半的博文突然就沒有了,CSDN上面也沒有自動儲存,暈。。。吐槽一下這個編輯器。。
參考:
http://blog.csdn.net/abcjennifer/article/details/7700772
《Coursera機器學習筆記》
相關文章
- Stanford機器學習課程筆記——單變數線性迴歸和梯度下降法機器學習筆記變數梯度
- 吳恩達機器學習筆記 —— 5 多變數線性迴歸吳恩達機器學習筆記變數
- 機器學習入門:多變數線性迴歸機器學習變數
- Stanford機器學習課程筆記——SVM機器學習筆記
- 吳恩達機器學習筆記 —— 2 單變數線性迴歸吳恩達機器學習筆記變數
- 機器學習筆記(1):線性迴歸機器學習筆記
- 機器學習(課堂筆記)Day04:線性迴歸法機器學習筆記
- 【機器學習筆記】:大話線性迴歸(一)機器學習筆記
- 【機器學習筆記】:大話線性迴歸(二)機器學習筆記
- 機器學習筆記(2):線性迴歸-使用gluon機器學習筆記
- Stanford機器學習課程筆記——神經網路的表示機器學習筆記神經網路
- Stanford機器學習課程筆記——神經網路學習機器學習筆記神經網路
- 機器學習-線性迴歸機器學習
- 機器學習:線性迴歸機器學習
- 《Spark機器學習》筆記——Spark迴歸模型(最小二乘迴歸、決策樹迴歸,模型效能評估、目標變數變換、引數調優)Spark機器學習筆記模型變數
- 吳恩達機器學習系列1——單變數線性迴歸吳恩達機器學習變數
- 吳恩達機器學習筆記 —— 3 線性迴歸回顧吳恩達機器學習筆記
- 機器學習程式碼筆記-2-簡單線性迴歸機器學習筆記
- 機器學習筆記-多類邏輯迴歸機器學習筆記邏輯迴歸
- 機器學習之線性迴歸機器學習
- 機器學習整理(線性迴歸)機器學習
- 模式識別與機器學習——迴歸的線性模型模式機器學習模型
- 機器學習 | 線性迴歸與邏輯迴歸機器學習邏輯迴歸
- Python數模筆記-Sklearn(4)線性迴歸Python筆記
- 機器學習筆記(3):多類邏輯迴歸機器學習筆記邏輯迴歸
- 多元線性迴歸模型模型
- 【機器學習】線性迴歸預測機器學習
- 機器學習5-線性迴歸機器學習
- 機器學習課程筆記機器學習筆記
- [DataAnalysis]機器學習演算法——線性模型(邏輯迴歸+LDA)機器學習演算法模型邏輯迴歸LDA
- PRML 迴歸的線性模型模型
- 【python資料探勘課程】十八.線性迴歸及多項式迴歸分析四個案例分享Python
- 【機器學習】線性迴歸原理介紹機器學習
- 【機器學習】線性迴歸sklearn實現機器學習
- 機器學習實戰(一)—— 線性迴歸機器學習
- 線性迴歸(吳恩達機器學習)吳恩達機器學習
- spark Ml 機器學習之 線性迴歸Spark機器學習
- 機器學習——簡單線性迴歸(上)機器學習