使用事件序列数据识别在感兴趣事件之前发生的事件(模式)

机器算法验证 r sas Python 模式识别
2022-04-07 17:36:07

我有兴趣识别在感兴趣的事件之前发生的事件(模式)

例如,客户打电话投诉或客户在线查看余额,然后客户关闭帐户(感兴趣的事件)。数据是带有时间戳的一系列事件的形式。

我想知道人们使用什么方法(和软件)来完成这样的任务。

我对确切的模式(事件的顺序)、事件的频率(多次致电投诉)和事件的时间(80% 的事件 A 直接导致 X 天内感兴趣的事件)持开放态度。基本上,对人们用来识别导致事件的模式的任何方法持开放态度。

到目前为止,我在 RCSPADE的包中找到了可用的算法arulesSequences。它似乎能够识别模式序列以及哪些项目同时出现。但是,我认为无法为其设置目标事件以找到模式。

我对 R、Python 或 SAS 中可用的算法持开放态度。

非常感谢!

1个回答

我想你有一些可用的大型训练集。

这个问题可以通过许多不同的方法来解决,并且通常在您对结果/模型的解释能力与您可以做出的良好预测之间进行权衡。我最近做了类似的事情,在拥有一个运行良好的复杂非线性分类器之后,我被要求确定当我们应该干扰客户时触发的确切时刻/事件,这实际上太难了,所以我最终使用改造树,以便让管理人员了解他们的数据中正在发生的事情。更多详情如下:

我从您可以用来解释正在发生的事情的方法开始:您需要编写一个脚本来从完整数据集中提取长度为的序列,这些序列会导致您感兴趣的事件。如果很低并且您有足够的数据您可以测量导致感兴趣事件的所有事件组合的频率。如果情况有点复杂并且没有明确的赢家,您可以尝试使用树将这些事件系列可视化为马尔可夫链的一种形式。使用一些特别的清理,比如去除的边缘,你最终可能会得到一些可操作的东西。nnp<0.1

如果解释结果不是那么重要,但关键是预测感兴趣的事件是否会发生,那么我会选择经典分类。您有一系列事件导致感兴趣的事件(这是您的积极类)。你做了一些没有导致感兴趣的事件的系列事件(那是负类)。你可以有一个标准,比如“如果在 50 次正常事件之后没有发生感兴趣的事件,那么我认为系列是负面的”。现在特征可以是事件的频率、事件对的频率、事件之间的时间(速度)。您可以将一系列事件视为一系列单词,并使用标准方法进行文本分类。拥有类和特征选择一个分类器并进行一些建模。