Modello di base

Vincere una competizione Kaggle con Python

Yauhen Babakhin

Kaggle Grandmaster

Fase di modellazione

 

componenti della fase di modellazione

Vincere una competizione Kaggle con Python

Fase di modellazione

 

modello di base nella fase di modellazione

Vincere una competizione Kaggle con Python

Validazione taxi di New York City

# Read data
taxi_train = pd.read_csv('taxi_train.csv')
taxi_test = pd.read_csv('taxi_test.csv')
from sklearn.model_selection import train_test_split

# Create local validation
validation_train, validation_test = train_test_split(taxi_train,
                                                     test_size=0.3,
                                                     random_state=123)
Vincere una competizione Kaggle con Python

Modello di base I

import numpy as np
# Assign the mean fare amount to all the test observations
taxi_test['fare_amount'] = np.mean(taxi_train.fare_amount)

# Write predictions to the file taxi_test[['id','fare_amount']].to_csv('mean_sub.csv', index=False)
RMSE validazione RMSE LB pubblico Posizione LB pubblica
9.986 9.409 1449 / 1500
Vincere una competizione Kaggle con Python

Modello di base II

# Calculate the mean fare amount by group
naive_prediction_groups = taxi_train.groupby('passenger_count').fare_amount.mean()
# Make predictions on the test set
taxi_test['fare_amount'] = taxi_test.passenger_count.map(naive_prediction_groups)

# Write predictions to the file taxi_test[['id','fare_amount']].to_csv('mean_group_sub.csv', index=False)
RMSE validazione RMSE LB pubblico Posizione LB pubblica
9.978 9.407 1411 / 1500
Vincere una competizione Kaggle con Python

Modello di base III

# Select only numeric features
features = ['pickup_longitude', 'pickup_latitude',
            'dropoff_longitude', 'dropoff_latitude', 'passenger_count']
from sklearn.ensemble import GradientBoostingRegressor

# Train a Gradient Boosting model
gb = GradientBoostingRegressor()
gb.fit(taxi_train[features], taxi_train.fare_amount)

# Make predictions on the test data taxi_test['fare_amount'] = gb.predict(taxi_test[features])
Vincere una competizione Kaggle con Python

Modello di base III

# Write predictions to the file
taxi_test[['id','fare_amount']].to_csv('gb_sub.csv', index=False)
RMSE validazione RMSE LB pubblico Posizione LB pubblica
5.996 4.595 1109 / 1500
Vincere una competizione Kaggle con Python

Risultati intermedi

 

Modello RMSE validazione RMSE LB pubblico
Media semplice 9.986 9.409
Media per gruppo 9.978 9.407
Gradient Boosting 5.996 4.595
Vincere una competizione Kaggle con Python

Correlazione con la Public Leaderboard

 

Modello RMSE validazione RMSE LB pubblico
Modello A 3.500 3.800
Modello B 3.300 4.100
Modello C 3.200 3.900

 

Modello RMSE validazione RMSE LB pubblico
Modello A 3.400 3.900
Modello B 3.100 3.400
Modello C 2.900 3.300
Vincere una competizione Kaggle con Python

Passiamo alla pratica !

Vincere una competizione Kaggle con Python

Preparing Video For Download...