k-fold cross-validation
K-fold cross-validation er en valideringsteknik, hvor datasættet opdeles i k lige store dele, og modellen trænes og evalueres k gange, hver gang med en anden del som testdata og resten som træningsdata.
Kort fortalt
Kort fortalt: Du deler dine data i k bunker, træner modellen på k-1 bunker og tester på den sidste, og gentager det k gange, så alle bunker har været testdata én gang.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
En valideringsmetode, hvor datasættet opdeles i k underdatasæt (folds). Modellen trænes på k-1 folds og testes på den resterende fold. Processen gentages k gange, så hver fold bruges som testdata én gang. Resultatet er gennemsnittet af de k evalueringsmetrikker.
- I projektet brugte vi 5-fold cross-validation for at vurdere modellens generaliseringsevne.
Hvornår bruges det
Bruges især til at få et mere pålideligt estimat af modelperformance, især når datasættet er lille. Vælg typisk k=5 eller k=10. Kan være ressourcekrævende for store modeller.
Kodeeksempel
from sklearn.model_selection import KFold
import numpy as np
X = np.array([[1,2], [3,4], [5,6], [7,8]])
y = np.array([0,1,0,1])
kf = KFold(n_splits=2)
for train_index, test_index in kf.split(X):
X_train, X_test = X[train_index], X[test_index]
y_train, y_test = y[train_index], y[test_index]
# model training and evaluation hereDette eksempel viser, hvordan man opretter en 2-fold cross-validation split med scikit-learn.
Oprindelse
Udtrykket kommer fra statistik og machine learning, hvor 'k-fold' refererer til antallet af folder (folds) data opdeles i.