【问题标题】:Using cutoff_times in featuretools for prediction在特征工具中使用 cutoff_times 进行预测
【发布时间】:2020-02-20 14:50:43
【问题描述】:

我正在构建一个模型来预测用户是否会根据他/她的阅读历史等(活动)购买订阅。我正在使用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)

【问题讨论】:

    标签: python machine-learning prediction featuretools feature-engineering


    【解决方案1】:

    您如何决定训练数据的截止时间取决于以下因素:

    培训窗口应该是 1 个月、6 个月等多长时间?

    我认为您可以尝试不同的训练窗口大小,看看哪个模型的结果更好。

    鉴于用户订阅前后的活动可能不同,我应该根据订阅时间截断当前订阅者的数据(防止泄漏)。但是我什么时候应该为非订阅者截止?

    我认为您可以随机选择它们,或者有时代表您将来要在这些订阅者上使用该模型的时间。

    我们的开源库 Compose 非常适合构建此标签流程。如果您在 Compose 中定义预测问题,它将根据您定义预测问题的方式自动选择负样本。它还具有参数化预测窗口,可让您在特定时间生成标签。让我知道这是否有帮助。

    【讨论】:

    • 感谢 Jeff - 我只想对您和您的团队在 Feature Labs 所做的出色工作表示感谢!在功能工具上的出色工作并在这里提供了强大的支持。我一定会查看 Compose,希望将其视为功能工具中的原生功能!
    • 感谢 Ivan,感谢您的客气话,我们很乐意为您提供帮助!
    猜你喜欢
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    • 2018-08-28
    • 2017-03-31
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多