XGBoost: Fit/Predict
È il momento di creare il tuo primo modello XGBoost! Come Sergey ha mostrato nel video, puoi usare il paradigma .fit() / .predict() di scikit-learn che già conosci per costruire i tuoi modelli XGBoost, perché la libreria xgboost ha un'API compatibile con scikit-learn!
Qui lavorerai con dati di churn. Questo insieme di dati contiene dati immaginari di un'app di ride-sharing con i comportamenti degli utenti durante il primo mese di utilizzo dell'app in un insieme di città immaginarie, oltre a indicare se hanno usato il servizio 5 mesi dopo l'iscrizione. È stato precaricato per te in un DataFrame chiamato churn_data - esploralo nella Shell!
Il tuo obiettivo è usare i dati del primo mese per prevedere se gli utenti dell'app resteranno utenti del servizio al traguardo dei 5 mesi. Questo è un tipico setup per un problema di previsione del churn. Per farlo, dividerai i dati in training e test set, adatterai un piccolo modello xgboost sul training set e valuterai le sue prestazioni sul test set calcolandone l'accuracy.
pandas e numpy sono stati importati come pd e np, e train_test_split è stato importato da sklearn.model_selection. Inoltre, gli array per le feature e il target sono stati creati come X e y.
Questo esercizio fa parte del corso
Extreme Gradient Boosting con XGBoost
Istruzioni dell'esercizio
- Importa
xgboostcomexgb. - Crea training e test set in modo che il 20% dei dati sia usato per il test. Usa un
random_statepari a123. - Istanzia un
XGBoostClassifiercomexg_clusandoxgb.XGBClassifier(). Specifican_estimatorsa10stimatori e unobjectivedi'binary:logistic'. Non preoccuparti del significato per ora: imparerai questi parametri più avanti nel corso. - Adatta
xg_clal training set (X_train, y_train)usando il metodo.fit(). - Predici le etichette del test set (
X_test) usando il metodo.predict()e premi "Invia risposta" per stampare l'accuracy.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Import xgboost
____
# Create arrays for the features and the target: X, y
X, y = churn_data.iloc[:,:-1], churn_data.iloc[:,-1]
# Create the training and test sets
X_train, X_test, y_train, y_test= ____(____, ____, test_size=____, random_state=123)
# Instantiate the XGBClassifier: xg_cl
xg_cl = ____.____(____='____', ____=____, seed=123)
# Fit the classifier to the training set
____
# Predict the labels of the test set: preds
preds = ____
# Compute the accuracy: accuracy
accuracy = float(np.sum(preds==y_test))/y_test.shape[0]
print("accuracy: %f" % (accuracy))