如何正確拆分資料集?常見的三種方法總結
將資料集分解為訓練集,可以幫助我們了解模型,這對於模型如何推廣到新的看不見資料非常重要。如果模型過度擬合可能無法很好地概括新的看不見的數據。因此也無法做出良好的預測。
擁有適當的驗證策略是成功創建良好預測,使用AI模型的業務價值的第一步,本文就整理出一些常見的資料拆分策略。
簡單的訓練、測試分割
將資料集分為訓練和驗證2個部分,並以80%的訓練和20%的驗證。可以使用Scikit的隨機取樣來執行此操作。
首先需要固定隨機種子,否則無法比較獲得相同的資料拆分,在除錯時無法獲得結果的複現。如果資料集很小,則不能保證驗證拆分可以與訓練拆分不相關。如果資料不平衡,也無法獲得相同的拆分比例。
所以簡單的拆分只能幫助我們開發和調試,真正的訓練還不夠完善,所以下面這些拆分方法可以幫助u我們結束這些問題。
K折交叉驗證
將資料集分割為k個分割區。在下面的圖像中,資料集分為5個分區。
選擇一個分區作為驗證資料集,而其他分區則是訓練資料集。這樣將在每組不同的分區上訓練模型。
最後,將最終獲得K個不同的模型,後面推理預測時使用整合的方法將這些模型一同使用。
K通常設定為[3,5,7,10,20]
如果要檢查模型效能低偏差,則使用較高的K [20]。如果要建立用於變數選擇的模型,則使用低k [3,5],模型將具有較低的變異數。
優點:
- 透過平均模型預測,可以提高從相同分佈中提取的未見資料的模型效能。
- 這是一種廣泛使用的來獲取良好的生產模型的方法。
- 可以使用不同的整合技術可以為資料集中的每個資料創建預測,並且利用這些預測進行模型的改善,這稱為OOF(out- fold prediction)。
問題:
- 如果有不平衡的資料集,請使用Stratified-kFold。
- 如果在所有資料集上重新訓練一個模型,那麼就不能將其效能與使用k-Fold進行訓練的任何模型進行比較。因為這個的模型是在k-1上訓練的,不是對整個資料集。
Stratified-kFold
可以保留每折中不同類別之間的比率。如果資料集不平衡,例如Class1有10個範例,且Class2有100個範例。 Stratified-kFold創建的每個折中分類的比率都與原始資料集相同
這個想法類似於K折的交叉驗證,但是每個折疊的比率與原始資料集相同。
每個分折都可以保留類別之間的初始比率。如果您的資料集很大,K折的交叉驗證也可能會保留比例,但是這個是隨機的,而Stratified-kFold是確定的,並且可以用於小資料集。
Bootstrap和Subsampling
Bootstrap和Subsampling類似於K-Fold交叉驗證,但它們沒有固定的折。它從數據集中隨機選取一些數據,並使用其他數據作為驗證並重複n次
Bootstrap=交替抽樣,這個我們在以前的文章中有詳細的介紹。
什麼時候使用他呢? bootstrap和Subsamlping只能在評估度量誤差的標準誤差較大的情況下使用。這可能是由於資料集中的異常值造成的。
總結
通常在機器學習中,使用k折交叉驗證作為開始,如果資料集不平衡則使用Stratified-kFold,如果異常值較多可以使用Bootstrap或其他方法進行數據分折改進。
以上是如何正確拆分資料集?常見的三種方法總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

為大模型提供全新科學複雜問答基準與評估體系,UNSW、阿貢、芝加哥大學等多家機構共同推出SciQAG框架
