我的问题很笼统,可能可以通过多种方式解决。但是考虑到时间和记忆的聪明方法是什么?
我有以下形式的用户交互的时间序列数据:
cookie_id interaction
--------- -----------
1234 did_something
1234 viewed_banner*
1234 did_something
1234 did_something
1234 viewed_and_clicked_banner*
... ...
我希望它训练模型来预测用户是否会在显示横幅时点击横幅(即标有 * 的交互)。为此,我需要在提要中出现兴趣点(或viewed_banner
或)时汇总所有先前的交互:viewed_and clicked_banner
cookie_id interaction
--------- -----------
1234 did_something
1234 viewed_banner <- point of interest
cookie_id interaction
--------- -----------
1234 did_something
1234 viewed_banner
1234 did_something
1234 did_something
1234 viewed_and_clicked_banner <- point of interest
这是问题的核心:将数据分成重叠的组!完成此操作后,每个组都可以聚合为例如:
cookie_id did_something viewed_banner viewed_and_cli... clicked?
--------- ------------- ------------- ----------------- --------
1234 1 0 0 no
1234 3 1 0 yes
这里的数字did_something
和viewed_banner
是这些交互的计数(不包括兴趣点),但也可以执行其他类型的聚合。该clicked?
属性仅描述了两种“兴趣点”中的哪一种是交互提要中的最后一次交互。
我曾尝试查看 Pandasapply
和groupby
方法,但无法提出生成所需重叠组的方法。
另一种方法是使用一些 for 循环,但如果有一种简单有效的方法来解决问题,我宁愿不这样做。