Jab k-fold cross-validation randomly data split karta hai, stratified cross-validation har fold mein class distribution preserve karta hai, aur leave-one-out cross-validation (LOOCV) testing ke liye exactly ek sample use karta hai. Dono standard k-fold CV ki specific weaknesses ko address karte hain.
Setup: n samples wala dataset, C classes jinke counts n1,n2,...,nC hain jahan ∑i=1Cni=n.
Class proportions: pi=nni class i ke liye.
Random k-fold CV mein, har fold mein ideally kn samples hone chahiye jisme class i ka count ≈kni ho. Lekin random sampling variance introduce karta hai.
Expected deviation: Chote ni ke liye (minority classes), random splits aise folds bana sakti hain jisme us class ka ek bhi sample na ho.
Ek fold mein minority class ke missing hone ki probability (approximation):
P(fold missing class i)≈(1−k1)ni
k=5, ni=10 ke liye: P≈(0.8)10≈0.107 — lagbhag 10% chance ki ek fold is class ko bilkul miss kar de.
Standard k-fold, k ko < n use karta hai. Jaise-jaise k badhta hai kya hota hai?
k = 2: Har fold mein n/2 samples, 50% data pe train karo
k = 5: Har fold mein n/5 samples, 80% data pe train karo
k = 10: Har fold mein n/10 samples, 90% data pe train karo
k = n: Har fold mein 1 sample, (n-1)/n ≈ 100% data pe train karo
LOOCV limit hai: har iteration mein maximum training data.
Zyada k → bada training set → model final model ke kareeb → kam bias
Kam k → chota training set → model final model se worse → zyada bias
Variance (estimate kitna fluctuate karta hai):
Zyada k → zyada folds, overlapping training sets → zyada variance
Kam k → kam folds, zyada independent training sets → kam variance
LOOCV bias:
BiasLOOCV≈0
Kyun? n-1 samples pe training karna n samples pe training karne se almost identical hai. Jo model validate ho raha hai wo essentially final model hi hai.
Standard k-fold: k models train karo, har ek kk−1⋅n samples pe
LOOCV: n models train karo, har ek n-1 samples pe
Ratio: LOOCV ko k-fold se kn guna zyada training chahiye.
k=10, n=1000 ke liye: LOOCV ko 100× zyada computation chahiye.
Special case - Linear models: Closed-form shortcut exist karta hai. Ordinary least squares ke liye:
CVLOOCV=n1∑i=1n(1−hiiyi−y^i)2
jahan y^i saare n samples pe train hue model ki prediction hai, aur hii leverage hai (hat matrix ka diagonal).
Ye kaam kyun karta hai? Leave-one-out prediction full model se bina refit kiye compute ki ja sakti hai. Ek baar train karne se saare n LOOCV errors milte hain. Computation cost O(n) model fits se ghatkar O(1) model fit ho jaati hai.
Recall Ek 12-saal ke bachche ko stratified CV explain karo
Imagine karo aapke paas 100 marbles ka ek bag hai: 70 lal aur 30 neele. Aap unhe ek game khelne ke liye 5 groups mein split karna chahte ho.
Random split: Aap aankhein band karke ek baar mein 20 marbles uthate ho. Kabhi 18 lal aur 2 neele milte hain, kabhi 12 lal aur 8 neele. Saare groups alag-alag hain!
Stratified split: Aap pehle lal aur neele alag karte ho. Phir har group ke liye 14 lal (70÷5) aur 6 neele (30÷5) lete ho. Ab har group mein exactly waही 14 lal + 6 neele ka mix hai!
Ye kyun matters karta hai: Agar aap test kar rahe ho ki aapka dost marble colors kitna achha guess kar sakta hai, toh aap chahte ho ki har test fair ho. Random splits ke saath, kuch tests easy hote hain (ek color zyada) aur kuch harder. Stratified splits ke saath, har test equally hard hai kyunki sabmein same mix hai.
LOOCV aur bhi extreme hai: 20 marbles ke 5 groups ki jagah, aap 100 groups banate ho — har group mein practice ke liye 99 marbles aur testing ke liye 1 marble. Aap apne dost ko 100 baar test karte ho! Isme hamesha ka time lagta hai lekin aap unki guessing ability ke baare mein sabse zyada seekhte ho.
3.2.05-Handling-imbalanced-classes - Jab classes imbalanced hon toh stratified CV essential hai
2.3.08-Sampling-methods - Stratification, CV pe apply ki gayi stratified sampling ka ek form hai
5.4.02-Time-series-cross-validation - Time series ke liye alag CV chahiye; LOOCV ya random splits use nahi kar sakte
#flashcards/ai-ml
Stratified CV aur standard k-fold CV mein key difference kya hai? :: Stratified CV har class ko alag split karke phir combine karke, har fold mein class distribution preserve karta hai, jabki standard k-fold saare samples randomly split karta hai jo imbalanced folds bana sakta hai
LOOCV mein k-fold CV se kam bias kyun hoti hai?
LOOCV n-1 samples pe train karta hai (almost saara data), jisse validated model lagbhag final model jaisa hi hota hai jo saare n samples pe train hua, CV performance aur true test performance ke beech ka gap minimize karta hai
LOOCV aur k-fold ka computational cost ratio kya hai?
LOOCV ko k-fold se n/k guna zyada training chahiye; k=10 aur n=1000 ke liye, LOOCV ko 100× zyada computation chahiye (1000 model fits vs 10)
LOOCV error formula likhiye :: CVLOOCV=n1∑i=1nL(yi,f^(−i)(xi)) jahan f^(−i) sample i ko chhodkar baaki saare samples pe train hua hai
Stratified CV kab use karna chahiye? :: Jab class imbalance ho aur mini(pi)<k2 (sabse choti class ka proportion 2/k se kam ho), ya jab minority classes mein fold per 10 se kam samples hon
Saara data use karne ke baad bhi LOOCV mein high variance kyun hoti hai?
N training sets n-2 samples se overlap karte hain, jisse error estimates mein high correlation create hoti hai; variance n ke saath decrease nahi karta kyunki Var(eˉ)≈σ2 correlation ki wajah se
Stratified CV class balance kaise ensure karta hai?
Yeh har class ko alag-alag k groups mein split karta hai, phir har class se ek group combine karke har fold banata hai, jisse har fold mein proportional class representation guaranteed hoti hai
Linear models ke liye LOOCV ki khaas property kya hai?
OLS ke liye, LOOCV ek single model fit se n1∑(1−hiiyi−y^i)2 use karke compute ki ja sakti hai jahan hii leverage hai, cost O(n) se ghatkar O(1) fits ho jaati hai
LOOCV ko k-fold par kab prefer kiya jaata hai?
Jab dataset bahut chota ho (n < 50-100), model training fast ho, aur minimum bias chahiye; jab n > 1000 ho ya training expensive ho tab avoid karo
Ek 95%/5% imbalanced dataset pe random 5-fold use karne se kya hota hai?
Kuch folds mein 100% majority class ya bahut kam minority samples aa sakte hain, jisse model biased patterns seekhta hai aur unreliable validation metrics produce hoti hain