Worked examples — Cross-validation — k-fold
5.6.5 · D3· Coding › Machine Learning (Aerospace Applications) › Cross-validation — k-fold
Shuru karne se pehle, teen plain-word reminders taaki koi bhi symbol yahan begair wajah na ho:
Recall
aur ka matlab kya hai phir se? ::: tumhare dataset mein samples (rows) ki kul sankhya. ::: folds ki sankhya — kitne equal pile mein hum data ko kaatenge. Ek fold ::: un piles mein se ek, jo ek baar test set ki tarah use hoti hai jabki baaki piles model ko train karti hain.
Recall "Score" kya hota hai aur hum average kyun karte hain?
Ek fold ka score ::: ek single number (accuracy, F1, RMSE…) jo batata hai model ne us held-out pile pe kitna accha kiya. scores ko average kyun karte hain ::: ek split lucky ya unlucky ho sakta hai; splits ka mean true performance ka ek steady estimate hota hai.
Do metrics jinse hum actually score karenge
Is page par har fold ka "score" do numbers mein se ek hoga. Unhe ek baar yahan define karo, taaki neeche kuch bhi bina samjhe borrowed na ho.
Scenario matrix
Har k-fold problem neeche diye axes ka ek combination hai. Har cell ek alag cheez hai jo galat ho sakti hai ya alag behave kar sakti hai — isliye har ek ka apna worked example hai.
| Cell | Case class | Kya cheez special hai | Covered by |
|---|---|---|---|
| A | Clean, balanced, divisible by | Textbook case, har fold exactly same size | Example 1 |
| B | not divisible by (remainder) | Folds ke sizes unequal hain — leftovers kaise distribute honge? | Example 2 |
| C | Degenerate small: (LOOCV limit) | Test fold mein ek sample hai; score 0 ya 1 hoga | Example 3 |
| D | Degenerate small: | Sirf do folds — single split ke sabse kareeb | Example 4 |
| E | Imbalanced classes (rare event) | Random folds class ratio bigaad dete hain → stratify karo | Example 5 |
| F | Regression metric (RMSE) accuracy nahi | Error average karna, "correctness" nahi; units matter karti hain | Example 6 |
| G | Time-ordered data (leakage trap) | Shuffling future chura leta hai → forward-chaining karo | Example 7 |
| H | Exam twist: variance vs mean judgement | Do models, same mean, different std — kaun jeetega? | Example 8 |
Example 1 — Cell A: clean divisible case
Forecast: aage padhne se pehle mean guess karo — kya yeh se upar ya neeche hai?
Neeche ki figure rotation dikhati hai: har row paanch folds mein se ek hai, blue cells 8 training samples hain, aur orange block ke 2 cells us fold ka test set hain. Rows ke neeche trace karo aur dekho orange block left-to-right slide karta hai — har sample exactly ek baar test set mein aata hai, aur har row ka per-fold accuracy right side pe print hai.

- Fold size dhundho. . Har fold mein exactly 2 samples hain (figure mein ek orange block), har model baaki 8 pe train karta hai (blue cells). Yeh step kyun? Hume confirm karna hai ki folds equal hain — Cell A tabhi valid hai jab , se evenly divide ho.
- Scores average karo (CV score). Yeh step kyun? Parent formula — averaging hi 5 lucky/unlucky numbers ko ek estimate mein badalta hai.
- Folds mein spread (sample standard deviation). Squared deviations hain , sum hai. se divide karo: . Square root: . Yeh step kyun? Hum se divide karte hain, se nahi, kyunki mean khud usi data se estimate hua tha — ek degree of freedom "use up" ho gaya. Yeh sample standard deviation hai.
Forecast check: tumse poochha gaya tha ki mean se zyada hai ya nahi. Hai — . Eyeball intuition kaam karti hai kyunki paanch scores mein se teen () se upar hain aur average ko upar kheenchte hain; woh "count karo ki kitne line ke upar hain" trick woh mental shortcut hai jise forecast train kar raha tha.
Verify: paanch scores mein hain; mean us range ke andar hai ✓. Total ko 5 equal shares of mein baanta ✓.
Example 2 — Cell B: not divisible by
Forecast: — fold mein samples nahi ho sakte. Toh leftover ka kya hoga?
Neeche ki figure 23 samples ko paanch coloured bars ki tarah dikhati hai. Notice karo ki pehle teen bars last do se ek cell lambe hain: woh extra cell remainder hai jo earliest folds mein ek-ek karke distribute hota hai. Caption confirm karta hai ki sizes add hokar banta hai.

- Remainder split karo. . Base size hai; remainder pehle teen folds mein ek-per-fold spread hota hai (teen lambe bars). Fold sizes: .
Yeh step kyun? scikit-learn ka
KFoldpehlen % kfolds ko ek extra sample deta hai taaki har sample exactly ek baar use ho aur koi fold empty na rahe. Sizes "approximately equal" rehti hain, se match karti hain. - Total check karo. ✓ — har sample exactly ek baar test hota hai, koi twice nahi. Yeh step kyun? k-fold ki defining guarantee hai har point exactly ek baar test hota hai; unequal folds ko phir bhi mein sum karna chahiye.
- RMSEs average karo. Yeh step kyun? RMSE ek per-fold number hai (upar ke roop mein define hua); CV estimate abhi bhi unka mean hai.
Forecast check: tumhari instinct sahi thi ki fold size nahi ho sakta — fix rounding nahi balki leftover samples ko distribute karna hai, jo mixed sizes deta hai. Yaad rakhne wala number hai n % k: yeh exactly count karta hai ki kitne folds ko bonus sample milega.
Verify: sizes sum hokar banta hai ✓. Mean min aur max ke beech hai ✓. Units kg rehte hain (humne kg values average kiye) ✓.
Example 3 — Cell C: LOOCV limit
Forecast: sirf ek test point per fold ke saath, ek fold ki accuracy kaun si values le sakti hai?
- Har test fold mein ek sample hai. . pe train karo, pe test karo. Yeh step kyun? Yeh extreme hai jo parent mein LOOCV ke naam se mention hai.
- Har fold score 0 ya 1 hai. Ek sample ya toh sahi hoga () ya galat () — kuch beech mein nahi. Scores: . Yeh step kyun? accuracy . Isliye LOOCV fold scores high variance / noisy hote hain — har ek coin-flip jaisa ya hai.
- Average karo. Yeh step kyun? scores ka mean equals overall fraction correct — exactly of .
Forecast check: prompt ka answer hai "sirf ya " — ek single test point ya toh poora sahi ho sakta hai ya poora galat. Isliye average () LOOCV mein informative number hai jabki kisi bhi single fold ka score akele almost useless hai.
Verify: mein se correct ✓. Average kiye gaye har value ya thi, single-sample test folds confirm karta hai ✓.
Example 4 — Cell D: two-fold extreme
Forecast: sirf 2 folds ke saath, har model data ka kitna hissa train karta hai?
- Fold size aur training fraction. . Har model fold samples data pe train karta hai. Yeh step kyun? Chhota matlab har model kam training data dekhta hai — yahan sirf aadha — isliye har score full-data model ka pessimistic (higher-bias) estimate hai.
- Average karo. Yeh step kyun? Wahi averaging rule; do folds abhi bhi ek-ek baar test karte hain (). Yahan har F1 upar define kiya gaya balanced precision–recall blend hai.
- Single split se connection interpret karo. ke saath, fold 1 fold 2 pe train karta hai aur vice-versa: yeh do mirror-image train/test splits hain. Unhe average karna barely ek split se zyada robust hai — isliye hum ya prefer karte hain.
Forecast check: "har model kitna train karta hai?" ka answer exactly aadha () hai. Woh low training fraction hi woh poori wajah hai ki biased-pessimistic hota hai — model tabhi judge kiya jaata hai jab woh us data se starved ho jo production mein uske paas hogi.
Verify: ✓. Mean ✓.
Example 5 — Cell E: rare event → stratified k-fold
Forecast: failures ko folds mein split karte hue, har fold mein average kitne failures hone chahiye?
Figure do strategies ko "failures per fold" ke bar charts ke roop mein contrast karta hai. Left mein (random k-fold) bars jagged hain — ek fold red hai height pe, matlab usne koi failure nahi pakdi. Right mein (stratified) sare chaar bars flat hain target height pe, rate match karte hue. Dashed grey line woh target mark karti hai.

- True class rate. failures. Yeh step kyun? Yeh baseline hai jo har fold ko mirror karna chahiye. Full dataset ratio stratified sampling ka target hai.
- Expected failures per fold. failures per fold on average (figure mein dashed line). Yeh step kyun? Agar randomness kisi fold ko failures deal kar de (red bar), us fold mein koi positive detect karne ke liye nahi hai.
- Zero-failure fold ka F1 kyun collapse karta hai. F1 ko true positives chahiye (uski upar wali formula mein ). Test fold mein zero actual positives ke saath, recall ka denominator hai → F1 undefined hai (scikit-learn return karta hai). Us fold ka score meaningless hai aur average ko drag/spike karta hai. Yeh step kyun? Rare-event scoring tabhi valid hai jab har test fold mein positives exist karein.
- Stratified fix. Stratified k-fold har fold ko failures hold karne par force karta hai — yaani failures per fold (flat right-hand chart), guarantee karta hai ki har fold real F1 compute kar sake.
Forecast check: "hona chahiye" wala number 3 per fold hai, aur exactly yahi value stratification har fold pe enforce karti hai (flat green bars). Random scheme ki failure thi ki woh is 3 se deviate hui — ek fold ko 0 mila. Tumhara forecast of 3 woh yardstick hai jo random scheme ko broken expose karta hai.
Verify: samples-per-fold failures/fold, aur = total failures ✓. ✓.
Example 6 — Cell F: regression, RMSE units
Forecast: kya CV RMSE sirf inhe paanch ka mean hai, ya hume kuch square-and-root karna padega?
- Fold RMSEs directly average karo. Yeh step kyun? Har fold pehle se hi ek RMSE hai (upar definition se ). Classic recipe per-fold scores average karta hai — hum residuals ko re-pool nahi karte. (Residuals pool karna ek alag, valid variant hai; parent ka formula scores ka mean use karta hai.)
- Folds mein spread. se deviations: . Squares: , sum . se divide karo: . Root: kg. Yeh step kyun? Example 1 jaisi sample-std reasoning — mean ne ek degree of freedom use kiya.
- Units state karo. Mean aur std dono kg mein hain (target ke same units), kyunki RMSE un final square root ke through target ke units inherit karta hai. Yahan "% accuracy" interpretation galat hogi. Yeh step kyun? Ek metric ke units decide karte hain ki tum uski values kaise interpret aur combine kar sakte ho; kg-error ko fractional accuracy ki tarah treat karna silently har downstream comparison ko corrupt kar dega.
Forecast check: "mean, ya square-and-root?" ka answer hai bas mean — kyunki har fold value pehle se hi ek RMSE hai (squaring-and-rooting har fold ke andar hua). Forecast jis trap se bachaa raha tha woh hai un numbers ko double-process karna jo pehle se error summaries hain.
Verify: sum , mean ✓; std ✓; units kg ✓.
Example 7 — Cell G: time-ordered data, leakage trap
Forecast: pe train karke pe test karne mein kya galat hai?
Figure chaar forward-chaining folds ko rows ki tarah stack karta hai. Har row mein blue cells (training past) strictly left mein hain single orange cell (next-day test) ke, aur grey cells future ke din hain jo abhi available nahi hain. Bottom arrow time ko left-to-right flow karta dikhata hai — koi bhi orange test cell kabhi apne right mein koi blue training cell nahi rakhti, jo exactly "no future leaks backward" guarantee hai.

- Leakage spot karo. Shuffled folds model ko future days () pe train karne dete hain past day () predict karne ke liye. Deployment mein tumhare paas future kabhi nahi hota, isliye shuffled CV performance over-estimate karta hai. Yeh step kyun? k-fold ki fairness assume karti hai ki har test fold "unseen future" hai; time order us assumption ko todta hai. Yeh domain time-series CV ka hai.
- shuffled kyun abandon karna hai, aur kya replace karta hai. Hum colleague ke shuffled folds bilkul nahi rakh sakte — shuffling wahi act hai jo future leak karta hai. Time-series CV mein, freely choose nahi kiya jaata; yeh derive hota hai ki tum kitne forward steps lete ho. Hum ek initial training window fix karte hain (yahan pehle din, koi bhi model fit karne ke liye zaroori) aur phir ek din ek baar aage badhte hain. dino aur ki window ke saath, yeh forward folds deta hai — effectively , aur data length se dictate hota hai, convenience se nahi choose kiya jaata.
Yeh step kyun? Yeh illegal shuffled splits ko ordered ones se replace karta hai aur stated se folds mein change explain karta hai: fold count
n − (initial window)se aata hai, free choice se nahi. - Forward-chaining folds banao. Hamesha past (blue cells) pe train karo, next block (orange cell) pe test karo:
- train → test
- train → test
- train → test
- train → test Yeh step kyun? Har training set apne test point se time mein pehle aata hai — koi future backward leak nahi karta.
- Test evaluations count karo. Points tested: → test points. Plain k-fold ke unlike, forward chaining har point ko test nahi karta: pehle do din () sirf earliest training window seed karte hain aur khud kabhi held out nahi hote. Isliye ordinary k-fold ki "har sample exactly ek baar tested" guarantee yahan deliberately give up ki jaati hai future peek karne se bachne ke exchange mein. Yeh step kyun? Recognize karna ki early samples train-only hain — yahi poora point hai — yeh woh cost hai jo time-series CV realism ke liye pay karta hai.
Forecast check: " predict karne ke liye pe train karne mein kya galat hai?" ka answer hai ki , ke relative future hai — real deployment mein tumhare paas abhi tak woh nahi hota, isliye score dishonestly inflated hai. Forward-chaining scheme exactly woh arrangement hai jo aisi time-travel impossible banata hai.
Verify: aur initial train window ke saath, tested points ✓. Har training set indices ka strict prefix hai, isliye max(train index) test index har fold mein ✓.
Example 8 — Cell H: exam twist, mean vs variance
Forecast: identical means — toh tie kya todega?
- Confirm karo ki means match karte hain. Yeh step kyun? Trap hai equal means assume karna ⇒ equal quality. Dono average pe tie karte hain, isliye mean akele decide nahi kar sakta.
- Har ek ka spread compute karo (fold-to-fold std). P ke liye, deviations , squares sum , , root . Q ke liye, deviations , squares sum , , root . Yeh step kyun? Folds mein variance consistency measure karta hai — ek safety-critical concern jo mean chhupaata hai.
- Decide karo. . Model P deploy karo: same expected F1 but data subsets mein bahut zyada steady. Model Q ka swing ( se tak) matlab hai ki kuch real flight populations pe woh badly fail kar sakta hai. Yeh step kyun? Aerospace mein, predictable mediocrity erratic brilliance se behtar hai — ek model jo kabhi excellent hota hai aur kabhi poor, woh safety liability hai.
Forecast check: tie-breaker jise tum name karne ko bole gaye the woh standard deviation hai — "hamesha do numbers" pair mein se doosra. Equal means ne tumhe average se aage dekh ke consistency dekhne par majboor kiya, jo is exam-style cell ka poora lesson hai.
Verify: dono means ✓; , , aur ✓.
Recall Kaun sa example kaun sa trap cover karta hai?
Unequal fold sizes ::: Example 2 (remainder pehle n % k folds mein spread hota hai).
Single-sample test folds ::: Example 3 (LOOCV, scores 0/1 hote hain).
Rare event / stratification ::: Example 5.
Time leakage / forward chaining ::: Example 7 (sirf points tested hote hain).
Same mean, std se choose karo ::: Example 8.
Parent: Cross-validation — k-fold · Hinglish: 5.6.05 Cross-validation — k-fold (Hinglish)