Я строю модель, чтобы предсказать, купит ли пользователь подписку на основе его / ее истории чтения и т. Д. (Активность). Я использую 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)