Вимірювання точності
Тепер ви попрактикуєтеся використовувати навчальний API XGBoost через його вбудовані можливості крос-валідації. Як Сергій пояснював у попередньому відео, XGBoost отримує свою високу продуктивність і ефективність завдяки власній оптимізованій структурі даних для наборів даних — DMatrix.
У попередній вправі вхідні набори даних перетворювалися на DMatrix «на льоту», але коли ви використовуєте об'єкт cv з пакета xgboost, спершу потрібно явно перетворити дані на DMatrix. Саме це ви й зробите тут, перш ніж запускати крос-валідацію на churn_data.
Ця вправа є частиною курсу
Екстремальний градієнтний бустинг з XGBoost
Інструкції до вправи
- Створіть
DMatrixпід назвоюchurn_dmatrixзchurn_data, використовуючиxgb.DMatrix(). Ознаки зберігаються вX, а мітки — вy. - Виконайте 3-кратну крос-валідацію, викликавши
xgb.cv().dtrain— це вашchurn_dmatrix,params— ваш словник параметрів,nfold— кількість складань крос-валідації (3),num_boost_round— кількість дерев, які ми хочемо побудувати (5),metrics— метрика, яку потрібно обчислити (це буде"error", яку ми перетворимо на точність).
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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]))