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. 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 here

Dette 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.

Afledte ord

3