1.5 訓練集、開發集和測試集的劃分
訓練集和開發集應該具有相同的分佈(可通過隨機化實現)
真實的失敗案例:在中等收入地區郵編數據上開發(驗證),卻在低收入地區郵編上測試,浪費了3個月左右的時間
建議:訓練集和開發集應該具有相同的分佈
1.6 開發集和測試集的大小
舊的劃分方法(70%訓練數據,30%測試數據)在如今的大數據時代不再適用
開發集應儘可能大
測試集也應儘可能大
詳細說明:開發集和測試集的劃分
1.7 什麼時候應該改變開發、測試集和指標?
準確率高的算法不一定滿足需求,比如,識貓應用中,算法A的識別率雖然高於算法B,卻將不少色情圖像錯誤識別爲貓,不符合需求。此時,可在在損失函數中增加權重項,提高對色情圖像錯誤分類結果的懲罰度(penalty),從而讓算法A的指標劣於算法B
識貓應用中的正交化:兩步走策略,首先確定目標(target),其次,優化指標
另一個示例:開發集上表現較好(由於圖片質量高(清晰)、取景良好等因素,識別效果好),但實際應用效果不太好(由於用戶拍攝的照片不夠清晰等因素,識別效果差),此時,應考慮調整優化指標、訓練集、測試集
詳細說明:
1.8 爲什麼要考慮人類的表現?
貝葉斯誤差(bayes error)是指在現有特徵集上,任意可以基於特徵輸入進行隨機輸出的分類器所能達到最小誤差。人類水平和機器水平都無法超越貝葉斯誤差,產生貝葉斯誤差的本質原因是特徵集不足以推理出準確預測值,否則貝葉斯誤差爲0。
爲什麼要和人類水平進行比較?人類擅長多種任務,只要機器學習的表現遜於人類,就可以藉助人類勞動來提高機器學習的表現。如,讓人類來標註數據,分析誤差因素,更好地分析偏差和方差