Вычисление агрегированного целевого признака
Предположим, вы хотите построить прогностическую модель, которая определяет, какие доноры с наибольшей вероятностью пожертвуют более 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))