2018年4月27日 星期五

11. 什麼時候更改開發/測試集和評估指標




文章摘要: 有三個主要原因導致開發集或評估指標錯誤的認為分類器A的效果更好如果你的開發集和評估指標在分類器A上表現的效果比B好


11. 什麼時候更改開發/測試集和評估指標



當開始一個新專案的時候,我會試圖快速的選擇開發/測試集,因為這樣可以給團隊一個很明確的目標。


我通常會要求我的團隊在不到一週的時間內(幾乎不會超過這個時間)提供一個初始的開發/測試集和評估指標,並且提出一個不太完美的方案迅速行動起來,這比花更多的時間去思考更好。但在一些比較成熟的應用上,一週時間可能不夠,比如:反垃圾郵件(anti-spam)是一個成熟的深度學習應用。我見過一些團隊會花費數月的時間在已完成的成熟系統上,去獲得更好的開發集/測試集。


如果之後發現你最初的開發/測試集或評價指標與目標有些偏差,那麼請修改它們。例如:如果你的開發集和評估指標在分類器A上表現的效果比B好,但是你的團隊認為B在實際的產品中表現的更加優越,這可能表示你需要重新更改你的開發/測試集或者你的評價指標。


有三個主要原因導致開發集或評估指標錯誤的認為分類器A的效果更好:



1. 你的實際資料與開發資料來自不同分佈.


假設你的初始開發/測試集主要是一些成年貓咪的圖片。而在APP上,使用者上傳了比預期多得多的幼年貓咪圖片。所以導致你的開發集與測試集不在同一分佈。在這種情況下,更新資料集是最好的選擇。




  1. 演算法在開發集上過擬合了


    你把你的評估標準設定的過高,在開發集上反覆評估導致演算法過擬合,當完成開發後,如果你的演算法在開發集上的效果明顯高於在測試集上的效果,這就意味著你的演算法在開發集上過擬合了。這種情況下,更新你的開發集。如果你需要跟蹤團隊進度,你也可以在測試集上定期對你的系統進行評估——每週或每月進行一次。但不要使用測試集來對你的演算法進行改變。包括是否回滾到上一週的系統。如果你這樣做,你的演算法可能會在測試集上過擬合,並且不能在依靠它來對系統進行評估。 (如果你發表研究論文或者進行一個很重要的商業決策,就需要注意這一點).




  2. 評估指標衡量的並不是專案優化所需要的東西


    假設對於你的貓咪APP,你的評估指標是分類準確率。在該指標下,分類器A優於分類器B。但是假設你嘗試了這兩種演算法,發現分類器A偶爾會允許敏感圖片通過。那麼即使分類器A的精度優越於分類器B,偶爾讓敏感圖片通過,這是無法接受的。你需要做什麼呢?這裏,該評估指標不能辨別出對產品而言演算法B比演算法A好這一事實。所以,這時候你就不能相信這個指標可以幫你選擇出最好的分類器,你需要重新選擇評估指標。例如,你可以改變評估指標,當對敏感圖片分類錯誤時對演算法進行嚴厲「懲罰」。我強烈建議你選擇一個新的評估指標,並用新的標準來為團隊明確定義一個新的指標。而不是在一個不可信的指標下處理太長的時間。


    在專案中改變開發/測試集或者評估指標是很常見的。擁有一個初始的開發/測試集和評估指標能幫你快速迭代你的idea。如果你發現你的開發/測試集或評估指標沒有正確的引導你的團隊前進,你可以隨時更改它們。






http://www.kubonews.com/2018042714795.html

心情煩悶需要新鮮事刺激一下嗎?請上:http://www.kubonews.com

沒有留言:

張貼留言