Ang Cross-validation ay isang kritikal na pamamaraan na ginagamit upang suriin ang kung gaano kahusay ang gaganap ng isang modelo sa bagong data. Ang pangunahing layunin ay upang masuri ang pagganap ng isang modelo sa isang paraan na nagpapaliit ng mga isyu tulad ng overfitting (kung saan ang modelo ay masyadong natututo mula sa data ng pagsasanay at hindi maganda ang pagganap sa hindi nakikitang data) at underfitting (kung saan ang modelo ay masyadong simplistic upang makuha ang mga pattern sa data).
Kasama sa konsepto ang paghahati sa available na data sa maraming subset, karaniwang dalawang pangunahing bahagi: ang set ng pagsasanay at ang set ng pagpapatunay (na kung minsan ay tinatawag ding set ng pagsubok).
Ang isang karaniwang pamamaraan ay k-fold cross-validation:
-
Ang dataset ay nahahati sa 'k' na mga subset (o fold) na humigit-kumulang pantay na laki.
-
Ang modelo ay sinanay ng 'k' na beses, sa bawat oras na gumagamit ng ibang fold bilang validation set at ang natitirang folds bilang training set.
-
Halimbawa, sa 5-fold na cross-validation, ang data ay nahahati sa limang subset. Ang modelo ay sinanay ng limang beses, sa bawat pagkakataon ay gumagamit ng ibang isa sa limang subset bilang validation set at ang apat pa bilang training set.
-
Ang mga sukatan ng pagganap (tulad ng katumpakan, katumpakan, paggunita, atbp.) ay na-average sa mga 'k' na pag-ulit na ito upang makakuha ng panghuling pagtatantya ng pagganap.
Kasama sa iba pang karaniwang mga diskarte
Leave-One-Out Cross-Validation (LOOCV)
-
Ang bawat data point ay nagsisilbing validation set, at ang modelo ay sinanay sa natitirang bahagi ng data.
-
Ang paraang ito ay computationally mahal para sa malalaking dataset ngunit maaaring maging tumpak dahil ginagamit nito ang halos lahat ng data para sa pagsasanay.
Stratified Cross-Validation
- Tinitiyak na ang bawat fold ay kumakatawan sa buong dataset. Pinapanatili nito ang pamamahagi ng klase sa bawat fold, na nakakatulong para sa mga hindi balanseng dataset.
Mahalaga ang cross-validation dahil nagbibigay ito ng mas maaasahang pagtatantya ng performance ng isang modelo sa hindi nakikitang data kumpara sa isang split-train-test. Nakakatulong ito sa pagtukoy ng mga isyu gaya ng overfitting o underfitting sa pamamagitan ng pagbibigay ng mas matatag na pagtatantya kung paano magiging generalize ang modelo sa bagong data.
Sa pamamagitan ng paggamit ng cross-validation, ang mga machine learning practitioner ay makakagawa ng mas mahuhusay na desisyon tungkol sa pagpili ng modelo, hyperparameter tuning, at pagtatasa sa generalization performance ng isang modelo sa hindi nakikitang data.