3

Featuretools は複数のカットオフ時間の処理をすでにサポートしています https://docs.featuretools.com/automated_feature_engineering/handling_time.html

In [20]: temporal_cutoffs = ft.make_temporal_cutoffs(cutoffs['customer_id'],
   ....:                                             cutoffs['cutoff_time'],
   ....:                                             window_size='3d',
   ....:                                             num_windows=2)
   ....: 

In [21]: temporal_cutoffs
Out[21]: 
        time  instance_id
0 2011-12-12        13458
1 2011-12-15        13458
2 2012-10-02        13602
3 2012-10-05        13602
4 2012-01-22        15222
5 2012-01-25        15222

In [22]: entityset = ft.demo.load_retail()

In [23]: feature_tensor, feature_defs = ft.dfs(entityset=entityset,
   ....:                                       target_entity='customers',
   ....:                                       cutoff_time=temporal_cutoffs,
   ....:                                       cutoff_time_in_index=True,
   ....:                                       max_features=4)
   ....: 

In [24]: feature_tensor
Out[24]: 
                        MAX(order_products.total)  MIN(order_products.unit_price)  STD(order_products.quantity)  COUNT(order_products)
customer_id time                                                                                                                      
13458.0     2011-12-12                    201.960                          0.3135                     10.053804                    394
            2011-12-15                    201.960                          0.3135                     10.053804                    394
15222.0     2012-01-22                    272.250                          1.1880                     26.832816                      5
            2012-01-25                    272.250                          1.1880                     26.832816                      5
13602.0     2012-10-02                     49.896                          1.0395                      8.732068                     23
            2012-10-05                     49.896                          1.0395                      8.732068                     23

しかし、ご覧のとおり、1 つの ID に対して複数の時点で pandas マルチ インデックスが生成されます。どのように (おそらくピボット経由で?) 代わりに、last_x_days_MIN/MAX/... で始まるすべての MIN/MAX/... 生成された列を取得して、カットオフ ウィンドウごとに追加機能を取得できますか?

希望の出力形式を編集する

initial feature 1,initial feature 2, time_frame_1_<AGGTYPE2>_Feature,time_frame_1_<AGGTYPE1>_Feature,time_frame_2_<AGGTYPE1>_Feature,time_frame_2_<AGGTYPE2>_Feature,time_frame_2_<AGGTYPE1>_Feature,time_frame_2_<AGGTYPE1>_Feature
4

1 に答える 1