轉帖|使用教程|編輯:我只采一朵|2017-07-13 11:24:03.000|閱讀 162 次
概述:你發現,在你的測試集上你只有80%的正確率,這遠遠地低于你的預期。現在怎么辦,你怎么來改進你的模型?
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
作者:Sourabh Bajaj
假如,你手頭上正有一個機器學習的項目。你通過各種渠道手機數據,建立你自己的模型,并且得到了一些初期的結果。你發現,在你的測試集上你只有80%的正確率,這遠遠地低于你的預期。現在怎么辦,你怎么來改進你的模型?
你需要更多的數據嗎?或者建立個更復雜的模型?還是說調整正則參數?加減特征?迭代更多次?不然全來一遍吧?
最近我的一個朋友也這么問我,他覺得改進模型就是全憑運氣。這促使我決定寫這篇文章,來告知應該怎么做一個有信息量,有意義的舉措。
為了構建一個準確的模型,我們首先要了解模型帶來的各種誤差。
偏差:偏差誤差是來源于模型的期望(平均)預測數值與真實數值之間的差值。
方差:對于一個給定的數值,模型預測結果的變異(波動)程度。
我們想要預測Y,我們的輸入是X。我們假設他們兩個直接有關系,比如,其中誤差項服從正態分布。
我們可能通過線性回歸或者其他建模方法得到一個估計,然后在點處的期望誤差的平方是:
這個誤差能夠被拆分成偏差和方差兩個組成部分:
必不可少的誤差來源于誤差項,任何模型都不能夠徹底地解決。只有給定問題本身的真實模型和無窮大的數據來修正它,我們能夠讓偏差和方差項都變成零。然而,在一個沒有完美的模型和無窮的數據的世界里,我們必須要在減小偏差和方差中權衡。
現在我們知道權衡偏差和誤差這件事了,但是如何改進我們的模型仍然有待考究。我們的模型面對 嚴重偏離 和 高度變異 的時候應該怎么處理?我們需要繪制模型的學習曲線來解答這個問題。
我們已經明白,問題往往出在偏差或者方差上。這時候,我們要根據不同的情況,做出不同的抉擇。
大多數的機器學習系統都是由一個模型鏈組成的。通常情況下都會有一種困境,你已經有了一個機器學習的管道,但是接下來一步應該做什么呢?上限分析在這里很有幫助。
上限分析每一次在管道中的某一部分中插入一個完美的版本,并且由此來測度我們所觀察到的完整的管道能夠有多大的提升。這種方法能夠幫助我們明白在整個模型鏈中,哪一步能夠帶來最可觀的優化。
比如說上述的文字識別的管道(模型鏈),你發現一個完美的字符分割模型能夠給整個識別系統提升1%,但是一個完美的字符識別模型能夠提升7%。所以相比于改進字符分割模型,我們應該更關注字符識別模型的改進。
本文轉載自:36大數據
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn