在最近的一次報告中,Ben Hamner向我們介紹了他和他的同事在Kaggle比賽中看到的一些機器學習項目的常見誤區(qū)。
在這篇文章中,我們將從Ben的報告中了解一些常見的誤區(qū),它們是什么及如何避免陷入這些誤區(qū)。
機器學習的過程在報告之前,Ben向我們展示了一個解決機器學習問題大體流程。
機器學習流程,摘自Ben Hamner的《機器學習小精靈》
這個流程包括如下9步:
以一個行業(yè)問題開始
源數(shù)據(jù)
切分數(shù)據(jù)
選擇一個評價標準
進行特征提取
訓練模型
特征選擇
模型選擇
生產(chǎn)系統(tǒng)
Ben強調(diào)這個過程是迭代的過程,而非線性的。
他也談及在這個過程中的每一步都可能出錯,每個錯誤都可能使整個機器學習過程難以達到預期效果。
鑒別狗和貓
Ben提出了一個研究建造一個“自動貓門”的案例,這個“門”對貓開放而對狗關(guān)閉。這是一個啟發(fā)性的例子,因為它設(shè)計到了處理數(shù)據(jù)問題上的一系列關(guān)鍵問題。
鑒別狗和貓,摘自Ben Hamner的《機器學習小精靈》
樣本大小
這個例子的第一個賣點就是,模型學習的準確度與數(shù)據(jù)樣本大小有關(guān),并展示更多的樣本與更好的準確度之間的關(guān)系。
他通過不斷增加訓練數(shù)據(jù),直到模型準確度趨于穩(wěn)定。這個例子能夠很好讓你了解,你的系統(tǒng)對樣本大小及相應調(diào)整有多敏感。
錯誤的問題
第二個賣點就是這個系統(tǒng)失敗了,它對所有的貓都拒之門外。
這個例子突出了理解我們需要解決的問題的約束是非常重要的,而不是關(guān)注你想解決的問題。
機器學習工程中的誤區(qū)
Ben接著討論了解決機器學習問題中的4個常見誤區(qū)。
雖然這些問題非常常見,但是他指出它們相對比較容易被識別及解決。
過擬合,摘自Ben Hamner的《機器學習小精靈》
數(shù)據(jù)泄露:利用模型中的生產(chǎn)系統(tǒng)不能訪問的數(shù)據(jù)。在時序問題中這個問題特別常見。也可能發(fā)生在像系統(tǒng)id的數(shù)據(jù)上,id可能表示一個類標簽。運行模型并且仔細查看有助于系統(tǒng)的特征。完整檢查并考慮其是否有意義。
過擬合:在訓練數(shù)據(jù)上建模太精密,同時模型中又存在一些噪聲點。這時過擬合會降低模型的擴展能力, 其在更高的維度與更復雜的類界限下更甚。
數(shù)據(jù)采用和切分:相對于數(shù)據(jù)泄露,你需要非常小心地知道訓練、測試、交叉檢驗數(shù)據(jù)集是否是真正的獨立數(shù)據(jù)集。對于時序問題,很多想法和工作需要保證可以按時間順序給系統(tǒng)回復數(shù)據(jù)和驗證模型的準確性。
數(shù)據(jù)質(zhì)量:檢查你的數(shù)據(jù)的一致性。Ben給了一個航班起飛及著陸地點的數(shù)據(jù),很多不一致,重復及錯誤的數(shù)據(jù)需要被識別及明確地處理。這些數(shù)據(jù)會直接損害建模及模型的擴展能力。