在最近的一次報告中,Ben Hamner向我們介紹了他和他的同事在Kaggle比賽中看到的一些機器學習專案的常見誤區。
這個報告於2014年2月在Strate舉辦,名為《機器學習小精靈》。
在這篇文章中,我們將從Ben的報告中瞭解一些常見的誤區,它們是什麼及如何避免陷入這些誤區。
機器學習的過程
在報告之前,Ben向我們展示了一個解決機器學習問題大體流程。
機器學習流程,摘自Ben Hamner的《機器學習小精靈》
這個流程包括如下9步:
- 以一個行業問題開始
- 源資料
- 切分資料
- 選擇一個評價標準
- 進行特徵提取
- 訓練模型
- 特徵選擇
- 模型選擇
- 生產系統
Ben強調這個過程是迭代的過程,而非線性的。
他也談及在這個過程中的每一步都可能出錯,每個錯誤都可能使整個機器學習過程難以達到預期效果。
鑑別狗和貓
Ben提出了一個研究建造一個“自動貓門”的案例,這個“門”對貓開放而對狗關閉。這是一個啟發性的例子,因為它設計到了處理資料問題上的一系列關鍵問題。
鑑別狗和貓,摘自Ben Hamner的《機器學習小精靈》
樣本大小
這個例子的第一個賣點就是,模型學習的準確度與資料樣本大小有關,並展示更多的樣本與更好的準確度之間的關係。
他通過不斷增加訓練資料,直到模型準確度趨於穩定。這個例子能夠很好讓你瞭解,你的系統對樣本大小及相應調整有多敏感。
錯誤的問題
第二個賣點就是這個系統失敗了,它對所有的貓都拒之門外。
這個例子突出了理解我們需要解決的問題的約束是非常重要的,而不是關注你想解決的問題。
機器學習工程中的誤區
Ben接著討論瞭解決機器學習問題中的4個常見誤區。
雖然這些問題非常常見,但是他指出它們相對比較容易被識別及解決。
過擬合,摘自Ben Hamner的《機器學習小精靈》
- 資料洩露:利用模型中的生產系統不能訪問的資料。在時序問題中這個問題特別常見。也可能發生在像系統id的資料上,id可能表示一個類標籤。執行模型並且仔細檢視有助於系統的特徵。完整檢查並考慮其是否有意義。(檢查參考論文《資料探勘中的洩露 | Leakage in Data Mining》)。
- 過擬合:在訓練資料上建模太精密,同時模型中又存在一些噪聲點。這時過擬合會降低模型的擴充套件能力, 其在更高的維度與更復雜的類界限下更甚。
- 資料採用和切分:相對於資料洩露,你需要非常小心地知道訓練、測試、交叉檢驗資料集是否是真正的獨立資料集。對於時序問題,很多想法和工作需要保證可以按時間順序給系統回覆資料和驗證模型的準確性。
- 資料質量:檢查你的資料的一致性。Ben給了一個航班起飛及著陸地點的資料,很多不一致,重複及錯誤的資料需要被識別及明確地處理。這些資料會直接損害建模及模型的擴充套件能力。
總結
Ben的《機器學習小精靈》是一個快速且實用的報告。
你將會得到一個關於機器學習常見誤區的有用速成學習,並且這些技巧能很容易地用在處理資料的工作當中。