Genauigkeit messen
Jetzt übst du die Nutzung der Learning-API von XGBoost mit der integrierten Kreuzvalidierung. Wie Sergey im vorherigen Video erklärt hat, erzielt XGBoost seine vielgelobte Leistung und Effizienz, indem es eine eigene, optimierte Datenstruktur für Datensätze verwendet: die DMatrix.
In der vorherigen Übung wurden die Eingabedatensätze unterwegs in DMatrix-Daten umgewandelt. Wenn du jedoch das cv-Objekt von xgboost verwendest, musst du deine Daten zuerst explizit in eine DMatrix konvertieren. Genau das machst du hier, bevor du die Kreuzvalidierung auf churn_data anwendest.
Diese Übung ist Teil des Kurses
Extreme Gradient Boosting mit XGBoost
Anleitung zur Übung
- Erstelle mit
xgb.DMatrix()eineDMatrixnamenschurn_dmatrixauschurn_data. Die Features stehen inX, die Labels iny. - Führe eine 3-fache Kreuzvalidierung durch, indem du
xgb.cv()aufrufst.dtrainist deinechurn_dmatrix,paramsist dein Parameter-Dictionary,nfoldist die Anzahl der Kreuzvalidierungsfalten (3),num_boost_roundist die Anzahl der zu bauenden Bäume (5),metricsist die zu berechnende Kennzahl (hier"error", die wir in eine Genauigkeit umwandeln).
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Create arrays for the features and the target: X, y
X, y = churn_data.iloc[:,:-1], churn_data.iloc[:,-1]
# Create the DMatrix from X and y: churn_dmatrix
churn_dmatrix = ____(data=____, label=____)
# Create the parameter dictionary: params
params = {"objective":"reg:logistic", "max_depth":3}
# Perform cross-validation: cv_results
cv_results = ____(dtrain=____, params=____,
nfold=____, num_boost_round=____,
metrics="____", as_pandas=____, seed=123)
# Print cv_results
print(cv_results)
# Print the accuracy
print(((1-cv_results["test-error-mean"]).iloc[-1]))