Gagner une compétition Kaggle en Python
Yauhen Babakhin
Kaggle Grandmaster


# 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)
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 |
# 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 |
# 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])
# É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 |
| 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 |
| 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