Измерение точности
Сейчас вы попрактикуетесь в использовании обучающего 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]))