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

Лінійні базові алгоритми

Тепер, коли ви використали дерева як базові моделі в XGBoost, спробуймо інший тип базової моделі — лінійний алгоритм. Ця модель, хоч і рідше використовується в XGBoost, дає змогу будувати регуляризовану лінійну регресію за допомогою потужного навчального API XGBoost. Проте через її нечасте використання потрібно застосовувати власні функції XGBoost, несумісні зі scikit-learn, щоб зібрати модель, зокрема xgb.train().

Щоб це зробити, вам слід створити словник параметрів, який описує тип бустера, що ви хочете застосувати (так само, як ви створювали словник у Розділі 1, коли використовували xgb.cv()). Пара ключ-значення, яка визначає тип бустера (базової моделі), потрібна така: "booster":"gblinear".

Після створення моделі ви можете використовувати методи .train() і .predict() так само, як робили це раніше.

Тут дані вже поділено на тренувальну й тестову вибірки, тож можна відразу переходити до створення об'єктів DMatrix, потрібних для навчального API XGBoost.

Ця вправа є частиною курсу

Екстремальний градієнтний бустинг з XGBoost

Переглянути курс

Інструкції до вправи

  • Створіть два об'єкти DMatrix: DM_train для тренувальної вибірки (X_train і y_train) та DM_test (X_test і y_test) для тестової вибірки.
  • Створіть словник параметрів, який визначає тип "booster", що ви використаєте ("gblinear"), а також "objective", який потрібно мінімізувати ("reg:squarederror").
  • Навчіть модель за допомогою xgb.train(). Потрібно вказати аргументи для таких параметрів: params, dtrain і num_boost_round. Використайте 5 раундів бустингу.
  • Зпрогнозуйте мітки для тестової вибірки за допомогою xg_reg.predict(), передавши DM_test. Присвойте до preds.
  • Натисніть "Submit Answer", щоб переглянути RMSE!

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Convert the training and testing sets into DMatrixes: DM_train, DM_test
DM_train = ____
DM_test =  ____

# Create the parameter dictionary: params
params = {"____":"____", "____":"____"}

# Train the model: xg_reg
xg_reg = ____.____(____ = ____, ____=____, ____=____)

# Predict the labels of the test set: preds
preds = ____

# Compute and print the RMSE
rmse = np.sqrt(mean_squared_error(y_test,preds))
print("RMSE: %f" % (rmse))
Редагувати та запускати код