Utilizarea validării

Câștigarea unei competiții Kaggle în Python

Yauhen Babakhin

Kaggle Grandmaster

Scurgerea datelor

 

logo scurgere de date

 

  • Scurgere în caracteristici – utilizarea unor date care nu vor fi disponibile în producție

  • Scurgere în strategia de validare – strategia de validare diferă de situația reală

Câștigarea unei competiții Kaggle în Python

Date temporale

 

strategie de validare incorectă pentru date temporale

Câștigarea unei competiții Kaggle în Python

Validare încrucișată Time K-fold

 

 

schemă de validare încrucișată time k-fold

Câștigarea unei competiții Kaggle în Python

Validare încrucișată Time K-fold

# 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]
Câștigarea unei competiții Kaggle în Python

Pipeline de validare

# 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)
Câștigarea unei competiții Kaggle în Python

Compararea modelelor

 

Număr fold MSE Model A MSE Model B
Fold 1 2.95 2.97
Fold 2 2.84 2.45
Fold 3 2.62 2.73
Fold 4 2.79 2.83
Câștigarea unei competiții Kaggle în Python

Scor global de validare

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)
Câștigarea unei competiții Kaggle în Python

Compararea modelelor

Număr fold MSE Model A MSE Model B
Fold 1 2.95 2.97
Fold 2 2.84 2.45
Fold 3 2.62 2.73
Fold 4 2.79 2.83
Medie 2.80 2.75
Global 2.919 2.935
Câștigarea unei competiții Kaggle în Python

Să exersăm!

Câștigarea unei competiții Kaggle în Python

Preparing Video For Download...