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

Построение бинарного прогноза

В предыдущем упражнении вы использовали функцию glm() для построения модели логистической регрессии, описывающей поведение доноров. Как и во многих других методах машинного обучения в R, к объекту модели можно применить функцию predict() для прогнозирования будущего поведения. По умолчанию predict() возвращает прогнозы в виде логарифма шансов, если не указан аргумент 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(___ == ___)
Редактировать и запускать код