Măsurarea acurateței
Acum vei exersa utilizarea API-ului de învățare al XGBoost prin capacitățile sale integrate de validare încrucișată. Așa cum a explicat Sergey în videoclipul anterior, XGBoost obține performanțele și eficiența pentru care este apreciat folosind o structură de date proprie, optimizată pentru seturi de date, numită DMatrix.
În exercițiul anterior, seturile de date de intrare au fost convertite în date de tip DMatrix automat. Însă atunci când folosești obiectul cv din xgboost, trebuie să îți convertești explicit datele într-un DMatrix înainte. Prin urmare, asta vei face aici, înainte de a rula validarea încrucișată pe churn_data.
Acest exercițiu face parte din cursul
Gradient Boosting Extrem cu XGBoost
Instrucțiuni pentru exercițiu
- Creează un
DMatrixnumitchurn_dmatrixdinchurn_datafolosindxgb.DMatrix(). Caracteristicile sunt disponibile înX, iar etichetele îny. - Efectuează o validare încrucișată în 3 pași apelând
xgb.cv().dtrainestechurn_dmatrix-ul tău,paramseste dicționarul de parametri,nfoldreprezintă numărul de pași ai validării încrucișate (3),num_boost_roundeste numărul de arbori pe care vrei să îi construiești (5), iarmetricseste metrica pe care vrei să o calculezi (aceasta va fi"error", pe care o vom converti în acuratețe).
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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]))