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

Вычисление агрегированного целевого признака

Предположим, вы хотите построить прогностическую модель, которая определяет, какие доноры с наибольшей вероятностью пожертвуют более 50 евро в течение определённого месяца.

Дана базовая таблица basetable, в которой уже есть по одной строке для каждого донора из генеральной совокупности; столбец donor_id идентифицирует донора. Согласно временно́й шкале, целевой признак должен принимать значение 1, если донор пожертвовал более 50 евро в январе 2017 года, и 0 в противном случае.

Датафрейм pandas gifts_201701 содержит все пожертвования за январь 2017 года. В этом упражнении вы добавите столбец целевого признака в базовую таблицу.

Это упражнение является частью курса

Средний уровень прогностической аналитики на Python

Посмотреть курс

Инструкции к упражнению

  • Создайте gifts_summed — таблицу с суммой пожертвований для каждого донора из gifts_201701.
  • На основе gifts_summed сформируйте список targets, включив в него доноров, пожертвовавших более 50 евро за целевой период.
  • Добавьте целевой признак в базовую таблицу.
  • Вычислите и выведите долю целевых доноров.

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

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

# Sum of donations for each donor in gifts_201701
gifts_summed = ____.groupby("____")["____"].____().reset_index()

# List with targets
targets = list(gifts_summed["id"][____["____"] > ____])

# Add targets to the basetable
basetable["target"] = pd.Series([____ if donor_id in targets else ____ for donor_id in basetable["donor_id"]])

# Calculate and print the target incidence
print(round(____["____"].____() / ____(____), 2))
Редактировать и запускать код