Doğrulama kullanımı

Python ile Bir Kaggle Yarışmasını Kazanmak

Yauhen Babakhin

Kaggle Grandmaster

Veri sızıntısı

 

sızıntı logosu

 

  • Özelliklerde sızıntı – gerçek ortamda olmayacak verileri kullanmak

  • Doğrulama stratejisinde sızıntı – strateji gerçek duruma uymuyor

Python ile Bir Kaggle Yarışmasını Kazanmak

Zaman verisi

 

zaman verisi için hatalı doğrulama stratejisi

Python ile Bir Kaggle Yarışmasını Kazanmak

Zaman K-kat çapraz doğrulama

 

 

zaman k-kat çapraz doğrulama şeması

Python ile Bir Kaggle Yarışmasını Kazanmak

Zaman K-kat çapraz doğrulama

# TimeSeriesSplit'i içe aktarın
from sklearn.model_selection import TimeSeriesSplit

# Bir TimeSeriesSplit nesnesi oluşturun
time_kfold = TimeSeriesSplit(n_splits=5)
# Train'i tarihe göre sırala
train = train.sort_values('date')

# Her çapraz doğrulama bölmesini dolaşın
for train_index, test_index in time_kfold.split(train):
    cv_train, cv_test = train.iloc[train_index], train.iloc[test_index]
Python ile Bir Kaggle Yarışmasını Kazanmak

Doğrulama iş akışı

# Sonuçlar için liste
fold_metrics = []

for train_index, test_index in CV_STRATEGY.split(train): cv_train, cv_test = train.iloc[train_index], train.iloc[test_index]
# Modeli eğit model.fit(cv_train)
# Tahmin yap predictions = model.predict(cv_test)
# Metrik hesapla metric = evaluate(cv_test, predictions) fold_metrics.append(metric)
Python ile Bir Kaggle Yarışmasını Kazanmak

Model karşılaştırması

 

Kat sayısı Model A MSE Model B MSE
Kat 1 2.95 2.97
Kat 2 2.84 2.45
Kat 3 2.62 2.73
Kat 4 2.79 2.83
Python ile Bir Kaggle Yarışmasını Kazanmak

Genel doğrulama skoru

import numpy as np

# Katlar üzerinden basit ortalama
mean_score = np.mean(fold_metrics)
# Genel doğrulama skoru
overall_score_minimizing = np.mean(fold_metrics) + np.std(fold_metrics)
# Veya
overall_score_maximizing = np.mean(fold_metrics) - np.std(fold_metrics)
Python ile Bir Kaggle Yarışmasını Kazanmak

Model karşılaştırması

Kat sayısı Model A MSE Model B MSE
Kat 1 2.95 2.97
Kat 2 2.84 2.45
Kat 3 2.62 2.73
Kat 4 2.79 2.83
Ortalama 2.80 2.75
Genel 2.919 2.935
Python ile Bir Kaggle Yarışmasını Kazanmak

Hadi pratik yapalım!

Python ile Bir Kaggle Yarışmasını Kazanmak

Preparing Video For Download...