Это результат использования времен отсечения при расчете этой матрицы характеристик.
В этом примере мы делаем прогнозы для каждой встречи во время ее назначения. Таким образом, функция locations.PERCENT_TRUE(appointments.sms_received)
рассчитывается в определенное время, определяемое временем отключения. Он рассчитывает для каждой встречи "процент встреч в этом месте, полученных с помощью смс до scheduled_time
"
Эта конструкция необходима для предотвращения утечки будущей информации в прогноз для этой строки в то время. Если бы мы вычислили PERCENT_TRUE
с использованием всего набора данных, мы бы обязательно использовали информацию о встречах, которые еще не произошли, что недопустимо для прогнозного моделирования.
Если вы вместо этого хотите делать прогнозы после того, как все данные известны, все, что вам нужно сделать, это удалить аргумент cutoff_time
для вызова ft.dfs
:
fm, features = ft.dfs(entityset=es,
target_entity='appointments',
agg_primitives=['count', 'percent_true'],
trans_primitives=['weekend', 'weekday', 'day', 'month', 'year'],
max_depth=3,
approximate='6h',
# cutoff_time=cutoff_times[20000:],
verbose=True)
Теперь вы можете видеть, что функция одинакова, когда мы выполняем условия в определенном месте
fm.loc[fm.neighborhood == 'HORTO', 'locations.PERCENT_TRUE(appointments.sms_received)'].describe()
count 175.00
mean 0.32
std 0.00
min 0.32
25% 0.32
50% 0.32
75% 0.32
max 0.32
Подробнее о том, как Featuretools обрабатывает время, можно прочитать в документации .