ПочатиПочніть безкоштовно

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))
Редагувати та запускати код