(源码)关于A->B*->D的时间序列频繁模式挖掘的思考 1.26更新

本文探讨了时间序列频繁模式挖掘中的A->B*->D模式,适用于社交网络场景。该模式表示在事件A之后,不论发生多少次事件B,最终都发生事件D。算法流程图和更新版代码展示了如何处理多重序列和重复序列,旨在解决时间序列中的频繁模式。目前仍在寻找合适的数据集进行验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个算法是导师课题的一个部分,感觉对时间序列频繁模式挖掘的学习还是很有帮助的,在博客里做一下记录。

首先要明确一下什么是A->B*->D模式:


A->B->D表示在A事件发生后又发生了B事件,又发生了D事件,由于我应用在社交网络,那么这三种事件就可以表示为三个人在某微博下的留言。


什么是A->B*->D模式?这里的*表示不管在A与D时间发生的时间点当中有多少个B事件发生,都可以这个标记这种模式,比如:

A->B->B->D或A->B->B->B->D都可以写成A->B*->D的形式,但看A->B->D和A->B->B->D和A->B->B->B->D可能每个都不是频繁的,但如果把他们看成一种形式A->B*->D就有可能是频繁的,我所要解决的就是这个问题。


这里有个前提条件,就是我所研究的背景是社交网络,也就是说每个事件发生的时间点一定不可能一样,也就是说,每个事件之间一定有先后的发生顺序,综上所述,我只考虑时间序列的频繁模式挖掘,而不考虑传统的频繁模式挖掘。


程序流程图:


本算法里面的字母理论上应该是社交网络中的各个事件,目前正在搜索合适的数据集,将其封装成一个类就可以像算法里的字母一样表示了。数据集的搜索目前还在进行中。


1.26更新 ver1.1

增加多重序列识别功能:ABDBDF -> A(BD)F

增加多重序列内存在的多重序列识别功能 :

ABBDDBBDDF -> A(B)(D)(B)(D)F -> A(BD)F

增加多重序列内重复序列识别功能:

ABBBBF有这样一种形式 A(BB)F 可化为 A(B)F,目的是为了避免重复


源代码:(数据集是自己造的,比较具有代表性的小数据,肉眼可以识别出本算法在运行上没有问题)

#coding:utf-8

__author__ = 'ChiXu_15s103144_HIT'

import copy
import sys
#----------------------------------------------------------#
#     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值