Modelo base

Cómo ganar una competición de Kaggle con Python

Yauhen Babakhin

Kaggle Grandmaster

Fase de modelado

 

componentes de la fase de modelado

Cómo ganar una competición de Kaggle con Python

Fase de modelado

 

modelo base en la fase de modelado

Cómo ganar una competición de Kaggle con Python

Validación de taxis de Nueva York

# Lee los datos
taxi_train = pd.read_csv('taxi_train.csv')
taxi_test = pd.read_csv('taxi_test.csv')
from sklearn.model_selection import train_test_split

# Crea validación local
validation_train, validation_test = train_test_split(taxi_train,
                                                     test_size=0.3,
                                                     random_state=123)
Cómo ganar una competición de Kaggle con Python

Modelo base I

import numpy as np
# Asigna la tarifa media a todas las filas de test
taxi_test['fare_amount'] = np.mean(taxi_train.fare_amount)

# Escribe las predicciones al archivo taxi_test[['id','fare_amount']].to_csv('mean_sub.csv', index=False)
RMSE validación RMSE LB público Posición LB público
9.986 9.409 1449 / 1500
Cómo ganar una competición de Kaggle con Python

Modelo base II

# Calcula la tarifa media por grupo
naive_prediction_groups = taxi_train.groupby('passenger_count').fare_amount.mean()
# Predice en el conjunto de test
taxi_test['fare_amount'] = taxi_test.passenger_count.map(naive_prediction_groups)

# Escribe las predicciones al archivo taxi_test[['id','fare_amount']].to_csv('mean_group_sub.csv', index=False)
RMSE validación RMSE LB público Posición LB público
9.978 9.407 1411 / 1500
Cómo ganar una competición de Kaggle con Python

Modelo base III

# Selecciona solo variables numéricas
features = ['pickup_longitude', 'pickup_latitude',
            'dropoff_longitude', 'dropoff_latitude', 'passenger_count']
from sklearn.ensemble import GradientBoostingRegressor

# Entrena un modelo de Gradient Boosting
gb = GradientBoostingRegressor()
gb.fit(taxi_train[features], taxi_train.fare_amount)

# Predice en el conjunto de test taxi_test['fare_amount'] = gb.predict(taxi_test[features])
Cómo ganar una competición de Kaggle con Python

Modelo base III

# Escribe las predicciones al archivo
taxi_test[['id','fare_amount']].to_csv('gb_sub.csv', index=False)
RMSE validación RMSE LB público Posición LB público
5.996 4.595 1109 / 1500
Cómo ganar una competición de Kaggle con Python

Resultados intermedios

 

Modelo RMSE validación RMSE LB público
Media simple 9.986 9.409
Media por grupo 9.978 9.407
Gradient Boosting 5.996 4.595
Cómo ganar una competición de Kaggle con Python

Correlación con el leaderboard público

 

Modelo RMSE validación RMSE LB público
Modelo A 3.500 3.800
Modelo B 3.300 4.100
Modelo C 3.200 3.900

 

Modelo RMSE validación RMSE LB público
Modelo A 3.400 3.900
Modelo B 3.100 3.400
Modelo C 2.900 3.300
Cómo ganar una competición de Kaggle con Python

¡Vamos a practicar!

Cómo ganar una competición de Kaggle con Python

Preparing Video For Download...