НачатьНачать бесплатно

XGBoost: обучение и предсказание

Пришло время создать вашу первую модель XGBoost! Как показал Сергей в видео, для построения моделей XGBoost можно использовать уже знакомую вам парадигму .fit() / .predict() из scikit-learn — библиотека xgboost совместима с API scikit-learn!

В этом упражнении вы будете работать с данными об оттоке клиентов. Набор данных содержит вымышленную информацию из приложения для поездок: поведение пользователей в течение первого месяца использования приложения в ряде вымышленных городов, а также сведения о том, пользовались ли они сервисом через 5 месяцев после регистрации. Данные уже загружены в DataFrame с именем churn_data — изучите их в оболочке Shell!

Ваша цель — используя данные за первый месяц, предсказать, останутся ли пользователи приложения активными клиентами на отметке в 5 месяцев. Это типичная постановка задачи прогнозирования оттока. Для этого вы разделите данные на обучающую и тестовую выборки, обучите небольшую модель xgboost на обучающей выборке и оцените её качество на тестовой, вычислив точность.

Библиотеки 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() и нажмите Отправить ответ, чтобы вывести точность.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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