Exercises — Cross-validation — k-fold
5.6.5 · D4· Coding › Machine Learning (Aerospace Applications) › Cross-validation — k-fold

Poore note mein, = number of samples, = number of folds, = fold par measure ki gayi metric jab woh test set hota hai, aur
Level 1 — Recognition
Exercise 1.1 (L1)
Tum -fold cross-validation run karte ho. Total kitne models train hote hain, aur poori procedure mein har ek single data point kitni baar test set mein aata hai?
Recall Solution
- Models trained: har fold ke liye ek, toh models.
- Test appearances per point: k-fold ka poora point yahi hai ki har sample test fold mein exactly ek baar aata hai. Toh har point baar test hota hai (aur baaki rounds mein training ke liye use hota hai).
Figure s01 dekho: koi bhi single row ko chaar columns ke across follow karo — woh exactly ek column mein "test" (pink) rang ka hai aur baaki teen mein "train" (blue).
Exercise 1.2 (L1)
Ek dataset mein samples hain jo equal size ke folds mein split hain. Loop ke ek round mein training set mein kitne samples hain aur test set mein kitne?
Recall Solution
Har fold mein samples hote hain.
- Test set = ek fold = samples.
- Training set = baaki folds = samples.
Exercise 1.3 (L1)
Teen fold scores aate hain . kya hai?
Recall Solution
Hum mean lete hain kyunki independent estimates ko average karne se variance kam hota hai — kisi ek fold ki kismat dominant nahi hoti.
Level 2 — Application
Exercise 2.1 (L2)
Tumhare paas flight records hain aur tum choose karte ho. Har fold ke liye training set ka size likho, aur confirm karo ki data ka kitna fraction har model train karta hai.
Recall Solution
Fold size .
- Test set , training set .
- Training ke liye use hone wala fraction .
Issi liye k-fold estimates full-data performance ke kareeb hote hain: har model phir bhi sab kuch dekhta hai, LOOCV ke tiny hold-out ke unlike (dekho 5.6.06-Leave-one-out-cross-validation-(LOOCV)).
Exercise 2.2 (L2)
Paanch folds ne F1 scores diye . CV mean aur sample standard deviation compute karo (denominator mein use karo).
Recall Solution
Mean: Mean se deviations (har ): Squared: , sum . Sample variance: se divide karo: Std: . Toh report karo .
Hum se divide karte hain, se nahi, kyunki hum mean estimate karne mein pehle hi "ek degree of freedom spend" kar chuke hain; use karne se spread systematically underestimate hoga.
Exercise 2.3 (L2)
Tumhara dataset flight date ke hisaab se sorted hai. Tum plain KFold run karte ho shuffle=False ke saath. Yeh misleadingly low CV score kyun de sakta hai, aur kya ek-word fix yeh problem hata deta hai?
Recall Solution
shuffle=False ke saath, fold 1 = sabse purani flights, fold 5 = sabse nayi. Har round ek time-contiguous block par test karta hai jo training block se systematically alag ho sakta hai (purane engines, seasonal weather, alag routes). Model se kaha ja raha hai ki woh ek distribution shift par generalise kare jis par usne kabhi train nahi kiya, toh scores girte hain — lekin yeh split ko reflect karta hai, model ko nahi.
Fix: shuffle (shuffle=True), jo har fold ko saare dates ka ek random sample bana deta hai.
⚠️ Exception: agar task genuinely ek forecast hai, toh shuffle mat karo — 8.5.02-Time-series-cross-validation use karo.
Level 3 — Analysis
Exercise 3.1 (L3)
Model A folds mein deta hai; Model B deta hai. Ek colleague kehta hai "B better hai, ship karo." Dono taraf se argument karo aur batao tum actually kya karoge.
Recall Solution
- B ke liye: uska mean F1 () A ka () beat karta hai.
- B ke khilaf: uska spread () A ka () se chaar baar se zyada hai. B ke liye worst-plausible fold ke aas paas hoga, jo A ke worst fold se neeche hai. B inconsistent hai — uska score heavily depend karta hai ki data ka kaun sa slice woh dekh raha hai, jo ek safety task ke liye red flag hai.
- Kya karna chahiye: means sirf apart hain jabki B ka std hai; difference clearly significant nahi hai. Usi folds par ek paired comparison chalao, ya /repeats badhao. Aerospace mein, woh model prefer karo jiska lower bound safest ho — aksar A. Dekho 5.6.10-Bias-variance-tradeoff-in-model-selection.
Exercise 3.2 (L3)
Tum ko se (LOOCV) tak badhate ho. Estimate ke bias aur variance mein qualitative change predict karo, aur har ek ke mechanism ko explain karo.
Recall Solution
- Bias ↓ (kam): har training set mein ab samples hain, almost poora dataset, toh har model ki performance almost wahi hai jo full-data model achieve karta. Chhote- models sirf data par train karte hain aur thoda under-perform karte hain, estimate ko pessimistically bias karte hain.
- Variance ↑ (zyada): do mechanisms. (1) Har test set ek single sample hai, toh har ya -ish hota hai — extremely noisy. (2) training sets apne samples mein overlap karte hain, toh models almost identical hain aur unki errors correlated hain; correlated numbers ko average karne se variance barely kam hoti hai.
- Net: LOOCV bias ke liye variance trade karta hai, aur model fits ka cost lagta hai. Issi liye ya usual sweet spot hai.
Exercise 3.3 (L3)
flights mein se mein failures hain ( positives). Plain shuffled KFold aur ke saath, ek fold ko sirf positive labels milte hain. Numerically explain karo ki yeh us fold ka F1 kyun barbad kar deta hai, aur fix ka naam batao.
Recall Solution
Har fold mein samples hain; fold mein expected positives hain. Sirf positives wale fold ka matlab hai:
- Recall sirf true positives par measure hoti hai — ek miss karo aur recall se par aa jaati hai; ek bhi mistake score ko wildly swing kar deti hai.
- Training folds mein ab positives concentraded doosri jagah hain, toh class balance round to round alag hoti hai, extra variance inject karte hue.
Fix: Stratified k-fold (5.6.04-Stratified-sampling) har fold ko positives rakhne par force karta hai, yani per fold, har ko stabilise karte hue.
Level 4 — Synthesis
Exercise 4.1 (L4)
Tumhe Random Forest ka max_depth candidate values par tune karna hai aur ek honest final performance estimate report karna hai. Ek junior engineer propose karta hai: "Har depth ke liye -fold CV chalao, best CV score chunlo, aur wahi best CV score final number ke roop mein report karo." Flaw identify karo aur correct procedure design karo.
Recall Solution
- Flaw: CV score
max_depthchoose karne ke liye use hua tha. Wahi score final estimate ke roop mein report karna optimistically biased hai — tumne ek decision lene ke liye validation folds ko dekha, toh woh ab unseen nahi rahe. CV scores mein se best inflatedly select kiya gaya hai. - Correct design — nested CV (5.6.07-Nested-cross-validation):
- Outer loop ( folds): har outer training set ko ek inner CV ko pass kiya jaata hai jo
max_depthtune karta hai (yeh grid search hai, 7.2.03-Hyperparameter-tuning-grid-search). - Winning depth poore outer-training set par refit hota hai aur ek baar untouched outer-test fold par score hota hai.
- outer-test scores ka average → honest estimate.
- Outer loop ( folds): har outer training set ko ek inner CV ko pass kiya jaata hai jo
- Key principle: jo data model select karne ke liye use hua hai woh data jispe uski performance estimate ki jaati hai se disjoint hona chahiye.
Exercise 4.2 (L4)
Total compute budget: tum zyada se zyada model fits afford kar sakte ho. Tum chahte ho ki (a) hyperparameter settings tune ho aur (b) nested, unbiased estimate mile. Outer aur inner choose karo taaki total fits rahe, aur inhe count karo.
Recall Solution
Nested-CV fit count (final refits ignore karte hue, ya alag count karte hue): Try karo : Yeh exactly budget hit karta hai. Agar tum har outer fold ke liye ek refit bhi count karo ( extra fits) toh exceed ho jaayega, toh par aa jao: fits, room rehta hai. Dono ceiling par ya headroom ke saath defensible hain; apna assumption batao.
Level 5 — Mastery
Exercise 5.1 (L5)
Ek aerospace team ke paas labelled flights hain 8 alag aircraft se, har ek se flights. Failures rare hain (). Woh ek aisa CV estimate chahte hain jo (i) same physical aircraft ki flights ke beech information leak na kare, aur (ii) failure rate per fold preserve kare. Splitting scheme design karo aur har choice justify karo. Phir batao kitne folds natural hain.
Recall Solution
- Leakage risk: same aircraft ki do flights ek hi serial-number-specific sensor quirks share karti hain. Agar aircraft #3 ki kuch flights training mein hain aur kuch test mein, toh model general failure signatures seekhne ki jagah us aircraft ko "pehchan" sakta hai — optimistic aur unsafe. Toh splits aircraft (group) level par hone chahiye: ek aircraft ki saari flights ya poori train ya poori test mein jaati hain. Yeh group k-fold hai.
- Class balance: failures ke saath hum bhi chahte hain ki har fold ke kareeb ho — yeh stratification ke liye argue karta hai. Dono combine karne se stratified group k-fold milta hai: aircraft ke hisaab se partition karo jabki groups mein failure rate balance karo.
- Natural : aircraft → up to folds, har fold = ek held-out aircraft ki flights (aircraft par group-LOOCV). Agar bahut costly ya variable ho, aircraft per fold group karo ke liye.
- Yeh mastery answer kyun hai: yeh simultaneously ek saath un do independence assumptions ko respect karta hai jis par k-fold silently rely karta hai — ki (a) folds un units mein disjoint hain jo matter karte hain (aircraft, rows nahi), aur (b) har fold true label distribution represent karta hai.
Exercise 5.2 (L5)
Prove karo ki agar har fold ne identically score kiya ( saare ke liye), toh aur , aur ek sentence mein explain karo ki real-world mein (suspiciously) kya imply karta.
Recall Solution
Mean: Std: har deviation , toh sum of squares hai aur Interpretation: practically fold scores kabhi exactly equal nahi hote; ek reported almost hamesha ek bug signal karta hai — jaise same data har fold mein leak hua, ya metric training set par compute ho rahi hai. Perfect consistency ek trophy nahi, balki ek warning hai.
Recall Quick self-check (cloze)
k-fold == models train karta hai, aur har sample exactly once== test hota hai. Har model ke liye training fraction hai ::: Fold scores ka sample std sum of squares ko divide karta hai ::: se Rare-class folds ka fix ::: stratified k-fold Same-aircraft leakage ka fix ::: group (aircraft-level) k-fold Hyperparameters tune karte waqt honest estimate ::: nested cross-validation