XGBoost: навчання та передбачення
Час створити вашу першу модель XGBoost! Як Сергій показав у відео, ви можете користуватися знайомою вам парадигмою scikit-learn .fit() / .predict() для побудови моделей XGBoost, адже бібліотека xgboost має сумісний із scikit-learn API!
Тут ви працюватимете з даними про відтік користувачів (churn). У цьому наборі даних зібрано вигадані дані з сервісу спільних поїздок: поведінку користувачів протягом першого місяця користування застосунком у наборі вигаданих міст, а також інформацію, чи користувалися вони сервісом через 5 місяців після реєстрації. Його вже завантажено для вас у датафрейм churn_data — дослідіть його в оболонці (Shell)!
Ваша мета — використати дані за перший місяць, щоб передбачити, чи залишаться користувачі сервісу активними через 5 місяців. Це типовий підхід до задачі прогнозування відтоку. Для цього ви розібʼєте дані на тренувальну та тестову вибірки, навчите невелику модель xgboost на тренувальній вибірці та оціните її якість на тестовій, обчисливши точність (accuracy).
pandas і numpy імпортовано як pd та np, а train_test_split імпортовано з sklearn.model_selection. Крім того, масиви ознак і цільової змінної вже створено як X і y.
Ця вправа є частиною курсу
Екстремальний градієнтний бустинг з XGBoost
Інструкції до вправи
- Імпортуйте
xgboostякxgb. - Створіть тренувальну та тестову вибірки так, щоб 20% даних використовувалося для тестування. Використайте
random_stateзі значенням123. - Створіть
XGBoostClassifierякxg_cl, використовуючиxgb.XGBClassifier(). Вкажітьn_estimatorsрівним10таobjective—'binary:logistic'. Поки що не переймайтеся значенням цих параметрів — ви розберете їх пізніше в цьому курсі. - Навчіть
xg_clна тренувальній вибірці (X_train, y_train), застосувавши метод.fit(). - Передбачте мітки тестової вибірки (
X_test) за допомогою методу.predict()і натисніть "Submit Answer", щоб вивести точність.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Import xgboost
____
# Create arrays for the features and the target: X, y
X, y = churn_data.iloc[:,:-1], churn_data.iloc[:,-1]
# Create the training and test sets
X_train, X_test, y_train, y_test= ____(____, ____, test_size=____, random_state=123)
# Instantiate the XGBClassifier: xg_cl
xg_cl = ____.____(____='____', ____=____, seed=123)
# Fit the classifier to the training set
____
# Predict the labels of the test set: preds
preds = ____
# Compute the accuracy: accuracy
accuracy = float(np.sum(preds==y_test))/y_test.shape[0]
print("accuracy: %f" % (accuracy))