【问题标题】:Use FeatureTools to aggregate monthly data from daily使用 FeatureTools 从每日汇总每月数据
【发布时间】:2021-02-23 16:24:58
【问题描述】:

我正在尝试使用 FeatureTools 创建用于客户流失分析的数据集。我有一个原始订单数据集,其中包括以下字段:

customer_id, order_id, order_month, order_datetime, order_cost

我想创建一个数据集,该数据集返回每个客户每月他们下订单的一行以及该月内的相关信息,例如 AVG(order_cost)。到目前为止,我已经创建了包括订单(基于 order_id)和客户(customer_id)的实体。但是,我无法弄清楚如何为每个客户创建月度功能。我尝试创建一个单独的实体,该实体基于每个 customer_id + order_month 的自定义 ID。这是最好的方法吗?有没有更好的工具呢?

谢谢!

【问题讨论】:

    标签: feature-engineering featuretools


    【解决方案1】:

    感谢您的提问。如果您希望每个客户每月有一行,那么这是目前最好的方法。否则,您还可以使用 where 原语为每个客户每月获取一列。为此,您需要为 order_month 变量设置有趣的值并在 DFS 中使用 where_primitives。

    es['orders']['order_month'].interesting_values = df.order_month.unique()
    
    fm, fd = ft.dfs(
        target_entity='customers',
        entityset=es,
        trans_primitives=[],
        agg_primitives=['mean'],
        where_primitives=['mean'],
    )
    
                 MEAN(orders.order_cost WHERE order_month = 1)  ...  MEAN(orders.order_cost WHERE order_month = 12)
    customer_id                                                 ...                                                
    2                                               659.426667  ...                                           3.000
    1                                               478.490000  ...                                         435.270
    3                                               468.316667  ...                                         319.975
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-09
      • 2011-08-28
      • 1970-01-01
      • 2018-01-26
      相关资源
      最近更新 更多