1. 程式人生 > >機器學習系統構建

機器學習系統構建

情況 tracking center best water 這就是 錯誤分析 pos ext

看了NG視頻關於機器學習系統構建的建議,感覺非常有用,記錄下來作為聽課筆記。

首先是機器學習系統構建的流程:

技術分享

NG推薦方法:首先高速實現一個可能並非非常完美的算法系統。進行交叉驗證,畫出學習曲線去學習算法問題之處,是high bias or high variance 細節看這篇博文介紹:bias和variance在機器學習中應用

最重要一步:錯誤分析。手工檢驗算法錯誤學習的樣本。找到算法在什麽類型樣例上犯錯誤!然後幾種經歷在處理這類錯誤上。

以下以垃圾郵件系統舉例:

技術分享


反垃圾郵件系統發現誤分類最多的是Steal passwords所以集中經歷去解決這部分問題。這樣能比較高效率。

另一個小竅門就是:學習算法我們須要有數值量化標準來評估算法!

課上NG提到Spam Email 中是否使用詞幹提取器,最好的辦法就是實驗兩次分別使用和不適用。通過數值量化標準進行評估來選擇是否採用詞幹提取器。

技術分享

然後視頻中特別提到須要在cross validation 集上進行錯誤分析驗證。看以下題目:

技術分享

前面提到數值量化標準,有一種傾斜類狀態看下圖,會發現通常情況下的錯誤率衡量標準問題所在:

技術分享

癌癥病人比例為0.5% ,假設我們有一個算法錯誤率為1%,通常情況下這種錯誤率是比較好,可是假設我不用不論什麽算法就預測病人沒有癌癥。我的錯誤率也僅僅有0.5%,所以須要引入新的數值評價標準:precision recall 見實例非常好懂意思。

技術分享

通常情況下,我們定義fscore來進行precision recall 的trade off

技術分享

有句話能夠參考:It‘s not who has the best algorithm that wins It‘s who has the most data。

意思在強調數據重要性,可是這個不全然對。在上一篇博文中提到,在某些狀態下一味添加數據量是沒有作用的!什麽時刻添加數據是有意義的了?看下圖

技術分享


我們設定學習算法比較多參數,使用大的訓練集,使得系統low bias low variance 這就是我們須要達到的目標!


機器學習系統構建