這篇文章將要介紹怎麼進行分割資料集使得模型的構造能更有代表性也能使泛化誤差的估計更準確。
在現實的資料探勘任務中,我們針對不同的目的往往有很多不同的演算法可供選擇,能構造出不同的模型,甚至同一種演算法的不同引數配置也會產生不同的模型,這就產生了很多問題,這些演算法和模型可以任意選擇嗎?評估的標準是什麼?模型只能選擇乙個嗎,可不可以組合幾個模型達到更佳的效果呢?
我們這裡介紹幾種資料集的分割方法:
直接將資料集d劃分為兩個互斥的集合。
留出法需要解決的問題:
(1)劃分比例問題。需要保證訓練集足夠大(即保真性足夠高),又不能讓測試集太小(即對泛化誤差的估計準確度足夠高);資料集的劃分沒有規定的比例,常見的做法是2/3—4/5用作訓練集,其餘用作測試集。
(2)劃分時資料分布一致性的問題。在進行訓練集與測試集劃分時應該盡可能保持資料的一致性,避免因資料劃分過程引入額外的偏差而對最終結果產生影響結果。(類似於統計學中的分層抽樣,這裡用二分類任務舉個栗子:假設我們有1000個樣本,其中有700個正例,300個反例,我們需要按7:3的比例分割資料集,恰好將700個正例分為訓練集,300個反例分為測試集,這個時候用測試集去評估分類器的效果,顯然使錯誤率達到了100%,所以資料集在進行分割時裡面正例反例的比例也是要進行考慮的。)
(3)資料集的劃分次數問題。在上面**的問題中我們說到了劃分時的資料分布一致性問題,假設我們有1000個樣本資料,考慮了劃分比例和劃分資料分布一致性的問題,我們將700個資料劃分到訓練集,其中有490個正例,210個反例,剩餘的300個資料劃分到測試集,其中有210個正例,90個反例,從700個正例裡面挑選490個正例,從300個反例裡面挑選210個反例,有很多種分配方式,不同的分配方式可得到不同的資料集,訓練出的模型的泛化誤差也不一樣,單次使用留出法得到的估計結果往往並夠穩定可靠,在使用留出法時一般要採用若干次隨機劃分、重複進行試驗之後取平均值作為留出法的平均結果。
將資料集d分為k個大小相似的互斥子集。
同樣的,每個子集都要保證資料劃分時的分布一致性問題,取其中乙個子集作為測試集,其餘的k個子集作為訓練集,這樣可以構建k次模型,最終返回的是這k次測試結果的均值,顯然,交叉驗證法評估結果的穩定性和保真性在很大程度上取決於k的取值。同樣的,類似於上面介紹的留出法,為了減小因樣本劃分不同而引入的差別,k折交叉驗證要隨機使用不同的劃分重複p次,最終的評估結果是這p次結果的平均值。常見的有「10次10折交叉驗證」。
留一法是交叉驗證法的特殊情況,取k為樣本大小m,則每個子集的大小為1,每次只取乙個樣本用於測試,其餘的m-1個樣本用於訓練,這樣每個樣本都參與了訓練也參與了測試。留一法評估的結果往往較為準確,但是當樣本量較大時,訓練m個模型的開銷就顯得太大了。
上面介紹的幾種方法中要麼會因訓練樣本規模不同而導致估計偏差,要麼雖然受訓練樣本規模影響較小,但是計算複雜度有太高了。
於是我們引入自助法,這是一種能從大小為m的資料集中抽取出m個資料的一種方法,我想你已經猜到了,採用的就是放回抽樣,根據極限的知識,我們可得到,進行m次這樣的放回抽樣,大概會有36.8%的樣本點不會出現在抽取的資料集中,這樣我們就可以用這沒抽取到的樣本作為測試集使用,也就是求取總資料集和抽取的資料集的差集作為測試集,這樣既避免了泛化誤差估計過於樂觀的問題,又解決了訓練集太小的問題。這種方法的缺點就是,在估計的過程中會扭曲初始資料集的分布,這自然會引入估計偏差,所以這種方法只適用於資料集較小的情況。
機器學習 模型評估與選擇
1.擬合 接近目標的遠近程度。過擬合 學習能力過強導致過於擬合。過於學習學到認為女生必須是長頭髮。欠擬合 學習能力低下導致欠擬合。學習能力低下,擁有長髮的都是女生。2.評估方法 目標 所選模型的泛化誤差最小 一 留出法 step 1 將資料集d 互斥 的分成訓練集s和測試集t,d sut。step ...
機器學習 模型評估與選擇
1 經驗誤差和過擬合 錯誤率 分類錯誤的樣本數佔樣本總數的比例 精度 1 錯誤率 誤差分為訓練誤差 或稱經驗誤差 和泛化誤差 訓練誤差 在訓練集上的誤差 泛化誤差 在新樣本上的誤差 機器學習的目標是得到泛化誤差最小的學習器。學習器把訓練樣本學得 太好 了的時候,很可能已經把訓練樣本自身的一些特點當做...
機器學習 模型評估與選擇
第二章 模型評估與選擇 一 概覽 對於同一資料集而言,給定不同的演算法,會提取不同的模型,甚至對於同一演算法給定不同的引數,也會得到不同的模型,選擇最佳的模型的過程稱為模型選擇。模型選擇會遵循一定的標準,首先需要將資料集分成若干部分,一部分用於訓練模型,一部分用於測試模型的泛化能力,對於測試的結果給...