Sibil & Inhinyeriyang Pampasabog
Pagbubuo ng Krus-validation sa Supervised Learning: Pinakamahusay na Gawain at Praktikal na mga Halimbawa
Table of Contents
Cross-validation ay isang pamamaraan na ginagamit sa pinangangasiwaang pag-aaral upang suriin ang pagganap ng isang modelo. Nakatutulong ito sa pagtatantiya kung gaano kahusay na ang isang modelong pangkalahatang ginagawa sa hindi nakikitang datos, binabawasan ang panganib ng labis na pag-aaralan. Ang pag-iisyu ng epektibong mga gawaing cross-validation ay mahalaga sa pagtatayo ng maaasahang mga modelo sa pagkatuto ng makina.
Pag-unawa sa Cross-Validation
Cross-validation ay kinasasangkutan ng paghahati ng dataset sa multiple subsets, pagsasanay ng modelo sa ilan sa mga subset na ito, at pagsubok nito sa iba. Ang prosesong ito ay nagbibigay ng mas tumpak na tantiya ng pagganap ng modelo kumpara sa isang solong tren-test split.
Karaniwang Pamamaraan ng Pag-aalsa ng Krus-Validasyon
- K-Fold Cross-Validation: Ang datos ay hinahati sa 'k' na pantay na bahagi, nagsasanay sa mga bahagi ng k-1 at sumusubok sa natitirang panahon. Ang prosesong ito ay umuulit sa k.
- [[Pangkakakaiba] K-Fold: Katulad ng K-Fold ngunit pinananatili ang distribusyon ng klase sa ibayo ng mga fold, na kapaki-pakinabang sa hindi balanseng datasets.
- ⁇ -One-Out (LO): Ginagamit ang isang nag-iisang puntong datos bilang test set, na ang natitira ay bilang pagsasanay sa datos.
Pinakamabuting Gawain Para sa Pag - aayos
Upang matiyak ang epektibong cross-validation, isaalang-alang ang mga sumusunod na gawain:
- Gumamit ng mga halimbawang hindi pa naibabagay sa mga klase.
- Piliin ang bilang ng mga tiklop batay sa sukat ng dataset; ang mga karaniwang pagpipilian ay 5 o 10.
- Pinagsama ang cross-validation at hyperparameter configuration para sa mga resultang optimential.
- Tiyaking humimig ang impormasyon bago ka mahati upang mabawasan ang pagkiling.
Praktikal na Halimbawa sa Python
Pag-iisyu ng cross-validation sa Python na may scikit-learning ay prangka. Narito ang isang simpleng halimbawa:
Code snippet:
from sklearn.model_selection import cross_val_score
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
# Load dataset
data = load_iris()
X = data.data
y = data.target
# Initialize model
model = RandomForestClassifier()
# Perform 5-fold cross-validation
scores = cross_val_score(model, X, y, cv=5)
print("Cross-validation scores:", scores)
print("Average score:", scores.mean())