Visual walkthrough — Cross-validation — k-fold
5.6.5 · D2· Coding › Machine Learning (Aerospace Applications) › Cross-validation — k-fold
Pehli line se pehle, teen simple words jinpe hum rely karenge:
- Data point: tumhari table ki ek row — ek flight, uske sensor readings aur uska jaana-pehchaana answer (failed / did not fail).
- Model: ek machine jo kuch data points dekhne ke baad, un data points ka answer guess karne ki koshish karti hai jo usne kabhi nahi dekhe.
- Score: ek akela number jo kehta hai "unseen points par guess kitni baar sahi tha" (zyada = better).
Bas yahi vocabulary hai. Chalo draw karte hain.
Step 1 — Apna saara data ek row mein rakhho
KYA. Har data point ko ek coloured tile samjho. Hamare paas tiles hain — yaani flight records. Inhe left se right line up karo.
KYUN. Kuch bhi split karne se pehle, hume pure cheez ko ek object ki tarah dekhna hoga. Tiles haara raw material hai; baaki sab bas yeh choose karna hai ki kaun si tiles chhupani hain.
PICTURE. Neeche ek single strip dekho. Har tile ek flight hai. Abhi kuch bhi hidden nahi hai — model sab par train karta aur test karne ke liye kuch nahi bachta honestly. Yahi woh problem hai jo hum abhi fix karne wale hain.

Step 2 — Strip ko equal blocks mein kato
KYA. Strip ko side-by-side blocks mein slice karo same length ke. Har block ko fold kehte hain. Hum choose karte hain, toh paanch blocks, har ek mein tiles.
KYUN. Hume unseen data ke kai alag pools chahiye, ek nahi. Agar hum hamesha wohi 200 tiles chhupate, toh ek lucky (ya unlucky) block humein bewakoof bana sakta. blocks mein kaatne se hume alag "unseen" pools milte hain baad mein try karne ke liye — ek at a time.
PICTURE. Strip ab 5 coloured blocks mein hai se tak label kiye. Yeh overlap nahi karte (koi tile do blocks mein nahi hai) aur milke sab kuch cover karte hain.

Step 3 — Round 1: pehla block chhupao, baaki par train karo
KYA. Block lo aur use test set ki tarah side mein rakh do — model ko yeh dekhna mana hai. Baaki chaar blocks () training set ban jaate hain. Ek model train karo, use kaho, sirf un chaar blocks par.
KYUN. Model ko un tiles par score karna chahiye jo usne kabhi nahi dekhe, warna score ek memory test hai, generalization test nahi. chhupana guarantee karta hai ki ko uski koi memory nahi.
PICTURE. Neeche, block 1 glow kar raha hai (hidden test block) aur blocks 2–5 ek "training" region mein dim ho gaye hain with an arrow feeding model box ko.

Step 4 — Round 1 grade karo, phir rotate karo
KYA. se kaho ki hidden block ke answers guess kare, true answers se compare karo, aur ek number record karo. Phir rotate karo: ab ko chhupao, fresh ko baaki chaar blocks par train karo, grade karo → . Tab tak rotate karte raho jab tak har block ki turn na aa jaye hidden hone ki.
KYUN. Ek rotation ek opinion deta hai. Rotate karne ka matlab hai ki har tile eventually exactly ek baar unseen test tile ban jaati hai, toh data ka koi region ungraded nahi rehta aur koi do baar grade nahi hota. Yahi even coverage k-fold ka poora point hai.
PICTURE. Paanch rows, ek per round. Har row mein ek alag block lit hai (test block) jabki baaki training region hai. Top se bottom padho: lit block left→right march karta hai, toh "test" spotlight poore dataset ko sweep karta hai.

Is step ke end mein paanch numbers hain, jaise .
Step 5 — Paanch numbers ko ek mein compress karo: mean
KYA. Paanch scores add karo aur paanch se divide karo. Woh average hi k-fold cross-validation estimate hai.
KYUN. Har round ka score thoda wobble karta hai kyunki uska particular hidden block thoda easy ya hard tha. Average lene se yeh wobbles cancel ho jaate hain: high rounds upar kheenchte hain, low rounds neeche, aur middle kisi bhi single round se zyada steady guess hai true performance ka. Yeh law of large numbers hamare kaam aa raha hai.
PICTURE. Paanch dots heights – par, aur unke mean par ek bold horizontal line. Line ke around dashed band woh spread hai jise hum aage measure karte hain.

Step 6 — Wobble measure karo: standard deviation
KYA. Measure karo ki paanch dots apni mean line se average kitni door hain. Woh distance standard deviation hai.
KYUN. ka mean chhupa leta hai ki rounds agree kiye ya nahi. (dots line ke paas) matlab model consistent hai. (dots scattered) warn karta hai ki model fragile hai — uska score wildly swing karta hai depending on which tiles usne dekhe.
PICTURE. Wahi paanch dots jaise pehle, ab har dot se mean line tak ek vertical arrow jo uski gap mark karta hai. Spread band ki half-width hai.

Final report: .
Step 7 — Edge cases: extreme mein kaisa dikhta hai
KYA. ke do degenerate choices jo balance tod dete hain.
KYUN / PICTURE. Neeche do panels dekho.
- (left panel), sabse chhoti legal value. Sirf do blocks, toh har model sirf aadhe data par train karta hai. Aadha dataset ek weak apprentice hai, toh scores pessimistically low aate hain — high bias. Lekin har test block bada hai (500 tiles), toh individual scores stable rehte hain — low variance.
- (right panel), ek tile per block — yeh hai LOOCV. Har model tiles par train karta hai (almost poora set → low bias), lekin har test block ek tile hai, toh har score ya toh "right" ya "wrong" hai — extremely noisy (high variance), aur saare training sets almost completely overlap karte hain, toh scores correlated hain. Tum poore models bhi train karte ho — brutally slow.

Ek-picture summary
Poori procedure ek single canvas par: strip 5 folds mein cut hai; paanch rows lit test block ko dataset mein rotate karti hain; har row ek score deti hai; scores mean spread mein collapse ho jaate hain.

Recall Feynman retelling — ise story ki tarah bolo
Main apni saari flights ek lambi row mein rakhta hoon. Row ko 5 equal blocks mein kaatta hoon. Round one: main block 1 ko haath se dhak leta hoon, model ko baaki chaar padhne deta hoon, phir block 1 uncover karta hoon aur dekhta hoon ki kitni flights sahi guess ki — yeh ek score hai. Haath block 2 par slide karta hoon aur fresh model ke saath sab dobara karta hoon. Paanch rounds, mera haath poori row mein sweep karta hai, toh har flight exactly ek baar cover hoti hai. Ab mere paas paanch scores hain. Main inhe average karta hoon — woh steady number mera real estimate hai ki model kitna achha hai. Main yeh bhi check karta hoon ki paanch kitne spread out the: ek saath tight matlab trustworthy, scattered matlab model jumpy hai. Agar bahut kam blocks use karun toh model bahut kam se seekhta hai aur worse dikhta hai jitna hai; agar utne blocks use karun jitni flights hain toh main forever train karta hoon aur scores noisy ho jaate hain. Paanch ya das blocks comfortable middle hai.
Recall Quick self-test
Folds disjoint kyun hone chahiye? ::: Taaki koi tile train aur test dono mein na ho — woh answer leak karega aur score inflate karega. scores average karne se kya milta hai? ::: Round-to-round wobble cancel hota hai, kisi bhi single split se zyada steady estimate milta hai. ki legal range kya hai? ::: — kam se kam do folds (warna training set empty), zyada se zyada ek tile per fold (LOOCV). Jab , se evenly divide nahi hota toh kya hota hai? ::: Leftover tiles ek per fold spread karo, toh kuch folds mein ek extra tile hoti hai (ceil vs floor). Folding se pehle shuffle nahi kab karte? ::: Jab data time-ordered ho aur future forecast karna ho — time-series CV use karo.
Related build-ups: 5.6.01-Train-test-split-validation-set, 5.6.02-Holdout-method, 5.6.07-Nested-cross-validation, 7.2.03-Hyperparameter-tuning-grid-search.