Использование cutoff_times в featuretools для прогнозирования - PullRequest
0 голосов
/ 24 октября 2019

Я строю модель, чтобы предсказать, купит ли пользователь подписку на основе его / ее истории чтения и т. Д. (Активность). Я использую featuretools (https://www.featuretools.com/) для автоматизации разработки функций, и вот где это становится сложным:

Как мне определить время / окно отсечения для моих тренировочных данных, учитывая, что:

  • Как долго должен быть интервал обучения 1 месяц, 6 месяцев и т. Д.?
  • Учитывая, что активность пользователей может быть разной до и после подписки, я должен отключить данные для текущих подписчиков в зависимости от того, когда ониподписаться (предотвратить утечку). Но когда я должен отключить не-подписчиков?
feature_matrix, feature_defs = ft.dfs(entityset=es,
                                     target_entity="users",
                                     max_depth=2,
                                     agg_primitives=["sum", "std", "max", "min", "mean", "median", "count", "percent_true", "num_unique", "mode", 
                                                     "avg_time_between"],
                                     trans_primitives=["day", "year", "month", "weekday", "time_since_previous", "time_since", "is_weekend"],
                                     cutoff_time=cutoff_times,
                                     cutoff_time_in_index=True,
                                     training_window=ft.Timedelta(180,"d"),
                                     n_jobs=8, verbose=True)

1 Ответ

1 голос
/ 28 октября 2019

То, как вы определите время отсечения для ваших тренировочных данных, будет зависеть от следующего:

Как долго должен быть интервал обучения 1 месяц, 6 месяцев и т. Д.?

Я думаю, что вы можете попробовать разные размеры окна обучения, чтобы увидеть, какие из них дают лучшие результаты с моделью.

Учитывая, что активность пользователей может быть разной до и после подписки, я должен сократить данные для текущих подписчиков на основео том, когда они подписались (предотвратить утечку). Но когда мне следует отключить подписчиков, не являющихся подписчиками?

Я думаю, что вы можете выбрать их случайным образом или в те моменты времени, которые характерны для случая, когда вы собираетесь использовать модель для этих подписчиков в будущем.

Наша библиотека с открытым исходным кодом Compose идеально подходит для структурирования этого процесса маркировки. Если вы определили свою проблему прогнозирования в Compose, она автоматически выберет отрицательные примеры на основе того, как вы определили проблему прогнозирования. Он также имеет параметризованное окно прогнозирования, позволяющее генерировать метки в определенное время. Дайте мне знать, если это поможет.

...