Modèle de base

Gagner une compétition Kaggle en Python

Yauhen Babakhin

Kaggle Grandmaster

Étape de modélisation

 

composants de l'étape de modélisation

Gagner une compétition Kaggle en Python

Étape de modélisation

 

modèle de base dans l'étape de modélisation

Gagner une compétition Kaggle en Python

Validation taxi New York

# Lire les données
taxi_train = pd.read_csv('taxi_train.csv')
taxi_test = pd.read_csv('taxi_test.csv')
from sklearn.model_selection import train_test_split

# Créer une validation locale
validation_train, validation_test = train_test_split(taxi_train,
                                                     test_size=0.3,
                                                     random_state=123)
Gagner une compétition Kaggle en Python

Modèle de base I

import numpy as np
# Attribuer la moyenne des tarifs à tous les exemples de test
taxi_test['fare_amount'] = np.mean(taxi_train.fare_amount)

# Écrire les prédictions dans un fichier taxi_test[['id','fare_amount']].to_csv('mean_sub.csv', index=False)
RMSE validation RMSE LB public Position LB public
9.986 9.409 1449 / 1500
Gagner une compétition Kaggle en Python

Modèle de base II

# Calculer la moyenne du tarif par groupe
naive_prediction_groups = taxi_train.groupby('passenger_count').fare_amount.mean()
# Prédire sur l'ensemble de test
taxi_test['fare_amount'] = taxi_test.passenger_count.map(naive_prediction_groups)

# Écrire les prédictions dans un fichier taxi_test[['id','fare_amount']].to_csv('mean_group_sub.csv', index=False)
RMSE validation RMSE LB public Position LB public
9.978 9.407 1411 / 1500
Gagner une compétition Kaggle en Python

Modèle de base III

# Ne conserver que les variables numériques
features = ['pickup_longitude', 'pickup_latitude',
            'dropoff_longitude', 'dropoff_latitude', 'passenger_count']
from sklearn.ensemble import GradientBoostingRegressor

# Entraîner un modèle Gradient Boosting
gb = GradientBoostingRegressor()
gb.fit(taxi_train[features], taxi_train.fare_amount)

# Prédire sur les données de test taxi_test['fare_amount'] = gb.predict(taxi_test[features])
Gagner une compétition Kaggle en Python

Modèle de base III

# Écrire les prédictions dans un fichier
taxi_test[['id','fare_amount']].to_csv('gb_sub.csv', index=False)
RMSE validation RMSE LB public Position LB public
5.996 4.595 1109 / 1500
Gagner une compétition Kaggle en Python

Résultats intermédiaires

 

Modèle RMSE validation RMSE LB public
Moyenne simple 9.986 9.409
Moyenne par groupe 9.978 9.407
Gradient Boosting 5.996 4.595
Gagner une compétition Kaggle en Python

Corrélation avec le classement public

 

Modèle RMSE validation RMSE LB public
Modèle A 3.500 3.800
Modèle B 3.300 4.100
Modèle C 3.200 3.900

 

Modèle RMSE validation RMSE LB public
Modèle A 3.400 3.900
Modèle B 3.100 3.400
Modèle C 2.900 3.300
Gagner une compétition Kaggle en Python

Passons à la pratique !

Gagner une compétition Kaggle en Python

Preparing Video For Download...