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

Бінарне передбачення

У попередній вправі ви використали функцію glm() для побудови моделі логістичної регресії поведінки донорів. Як і для багатьох методів машинного навчання в R, до об'єкта моделі можна застосувати функцію predict() для прогнозування майбутньої поведінки. Типово predict() повертає передбачення у вигляді логарифмів шансів (log odds), якщо не вказано type = "response". Цей аргумент перетворює логарифми шансів на ймовірності.

Оскільки модель логістичної регресії оцінює ймовірність результату, поріг, за яким ймовірність означає дію, визначаєте ви. Потрібно збалансувати крайнощі — надмірну обережність і надмірну агресивність. Наприклад, якщо звертатися лише до людей з ймовірністю пожертви 99% або більше, ви можете втратити багатьох із нижчими оціненими ймовірностями, які все ж таки зроблять пожертву. Такий баланс особливо важливо враховувати для сильно незбалансованих результатів, як у цьому наборі даних, де пожертви трапляються відносно рідко.

Набір даних donors і модель donation_model доступні для вашого використання.

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

Наглядове навчання в R: Класифікація

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

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

  • Використайте функцію predict() для оцінки ймовірності пожертви для кожної людини. Задайте аргумент type, щоб отримати ймовірності. Запишіть передбачення в новий стовпчик donation_prob.
  • Знайдіть фактичну ймовірність того, що пересічна людина зробить пожертву, передавши функції mean() відповідний стовпчик датафрейму donors.
  • Скористайтеся ifelse(), щоб передбачити пожертву, якщо їхня передбачена ймовірність пожертви більша за середню. Запишіть передбачення в новий стовпчик donation_pred.
  • Використайте функцію mean(), щоб обчислити точність моделі.

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

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

# Estimate the donation probability
donors$donation_prob <- predict(___, type = "___")

# Find the donation probability of the average prospect
mean(___)

# Predict a donation if probability of donation is greater than average (0.0504)
donors$donation_pred <- ifelse(___ > 0.0504, ___, ___)

# Calculate the model's accuracy
mean(___ == ___)
Редагувати та запускати код