Aan de slagGa gratis aan de slag

XGBoost: fit/predict

Tijd om je eerste XGBoost-model te maken! Zoals Sergey in de video liet zien, kun je het scikit-learn-paradigma .fit() / .predict() gebruiken dat je al kent om je XGBoost-modellen te bouwen, omdat de xgboost-bibliotheek een scikit-learn-compatibele API heeft!

Hier werk je met churn-data. Deze gegevensset bevat denkbeeldige data van een ritdeel-app met gebruikersgedrag tijdens hun eerste maand app-gebruik in een set denkbeeldige steden, plus of ze de dienst 5 maanden na aanmelding nog gebruikten. De gegevens zijn al voor je ingeladen in een DataFrame met de naam churn_data – verken het in de Shell!

Je doel is om op basis van de data van de eerste maand te voorspellen of gebruikers 5 maanden later nog steeds van de dienst gebruikmaken. Dit is een typische opzet voor een churn-predictieprobleem. Hiervoor splits je de data in trainings- en testsets, train je een klein xgboost-model op de trainingsset en evalueer je de prestaties op de testset door de nauwkeurigheid te berekenen.

pandas en numpy zijn geïmporteerd als pd en np, en train_test_split is geïmporteerd uit sklearn.model_selection. Daarnaast zijn de arrays voor de features en de target aangemaakt als X en y.

Deze oefening maakt deel uit van de cursus

Extreme Gradient Boosting met XGBoost

Cursus bekijken

Oefeninstructies

  • Importeer xgboost als xgb.
  • Maak trainings- en testsets waarbij 20% van de data wordt gebruikt voor testen. Gebruik een random_state van 123.
  • Instantieer een XGBoostClassifier als xg_cl met xgb.XGBClassifier(). Specificeer n_estimators als 10 trees en een objective van 'binary:logistic'. Maak je nog geen zorgen over wat dit precies betekent; later in de cursus leer je meer over deze parameters.
  • Train xg_cl op de trainingsset (X_train, y_train) met de methode .fit().
  • Voorspel de labels van de testset (X_test) met de methode .predict() en klik op 'Antwoord verzenden' om de nauwkeurigheid te printen.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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))
Code bewerken en uitvoeren