Machine Learning Yearning1~14

1.測試數據儘量和要應用的數據分佈吻合,這可能和訓練數據分佈不吻合;儘可能的使得dev 和 test sets的分佈相同。
2.如果我們的算法要應用到特定的領域,dev和test sets的分佈最好是相同的。
3. dev和test sets的大小要基於模型來定。通過dev和test sets評估不同模型的差異,如果模型差異越小,所需數據量越大。
4.確定一個單值的評價標準(比如accuracy)。如果一個評價標準有幾個評價值,有時會很難確定一個明確的好的模型。比如,Precision和Recall。如果一定要通過Precision和Recall來評價,那麼可以結合爲一個值來評價,比如F1 score,或者進行平均,加權平均。
5.還有一種方法,先確定一個(或者剩餘一個)評價標準的範圍,在這個範圍選取最好的另一個(剩餘的那個)評價標準。
6.建立一個機器學習系統的過程爲:

在這個過程中,需要dev set和評價標準來確定每個想法的優劣(使得實驗向着正確的方向進行,哪個想法的提升明顯),從而加快這個循環。
7.有時後,初始化的dev set和評價標準不適用了,這時候我們需要改變dev set和評價標準。主要有三個原因造成dev set和評價標準的不適用:a,實際應用的數據分佈和dev set的分佈不同;b,不斷的使用同樣的dev set評估模型,會導致模型在dev set上‘過擬合’。我們得根據情況更改dev set。不要使用測試集做任何決定(比如測試集效果不好,決定回滾模型)。否則測試集和dev set一樣,可能導致‘過擬合’;c,根據需要更改評價標準。
8.訓練集和測試集比例不一定是7:3,如果數據量多的化,測試集比列可以少於3成。
9. dev set數量要足夠,一定要能夠檢測出模型的有意義的變化;測試數據也要足夠的大,能夠給我們的系統一個準確的評估。
10.如果是開發應用,不要一開始試圖設計最完美的系統,相反的是,要快速的設計和訓練一個基本的系統,因爲檢驗系統的基本功能是有價值的,這樣會找到值得投入時間的方向。這個和像發表學術論文是不同的。
11.如果有一個想法,需要個把月時間,可能會提高結果,那麼我們是否需要投入時間?我們可以這麼做:a,收集一些系統分錯的樣本;b,計算想要減少錯分類別的錯分比例。這個觀察錯分樣本的過程叫做error analysis。如果這個類別錯分的比例本身就很小,那麼即使再提高,也不性價比也不高。但是如果這個類別錯分比例較高的話,我們有理由相信提高這個類別的準確率能夠對系統有較大的提升。所以說,一定要分析一下,目標是不是值得花費大的精力。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章