序列模式挖掘:指挖掘相对时间或其他模式出现频率高的模式
序列模式挖掘的动机:大型连锁超市的交易数据有一系列的用户事物数据库。每一条记录包括用户的ID,事物发生的时间和事物涉及的项目。如果能够在其中挖掘涉及事物间关联关系的模式,即用户几次购买行为间的联系,可以采用更有针对性的营销措施。
序列:(sequence) 以SID表示,一个序列即是一个完整的信息流
序列符号化表示:序列是不同项目集的有序排列。序列s可以表示为s =
序列的长度:序列的元素可以表示为(x1,x2,x3,....,xm),xk (1<= k <= m)为不同的项目。一个序列中所包含的所有项的个数称为序列的长度
项目:(item) 序列中最小组成单位的集合。e g: {A,B,C}.
事件:(event)通常用时间戳标志,标识事件的前后关系,又叫itemset.是item的集合
项目集:(itemset)是各种项目组成的集合
k-频繁序列:如果频繁序列项目个数为K,称为k频繁序列。eg:<面包,苹果> 为2频繁序列
序列模式:一个用户在不同时间点的交易记录就构成了一个购买序列
序列模式数据集样例
数据集测试样例
(1)(序列数据库是一组序列,其中每个序列是一个项目集列表)
(2)(It is assumed that items in an itemset are sorted in lexicographical order):假定数据集中的项目是按字典顺序排列的
上述测试数据集应用到代码编程中转换为
(1)假定同一个项目集中没有项目出现两次
(2)其中每一行代表序列数据库中一个序列,序列中的每个项都是正整数
(3)序列中同一个项集的项用空格分开
(4)假设同一项集中的项是按照总顺序排序的,并且同一项集中不能出现两次项
1 -1 1 2 3 -1 1 3 -1 4 -1 3 6 -1 -2
1 4 -1 3 -1 2 3 -1 1 5 -1 -2
5 6 -1 1 2 -1 4 6 -1 3 -1 2 -1 -2
5 -1 7 -1 1 6 -1 3 -1 2 -1 3 -1 -2
上述数据集转换到代码中形式为:
利用GSP算法运行我们上面的案例
设置min su p= 0.4
学生ID | 注册课程时间 | 课程ID | |
1 | 2020年1月5日 | 11 | |
2020年3月1日 | 12 | ||
20203月2日 | 13 | ||
2 | 2019年3月4日 | 11 | |
2018年7月3日 | 13 |
【1】如果以项集模式挖掘的方法,则数据集的输入形式为:(即源程序的输入文件为)
表二:项集挖掘下的数据集的形式
11 |
12 |
13 |
11 |
13 |
【2】如果我们以序列模式挖掘的方法,则数据集的输入形式为:(即源程序的输入文件为)
表三:序列模式挖掘下的数据集的形式
11 12 13 |
11 13 |
苹果 香蕉 梨子 |
苹果 桃子 |
可以看到表三和表四其实没有区别
也就是说,当序列模式挖掘下,如果每个序列中的项都是1-项集的话,那么序列模式挖掘下的数据集的形式和项集挖掘下数据的形式没有区别。那么1-项集的序列模式挖掘就完全变成项集挖掘了。