IniziaInizia gratis

Misurare l'accuratezza

Ora metterai in pratica l'API di apprendimento di XGBoost usando le sue funzionalità di cross-validation integrate. Come Sergey ha spiegato nel video precedente, XGBoost ottiene le sue elevate prestazioni ed efficienza grazie a una struttura dati ottimizzata per gli insiemi di dati chiamata DMatrix.

Nell'esercizio precedente, gli insiemi di dati di input sono stati convertiti “al volo” in dati DMatrix, ma quando usi l'oggetto cv di xgboost, devi prima convertire esplicitamente i tuoi dati in una DMatrix. È proprio quello che farai qui prima di eseguire la cross-validation su churn_data.

Questo esercizio fa parte del corso

Extreme Gradient Boosting con XGBoost

Visualizza il corso

Istruzioni dell'esercizio

  • Crea una DMatrix chiamata churn_dmatrix a partire da churn_data usando xgb.DMatrix(). Le feature sono disponibili in X e le etichette in y.
  • Esegui una cross-validation a 3 fold chiamando xgb.cv(). dtrain è la tua churn_dmatrix, params è il tuo dizionario di parametri, nfold è il numero di fold di cross-validation (3), num_boost_round è il numero di alberi che vogliamo costruire (5), metrics è la metrica che vuoi calcolare (sarà "error", che convertiremo in accuratezza).

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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]))
Modifica ed esegui il codice