經過以前的學習,咱們知道多變量的線性迴歸。在這節中,將介紹一些可供選擇的特徵以及如何獲得不一樣的學習算法。當選擇了合適的特徵後,這些算法每每是很是有效的。另外還將介紹多項式迴歸。它使得咱們可以使用線性迴歸的方法來擬合很是複雜的函數,甚至是非線性函數。算法
下面以預測房價爲例。假設有兩個特徵,分別是房子臨街寬度和房子深度(實際上至關於長?)。下面是咱們想要賣出的房子的圖片。函數
而後咱們就能夠創建一個這樣的線性迴歸模型。其中臨街寬度是咱們的第一個特徵x1,縱深是第二個特徵x2。但當咱們在運用線性迴歸時,咱們不必定非要直接用給出x1和x2做爲特徵。咱們能夠本身創造新的特徵。所以,若是我要預測房子的價格,我會作的也許是確認真正可以決定房子大小的我擁有的土地的大小。所以,我可能會創造一個新的特徵,我稱之爲x,臨街寬度與縱深的乘積(這就是我擁有的土地的面積)。因而,我將hθ(x)=θ0+θ1x 這個式子做爲假設,這個式子只用一個特徵(個人土地的面積)。有的時候不直接使用給的特徵,反而使用本身創造的新的特徵,可能會獲得一個更好的模型。學習
與選擇特徵的想法密切相關的一個概念被稱爲多項式迴歸。比方說,有一個這樣的住房價格的數據集。spa
可能會有多個不一樣的模型用於擬合.直線彷佛並不能很好地擬合這些數據,所以你可能會想到用像下面給出的二次模型去擬合。因此,選擇之一是二次模型。而後,咱們可能獲得以下的擬合效果。設計
可是你可能會以爲二次函數模型不合理。由於一個二次函數最終會降下來,可是,咱們並不認爲,隨着土地面積的增長,價格會降低。所以,咱們可能會選擇一個不一樣的多項式模型並轉而選擇使用一個三次函數。如今咱們有了一個三次函數,咱們用它進行擬合。也許咱們會獲得以下的擬合效果。也許這條綠色的線對這個數據集擬合得更好,由於它不會在最後降低。blog
使用多元線性迴歸的方法,咱們能夠對算法作一個簡單的修改來實現它。按照咱們以前假設的形式,咱們知道如何去擬合。就像以前的例子,咱們知道hθ(x)=θ0+θ1x1+θ2x2+θ3x3。而如今,若是咱們想擬合這個三次函數模型,咱們討論的就是hθ(x)=θ0 + θ1(size) + θ2(size)2 + θ3(size)3。(size表示房子的面積)觀察兩個式子,咱們天然就會想到假設x1=size,x2=(size)2,x3=(size)3。而後再應用線性迴歸的方法。咱們就能夠將一個三次函數擬合到數據上面。這裏還要再說一件事情:若是像這樣選擇特徵,那麼特徵縮放就變得更重要了。若是房子的面積取值範圍在1-1000,那麼房子面積的平方,取值範圍就在1-1000000。而第三個特徵,房子面積的立方取值範圍就在1-100000000。所以,這三個特徵的範圍有很大的不一樣。因此若是使用梯度降低法,特徵縮放很是重要。這樣才能將值的範圍變得具備可比性。圖片
最後一個例子將告訴咱們其實有很大的餘地來選擇要是有哪些特徵。以前咱們談到這樣的二次模型不是最理想的,由於它最後會降低。咱們不但願選擇房子面積的增長,價格會降低。可是除了轉而創建一個三次模型之外,咱們也許有其餘可選的特徵。這裏給出另一個合理的選擇的例子,他多是hθ(x)=θ0 + θ1(size) + θ2(√size)。變量
而後,咱們可能獲得一條趨勢是上升的,可是慢慢變得平緩的曲線。在這個例子中,憑着對平方根函數圖像的瞭解以及對數據形狀的瞭解,經過選擇不一樣的特徵,有時能夠獲得更好的模型。方法
在這節中,咱們探討了多項式迴歸。也就是如何將一個多項式,如一個二次函數或者一個三次函數,擬合到數據上面。咱們還討論了咱們能夠本身選擇使用哪些特徵。im
可是,有不少時候會有不少不一樣的特徵,而咱們該如何決定使用什麼特徵,也許這彷佛有點難以抉擇。在後面的課程中,咱們將學習一些算法,它們會自動選擇要使用什麼特徵。所以,可讓算法觀察給出的數據,並自動爲你選擇到底應該選擇一個二次函數仍是一個三次函數仍是一個其餘的函數。可是在咱們學習那種算法以前,咱們要知道咱們其實能夠自由選擇使用什麼特徵,而且經過設計不一樣的特徵咱們可以用更復雜的函數擬合數據,而不僅是用一條直線去擬合。特別的,你也可使用多項式函數。有時若是從合適的角度來尋找特徵,你就能獲得一個更符合的數據的模型。