資料挖掘-模型驗證政策簡介
模型評估的驗證政策簡介
在資料挖掘和機器學習的過程中,我們需要對使用的模型的預測效果進行評估,有時候由于測試集或者驗證集選擇的不夠好或是資料本身的樣本就非常少,導緻了模型的評估不夠準确。下面我們将介紹使用的較多的三種模型評估的驗證政策,即K折交叉驗證、留一法、自助法。
在拿到一份資料後,傳統的方法會把資料分為1個訓練集與1個測試集,然後在訓練集上調試模型,把模型拿到測試集上去測試,得到一個模型的預測準确率的值。而K折交叉驗證方法是把資料随機分為K份,然後用其中的K-1份進行訓練,剩下的1份進行測試,得到1個預測準确率的值,然後重複K次,将K個預測準确率值求平均,得到最終該模型的預測準确率。

上圖是以K折交叉方法的一種,即10折交叉驗證方法。我們看到資料是均勻分為10份,每次取9份資料做訓練集和1份資料做測試集,得到10個結果後取平均值,然後得到最終的模型預測準确率。
對于小樣本的情況,比如資料可能隻有幾十條甚至隻有十幾條,這個時候使用留一法會比較有效果,因為可以保證每個樣本都被當作測試集驗證過,而在K折交叉方法中,可能有一小部分的樣本從未被當作測試集使用過。而留一法是K折交叉方法的一種特殊情況,即這個時候取K為樣本數量。比如有20條資料,這個時候使用留一法就是K取20的K折交叉驗證方法,每次都取19條資料進行模型的訓練集,1條資料做模型的預測集,如此便可以充分利用每一條資料。在樣本量較大的情況,一般不采用留一法。
自助法是一種随機抽取的方法,即該方法不是一次性選出訓練集的,而是每次随機的從整個資料集(比如有N條資料)抽取1條資料,記錄後進行放回。然後再繼續抽,直到抽取次數達到了N次後得到N個樣本的資料,但由于其中是存在重複資料的,去除重複後,訓練集的占比約占63.2% ,而測試集的占比約占36.8% 。因為當N取值較大的時候,得到如下公式:
下面通過例子對自助法進行說明,比如目前有10條資料,記作0、1、2、3、4、5、6、7、8、9的标号,我們進行10次抽取,如下表:
0号 | 1号 | 2号 | 3号 | 4号 | 5号 | 6号 | 7号 | 8号 | 9号 |
---|---|---|---|---|---|---|---|---|---|
2次 | 未中 | 1次 | 未中 | 1次 | 2次 | 未中 | 3次 | 未中 | 1次 |
根據上表我們可以發現,7号抽中了3次、0号和5号抽中了2次、2号、4号、9号抽中了1次,而1号、3号、6号、8号未被抽中。是以我們把1、3、6、8作為資料的測試集;0、2、4、5、7、9作為資料的訓練集。訓練集占總資料的比例為60%、測試集占總資料的比例為40% ,即和之前的公式得到的比例較為接近。
值得注意的是,自助法的好處是用于那種資料分布較為平均,并且樣本量較小的情況。對于那些分布明顯不平衡的資料,或是資料量較大的情況,使用自助法并不合适。自助法由于無法完全利用資料,是以除非資料量極小,否則一般不太使用。
總的來說,使用什麼樣的模型評估驗證政策主要取決于資料量的多少和資料分布的均衡性。如果資料量較小,并且資料分布的較為均衡,則可以使用自助法。如果資料量較小,又想對資料充分利用,那麼可以使用留一法。當資料量較大的時候,檢驗使用K折交叉驗證方法,但是要主要K值的選取,當資料量較大的時候應當适當減小K值,比如設為5、10等。初學者對于模型評估的驗證政策要多加注意,對于不同的情況使用不同的驗證政策。