Utilisation de la validation

Remporter une compétition Kaggle en Python

Yauhen Babakhin

Kaggle Grandmaster

Fuite de données

 

logo de fuite de données

 

  • Fuite dans les caractéristiques – utilisation de données non disponibles en situation réelle

  • Fuite dans la stratégie de validation – stratégie différente de la réalité

Remporter une compétition Kaggle en Python

Données temporelles

 

stratégie de validation incorrecte pour des données temporelles

Remporter une compétition Kaggle en Python

Validation croisée K-fold temporelle

 

 

schéma de validation croisée K-fold temporelle

Remporter une compétition Kaggle en Python

Validation croisée K-fold temporelle

# Importer TimeSeriesSplit
from sklearn.model_selection import TimeSeriesSplit

# Créer un objet TimeSeriesSplit
time_kfold = TimeSeriesSplit(n_splits=5)
# Trier train par date
train = train.sort_values('date')

# Parcourir chaque division de validation croisée
for train_index, test_index in time_kfold.split(train):
    cv_train, cv_test = train.iloc[train_index], train.iloc[test_index]
Remporter une compétition Kaggle en Python

Pipeline de validation

# Liste pour les résultats
fold_metrics = []

for train_index, test_index in CV_STRATEGY.split(train): cv_train, cv_test = train.iloc[train_index], train.iloc[test_index]
# Entraîner un modèle model.fit(cv_train)
# Faire des prédictions predictions = model.predict(cv_test)
# Calculer la mesure metric = evaluate(cv_test, predictions) fold_metrics.append(metric)
Remporter une compétition Kaggle en Python

Comparaison de modèles

 

Numéro de pli MSE Modèle A MSE Modèle B
Pli 1 2.95 2.97
Pli 2 2.84 2.45
Pli 3 2.62 2.73
Pli 4 2.79 2.83
Remporter une compétition Kaggle en Python

Pointage global de validation

import numpy as np

# Moyenne simple sur les plis
mean_score = np.mean(fold_metrics)
# Pointage global de validation
overall_score_minimizing = np.mean(fold_metrics) + np.std(fold_metrics)
# Ou
overall_score_maximizing = np.mean(fold_metrics) - np.std(fold_metrics)
Remporter une compétition Kaggle en Python

Comparaison de modèles

Numéro de pli MSE Modèle A MSE Modèle B
Pli 1 2.95 2.97
Pli 2 2.84 2.45
Pli 3 2.62 2.73
Pli 4 2.79 2.83
Moyenne 2.80 2.75
Global 2.919 2.935
Remporter une compétition Kaggle en Python

Passons à la pratique !

Remporter une compétition Kaggle en Python

Preparing Video For Download...