python - Python:挖掘时序序列的方法
问题描述
我有一个如下所示的数据集:
timestamp event
12/1/2020 14:30 A
12/1/2020 14:12 C
12/1/2020 14:10 A
12/1/2020 15:01 B
11/1/2020 21:20 A
11/1/2020 21:00 C
..... ...
events
是用户对应用程序的操作。timestamp
是引发该特定事件的时间。我想挖掘数据中的事件序列,以找出从用户开始使用应用程序之日起用户的工作流程(有时间限制的市场篮分析?)在应用程序内部。
我想了解的是用户最常执行的一组步骤(事件)。
例如:输出可能类似于:
1 event sequence = {A} # since it occurs the most number of times
2 event sequence = {A,C} # since C is raised most number of times after A
3 event sequence = {} #event sequence of 3 steps that occurs most frequently
注意:在特定时间范围(例如 20 分钟)内发生的事件可以被视为一系列事件。
......................... 解决这个问题的正确方法是什么?
解决方案
对于单个事件:
df.event.value_counts().head(1)
对于多个事件:
from scipy import stats
from skimage.util import view_as_windows
event = df.event.values
for n in range(1,4):
seq = view_as_windows(event,n).sum(-1)
print(stats.mode(seq)[0])
输出:
['A']
['AC']
['ABA']
推荐阅读
- matplotlib - 为新闻散布图添加标签
- javascript - 如何使我的随机图像选择器从随机选择变为顺序选择?
- javascript - 如何将控制台日志结果传递给我的 ajax,以便我可以将其插入 DB?
- html - 通过浏览器直接访问时 index.html 文件不显示样式
- elasticsearch - 如何在 Kibana 发现页面中添加时间范围过滤器?
- c# - 根据最常找到的关键字过滤列表
- typescript - 基于函数类型的打字稿条件类型
- python - 使用唯一时间戳的子集 df - pandas
- regex - 无法用 Perl 替换同一字符串中的模式
- javascript - 我如何使用 discord.js 解除用户禁令