Pomiar dokładności
Teraz przećwiczysz korzystanie z API uczenia XGBoost wraz z wbudowanymi możliwościami walidacji krzyżowej. Jak omawiał Siergiej w poprzednim filmie, XGBoost osiąga wysoką wydajność dzięki własnej, zoptymalizowanej strukturze danych dla zbiorów danych – obiektowi DMatrix.
W poprzednim ćwiczeniu dane wejściowe były konwertowane do formatu DMatrix automatycznie. Jednak podczas korzystania z obiektu cv biblioteki xgboost musisz najpierw jawnie przekształcić dane do formatu DMatrix. Właśnie to zrobisz tutaj, zanim uruchomisz walidację krzyżową na zbiorze churn_data.
To ćwiczenie jest częścią kursu
Extreme Gradient Boosting with XGBoost
Instrukcje do ćwiczenia
- Utwórz obiekt
DMatrixo nazwiechurn_dmatrixze zbioruchurn_data, używając funkcjixgb.DMatrix(). Cechy są dostępne w zmiennejX, a etykiety w zmiennejy. - Wykonaj 3-krotną walidację krzyżową, wywołując funkcję
xgb.cv(). Parametrdtrainto twój obiektchurn_dmatrix,paramsto słownik parametrów,nfoldto liczba podziałów walidacji krzyżowej (3),num_boost_roundto liczba drzew do zbudowania (5), natomiastmetricsto metryka, którą chcesz obliczyć (w tym przypadku"error", którą następnie przekształcimy na wartość dokładności).
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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]))