Användning av validering

Vinna en Kaggle-tävling i Python

Yauhen Babakhin

Kaggle Grandmaster

Dataläckage

 

logotyp för dataläckage

 

  • Läckage i särdrag – data som inte är tillgänglig i den verkliga situationen används

  • Läckage i valideringsstrategi – valideringsstrategin skiljer sig från det verkliga scenariot

Vinna en Kaggle-tävling i Python

Tidsdata

 

felaktig valideringsstrategi för tidsdata

Vinna en Kaggle-tävling i Python

Tids-K-faldig korsvalidering

 

 

schema för tids-k-faldig korsvalidering

Vinna en Kaggle-tävling i Python

Tids-K-faldig korsvalidering

# Import TimeSeriesSplit
from sklearn.model_selection import TimeSeriesSplit

# Create a TimeSeriesSplit object
time_kfold = TimeSeriesSplit(n_splits=5)
# Sort train by date
train = train.sort_values('date')

# Loop through each cross-validation split
for train_index, test_index in time_kfold.split(train):
    cv_train, cv_test = train.iloc[train_index], train.iloc[test_index]
Vinna en Kaggle-tävling i Python

Valideringspipeline

# List for the results
fold_metrics = []

for train_index, test_index in CV_STRATEGY.split(train): cv_train, cv_test = train.iloc[train_index], train.iloc[test_index]
# Train a model model.fit(cv_train)
# Make predictions predictions = model.predict(cv_test)
# Calculate the metric metric = evaluate(cv_test, predictions) fold_metrics.append(metric)
Vinna en Kaggle-tävling i Python

Modelljämförelse

 

Foldnummer Modell A MSE Modell B MSE
Fold 1 2,95 2,97
Fold 2 2,84 2,45
Fold 3 2,62 2,73
Fold 4 2,79 2,83
Vinna en Kaggle-tävling i Python

Samlat valideringsresultat

import numpy as np

# Simple mean over the folds
mean_score = np.mean(fold_metrics)
# Overall validation score
overall_score_minimizing = np.mean(fold_metrics) + np.std(fold_metrics)
# Or
overall_score_maximizing = np.mean(fold_metrics) - np.std(fold_metrics)
Vinna en Kaggle-tävling i Python

Modelljämförelse

Foldnummer Modell A MSE Modell B MSE
Fold 1 2,95 2,97
Fold 2 2,84 2,45
Fold 3 2,62 2,73
Fold 4 2,79 2,83
Medel 2,80 2,75
Samlat 2,919 2,935
Vinna en Kaggle-tävling i Python

Nu kör vi en övning!

Vinna en Kaggle-tävling i Python

Preparing Video For Download...