機器學習交叉驗證:模型的“多場景考試”
在機器學習中,交叉驗證是一種非常重要的模型評估方法,它就像是給模型進行“多場景考試”,確保模型在不同的數(shù)據(jù)上都能表現(xiàn)良好。
今天,我們就用最通俗易懂的方式來講解交叉驗證,幫助你更好地理解這個概念。
No.1交叉驗證是什么?
想象你是一個廚師,你開發(fā)了一道新菜,想讓朋友嘗嘗好不好吃。如果你只讓一個朋友試吃,可能他的口味太獨特,評價不一定客觀。
所以,你可能會:
- 多找?guī)讉€朋友試吃(用不同數(shù)據(jù)測試模型)。
- 讓朋友輪流試吃不同的菜(用不同組合的數(shù)據(jù)訓練和測試模型)。
這就是交叉驗證的核心邏輯——避免偶然性,得到更可靠的結果。
交叉驗證的基本原理
交叉驗證法的核心是將數(shù)據(jù)集分成訓練集(用于訓練模型)和測試集(用于評估模型)。
圖片
但與簡單的一次性劃分不同,交叉驗證會多次劃分數(shù)據(jù),每次用不同的數(shù)據(jù)組合來訓練和測試模型,最終綜合多次結果來評估模型性能。
No.2常見的交叉驗證方法
1. K折交叉驗證(K-Fold Cross-Validation)
K折交叉驗證是最常用的交叉驗證方法之一。它將數(shù)據(jù)集分成K個部分,每次用一個部分作為測試集,其他K-1個部分作為訓練集,重復K次,最后取平均效果。
圖片
假設你有10個蘋果,要測試哪個蘋果最甜。你把這10個蘋果分成10組(K = 10),每次拿1個蘋果出來嘗(測試集),剩下的9個蘋果用來比較(訓練集),這樣嘗10次,就能更準確地知道哪個蘋果最甜了。
優(yōu)點是能充分利用數(shù)據(jù),評估結果更穩(wěn)定可靠;缺點是計算量相對較大,尤其是當K值較大或者數(shù)據(jù)集很大的時候。
2. 留一法交叉驗證(Leave-One-Out Cross-Validation, LOOCV)
這是K折交叉驗證的一個特例,當K等于數(shù)據(jù)集的大小時,就變成了留一交叉驗證。
也就是說,每次只留下一個樣本作為測試集,剩下的所有樣本作為訓練集,進行與數(shù)據(jù)集大小相同次數(shù)的訓練和測試。
圖片
還是那10個蘋果,這次你每次只嘗1個蘋果(測試集),剩下的9個蘋果用來比較(訓練集),要嘗10次,雖然結果很準確,但太費時間了。
優(yōu)點是能最大程度地利用數(shù)據(jù),評估結果非常準確;缺點是計算量極大,當數(shù)據(jù)集很大的時候,幾乎無法實現(xiàn)。
3. 自助法(Bootstrap)
自助法是一種通過隨機抽樣來評估模型性能的方法。它從數(shù)據(jù)集中隨機抽取一部分數(shù)據(jù)(可以重復抽樣),用這部分數(shù)據(jù)作為訓練集,剩下的數(shù)據(jù)作為測試集。
圖片
就像從裝有10個小球的袋子里,每次隨機抽一個小球并放回,重復10次。沒被抽到的小球作為測試集。多次重復后,雖能大致了解小球顏色分布,但可能有偏差,因為有些小球可能被多次抽到,有些則未抽到。
優(yōu)點是適用于小數(shù)據(jù)集,能生成多個訓練集,有助于評估模型穩(wěn)定性。缺點是改變了原始數(shù)據(jù)分布,可能引入偏差,因為部分樣本可能重復使用,部分樣本未被使用。
No.3如何選擇歸一化或標準化?
?? 準備數(shù)據(jù):收集并整理好用于模型訓練和評估的數(shù)據(jù)集。
?? 劃分數(shù)據(jù):將數(shù)據(jù)集平均分成 K 份,確保每份數(shù)據(jù)的大小和分布大致相同。
圖片
訓練和測試循環(huán):
- 第一次:選擇第 1 份作為測試集,其余 K - 1 份作為訓練集,訓練模型并在測試集上進行評估,記錄評估指標(如準確率、均方誤差等)。
- 第二次:選擇第 2 份作為測試集,其余作為訓練集,重復訓練和評估過程,記錄指標。
- ……
- 第 K 次:選擇第 K 份作為測試集,其余作為訓練集,完成訓練和評估,記錄指標。
綜合評估:將 K 次測試得到的評估指標取平均值,作為模型的最終評估結果。
本文轉載自??Fairy Girl??,作者:Fairy Girl
