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
<Kurs>Extreme Gradient Boosting mit XGBoost</Kurs>Übungsanweisungen
- 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 praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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]))