Mäta noggrannhet
Nu ska du öva på att använda XGBoosts inlärnings-API med dess inbyggda korsvalideringsfunktioner. Som Sergey tog upp i föregående video uppnår XGBoost sina välkända prestanda- och effektivitetsvinster genom att använda en egen optimerad datastruktur för datamängder – en DMatrix.
I föregående övning konverterades indata till DMatrix-format automatiskt. När du däremot använder xgboost-objektet cv behöver du först explicit konvertera dina data till en DMatrix. Det är precis det du gör här, innan du kör korsvalidering på churn_data.
Den här övningen är en del av kursen
Extreme Gradient Boosting med XGBoost
Övningsinstruktioner
- Skapa en
DMatrixkalladchurn_dmatrixfrånchurn_datamed hjälp avxgb.DMatrix(). Särdragen finns iXoch etiketterna iy. - Utför 3-faldig korsvalidering genom att anropa
xgb.cv().dtrainär dinchurn_dmatrix,paramsär din parametersordbok,nfoldär antalet korsvalideringsveck (3),num_boost_roundär antalet träd du vill bygga (5) ochmetricsär det mått du vill beräkna (här"error", som vi sedan konverterar till en noggrannhetsscore).
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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]))