內部驗證

嚴格的建模流程,需要將數據劃分成訓練集和測試集,測試集不參與訓練模型的參數(包括超參數)的過程。對於不需要選擇超參數的模型(如廣義線性模型或樹模型的變量已確定時),直接使用訓練集進行訓練即可得到較爲可靠的參數。但對於需要確定超參數的情況(比如SVM模型、廣義線性模型或樹模型需要篩選變量時),必須進一步將訓練集劃分成一部分驗證集,以確定超參數。此時,內部驗證是十分重要的環節。另外,當樣本量不夠大而缺少測試集時(樣本量較小時,強行劃分測試集可能會造成測試偏移),也需要採用內部驗證的策略。

內部驗證主要有兩大類方法:交叉驗證法自助採樣法

交叉驗證(Cross Validation)最常見的方法是10-折交叉驗證和留一法。從隨機性來看,單純的交叉驗證也可能存在隨機種子的偏移(可以找到一些數據劃分方式,使得交叉驗證的平均結果較好或較差)。因此嚴謹的做法是進行多次交叉驗證,如10次10-折交叉驗證(筆者喜歡用100次10-折交叉驗證,也就是總共驗證1000次)。交叉驗證的具體做法本文不詳述,這裏討論下選擇的折數k對交叉驗證結果的潛在影響。當樣本量較小時(如少於50時),折數k應當儘量大一點(建議10甚至20),否則因爲折數不夠而導致訓練樣本量不夠,從而導致模型欠擬合;樣本量稍微大點的時候(如超過200時),折數k對驗證結果的影響相對較小。折數k的選擇,是方差和偏差的權衡。有一篇文章有點意思,可以看看:「交叉驗證」到底如何選擇K值?

自助採樣(Bootstraping)相對於交叉驗證而言更爲靈活。從隨機性來看,較多的自助採樣不容易造成隨機種子設置的偏移(最常見的是1000次Bootstraping)。更值得一提的是,自助採樣法在樣本量較小時,比交叉驗證多一丟丟的優勢:自助採樣保留了訓練數據的樣本量,使得模型降低欠擬合的風險。但同時,也會引入一定的偏差(改變了樣本的分佈情況,被重複採用的樣本的分佈密度增大)。

兩種方法各有優劣,雖然網上有人建議樣本量實在太小時才使用自助採樣,筆者認爲不必太糾結哪種更好,可以都試試。

 

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