當你要處理一個任務,比如說分類,手上就會有一批訓練集和一批測試集,測試集使用來最終的評測。為了能更好的訓練一個model並進行有效評估,首先要做的是將手頭上的訓練集划分出一個驗證集,用以驗證模型
之前的k折交叉驗證沒有考慮到標簽分布的問題,或者干脆就random一批驗證集,其實這樣最終的模型會有隱患,科學的做法是:可以利用分層抽樣進行划分,能夠確保生成的訓練集和驗證集中的各個類別比例同原始訓練集中保持一致,這樣就不會產生生成的數據分布紊亂問題,大家可以借鑒使用。API用sklearn的:
from sklearn.model_selection import StratifiedKFold sfolder = StratifiedKFold(n_splits=3,random_state=24,shuffle=True)