XGBoost: Fit/Predict
Zeit für dein erstes XGBoost-Modell! Wie Sergey dir im Video gezeigt hat, kannst du das dir bereits vertraute scikit-learn-Paradigma .fit() / .predict() verwenden, um XGBoost-Modelle zu bauen, da die Bibliothek xgboost eine scikit-learn-kompatible API hat!
Hier arbeitest du mit Churn-Daten. Dieser Datensatz enthält fiktive Daten aus einer Ride-Sharing-App mit dem Verhalten von Nutzerinnen und Nutzern im ersten Monat der App-Nutzung in einer Reihe fiktiver Städte sowie der Information, ob sie den Service 5 Monate nach der Anmeldung weiterhin genutzt haben. Er wurde bereits als DataFrame churn_data für dich geladen – erkunde ihn in der Shell!
Dein Ziel ist es, mithilfe der Daten aus dem ersten Monat vorherzusagen, ob die App-Nutzerinnen und -Nutzer nach 5 Monaten noch dabei sind. Das ist ein typisches Setup für ein Churn-Prediction-Problem. Dafür teilst du die Daten in Trainings- und Test-Sets, passt ein kleines xgboost-Modell auf dem Training-Set an und bewertest seine Leistung auf dem Test-Set, indem du die Genauigkeit berechnest.
pandas und numpy wurden als pd und np importiert, und train_test_split wurde aus sklearn.model_selection importiert. Zusätzlich wurden die Arrays für Features und Zielvariable als X und y erstellt.
Diese Übung ist Teil des Kurses
Extreme Gradient Boosting mit XGBoost
Anleitung zur Übung
- Importiere
xgboostalsxgb. - Erstelle Trainings- und Test-Sets, sodass 20 % der Daten für das Testen verwendet werden. Nutze einen
random_statevon123. - Instanziiere einen
XGBoostClassifieralsxg_clmitxgb.XGBClassifier(). Gibn_estimatorsmit10Schätzern und einobjectivevon'binary:logistic'an. Mach dir darüber noch keine Gedanken – du lernst diese Parameter später im Kurs kennen. - Passe
xg_clmit der Methode.fit()an das Training-Set (X_train, y_train)an. - Sage die Labels des Test-Sets (
X_test) mit der Methode.predict()voraus und klicke auf "Antwort senden", um die Genauigkeit auszugeben.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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))