Měření přesnosti
Teď si procvičíš práci s učícím API XGBoostu a jeho vestavěnými možnostmi křížové validace. Jak Sergey zmínil v předchozím videu, XGBoost dosahuje svého vynikajícího výkonu a efektivity díky vlastní optimalizované datové struktuře pro datasety zvané DMatrix.
V předchozím cvičení byly vstupní datasety převedeny na DMatrix automaticky za běhu. Pokud ale používáš objekt cv z knihovny xgboost, musíš data do formátu DMatrix převést explicitně předem. Přesně to teď uděláš, než spustíš křížovou validaci na datech churn_data.
Toto cvičení je součástí kurzu
Extreme Gradient Boosting with XGBoost
Pokyny k cvičení
- Vytvoř
DMatrixs názvemchurn_dmatrixz datchurn_datapomocíxgb.DMatrix(). Příznaky jsou dostupné vX, štítky vy. - Proveď 3-násobnou křížovou validaci voláním
xgb.cv().dtrainje tvůjchurn_dmatrix,paramsje slovník parametrů,nfoldje počet foldů křížové validace (3),num_boost_roundje počet stromů, které chceme sestavit (5), ametricsje metrika, kterou chceš vypočítat (použij"error", kterou následně převedeme na přesnost).
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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]))