機器學習系統設計-讀書筆記3

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   ar   strong   資料   2014   

繼續第二篇筆記中的例子。

 

3.不斷的迭代與探索的過程

從上篇的圖看到,直線並不能很好的代表week4以後的趨勢。既然一階函數不行,我們試試二階函數?

f(x)= ax**2 + bx + c

繼續使用polyfit這個函數來確定a,b,c的值:

    f2p =sp.polyfit(x,y,2)    print f2p

上述代碼得到了一個數組

[ 1.05322215e-02 -5.26545650e+00 1.97476082e+03],這就是a,b,c分別的值。

    f2 = sp.poly1d(f2p)    print(error(f2,x,y))

繼續計算一下殘差平方和是:179983507.878 ,顯然要比1次的好。如果階數越高,效果就越好,我們為什麼不進一步增加階數?

try一下階數為3,10,100的情況

f3 = sp.poly1d(sp.polyfit(x, y, 3))    f10 = sp.poly1d(sp.polyfit(x, y, 10))    f100 = sp.poly1d(sp.polyfit(x, y, 100))    print ‘d3=‘ ,(error(f3,x,y))    print ‘d10=‘ ,(error(f10,x,y))    print ‘d100=‘ , (error(f100,x,y))

殘差平方和結果為:

d3=     139350144.032
d10=   121942326.364
d100= 109452403.459

結果是越來越好了,但是100項式的模型是否真的代表了使用者真實行為呢?我們繼續把圖畫出來。

紫色的曲線代表了100階多項式。看出它的問題了嗎?抖動的太厲害了!響應了所有資料的要求,但是,裡邊其實有不少資料算是雜訊資料,比如偏離太遠的點,沒有代表性。這樣的擬合被叫做 過度學習(overfitting),10階也同樣類似的問題(如果資料更多,效果會更加明顯)。所以,一味的提高模型的複雜度並不是一個好辦法。

 

問題在哪裡?從建模角度似乎遇上了一些瓶頸。我們返回來看資料,我們真的的理解資料了嗎?

 

機器學習系統設計-讀書筆記3

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.