1. 程式人生 > >16-把直的都掰彎了~好魔性的多項式回歸

16-把直的都掰彎了~好魔性的多項式回歸

rom ces list cat fyi data fail sim sometimes

小時候的世界是單純的,非黑即白,人的性格也是RIO耿直,不懂得掩飾,在他人面前展露無遺,沒有那麽多防範。後來發現,現實世界是個錯綜復雜的函數,不一定是garbage in, garbage out;有時候也會garbage in, master piece out(我是在販賣毒雞湯嗎?Σ(っ °Д °;)っ)。總之,沒有那麽多想當然。同樣,在機器學習的世界裏,一條直線往往無法擬合那些變幻莫測的數據點,這樣做too simple,sometimes naive。如果直的不行,那用彎的可以嗎?事實證明,二次曲線有時比直線擬合效果好得多。將低維轉化為高維,很多之前想不通、看不透的都瓦解冰消,這是認知上的勝利,值得每個人去追求。

下面我們來學習在sklearn中將直線掰成曲線的正確姿勢:)

代碼地址:http://pan.baidu.com/s/1eRI8lSA

1

二次曲線擬合vs直線擬合

技術分享

技術分享

技術分享

圖上可以發現 quadratic fit 比 linear fit 效果更好。

技術分享

MSE 下降到61, R^2 上升到98%, 說明在這個數據集上 quadratic fit 效果更好。

2

波士頓房價數據的非線性關系建模

首先回顧一下波士頓房價數據的scatterplot matrix:

技術分享

  • LSTAT % lower status of the population 低層人口比例

  • MEDV Median value of owner-occupied homes in $1000‘s 業主自住房屋中值 (要預測的變量)

下面我們將house prices 與 LSTAT 做 quadratic 及 cubic polynomials fit,並與 linear fit 對比:

技術分享

技術分享

技術分享

對比R^2,可以看出擬合效果 cubic fit (R^2=0.66) > quadratic fit (R^2=0.64) > linear fit (R^2=0.54) 。

下面嘗試一種全新的轉化:Transforming the dataset by log。

技術分享

技術分享

經過 log 變換後,線性擬合效果不錯(R^2=0.69),比單純 polynomial fit 更好。

看了這次筆記,你是不是也躍躍欲試了?不要害怕get your hands dirty,把工作和學習當作享受吧。近一年來大部分時間在家遠程工作,一開始覺得無聊,空虛,沒有歸屬感,後來開始享受這種自由,最後,在得到的自由濃度足夠高時,竟然奇跡般地不厭惡工作了!希望大家都能找到輕松愉悅的工作狀態:)

16-把直的都掰彎了~好魔性的多項式回歸