数据挖掘-序列模式挖掘-基础知识和概念总结(sequential pattern mining)

一:基础概念介绍

序列模式挖掘:指挖掘相对时间或其他模式出现频率高的模式

序列模式挖掘的动机:大型连锁超市的交易数据有一系列的用户事物数据库。每一条记录包括用户的ID,事物发生的时间和事物涉及的项目。如果能够在其中挖掘涉及事物间关联关系的模式,即用户几次购买行为间的联系,可以采用更有针对性的营销措施。

序列:(sequence) 以SID表示,一个序列即是一个完整的信息流

序列符号化表示:序列是不同项目集的有序排列。序列s可以表示为s = , sj(1<= j <= l)为项目集(itemset),也称为序列s的元素

序列的长度:序列的元素可以表示为(x1,x2,x3,....,xm),xk (1<= k <= m)为不同的项目。一个序列中所包含的所有项的个数称为序列的长度

项目:(item) 序列中最小组成单位的集合。e g: {A,B,C}.

事件:(event)通常用时间戳标志,标识事件的前后关系,又叫itemset.是item的集合

项目集:(itemset)是各种项目组成的集合

k-频繁序列:如果频繁序列项目个数为K,称为k频繁序列。eg:<面包,苹果> 为2频繁序列 

序列模式:一个用户在不同时间点的交易记录就构成了一个购买序列

二:样例介绍

序列模式数据集样例

数据挖掘-序列模式挖掘-基础知识和概念总结(sequential pattern mining)_第1张图片

数据集测试样例

(1)(序列数据库是一组序列,其中每个序列是一个项目集列表)

(2)(It is assumed that items in an itemset are sorted in lexicographical order):假定数据集中的项目是按字典顺序排列的

数据挖掘-序列模式挖掘-基础知识和概念总结(sequential pattern mining)_第2张图片

上述测试数据集应用到代码编程中转换为

(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

数据挖掘-序列模式挖掘-基础知识和概念总结(sequential pattern mining)_第3张图片

数据挖掘-序列模式挖掘-基础知识和概念总结(sequential pattern mining)_第4张图片
 
设置min su p=0.6
运行结果为:
数据挖掘-序列模式挖掘-基础知识和概念总结(sequential pattern mining)_第5张图片
 
 
结果解释:我们挖掘频繁序列,其实就是原始数据集不一样,挖掘思路与项集挖掘例如Apriori算法一样。利用支持度(1‘对应项集挖掘中,某物集是否在某一次交易中出现过,出现过,绝对支持度加一;2’对应序列模式挖掘中)

四:*序列模式挖掘和频繁模式(项集)挖掘的区别(要理解)

1)数据的形式就不一样
数据挖掘-序列模式挖掘-基础知识和概念总结(sequential pattern mining)_第6张图片
2)项集挖掘的数据:事务和事务之间可以打乱顺序,项与项之间也可以打乱顺序
      序列模式挖掘:一条记录中项集和项集之间有严格的时空关系
     个人感悟的区别:项集挖掘的数据,不需要管交易是哪个用户产生的,不需要考虑某个用户,只需要整体上考虑;
                                    序列模式则涉及考虑到某个用户,某一个序列就是某个用户在各个时间点购买的物品的集合,并且有时间先后顺序。
 
***3)补充思考:其实上面的第一条区别并不严谨。例如,当序列数据中的每一项都是单项集的时候,序列模式的数据集就是和项集挖掘的数据集的形式就一模一样了。
    例子:原始数据集如下表                       
                                                                       表一:原始数据集
学生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-项集的序列模式挖掘就完全变成项集挖掘了。

五.总结

     
       其实序列模式挖掘和项集挖掘都是从数据集里面寻找频繁模式。只不过两者的输入数据集的格式有点区别。得到的频繁模式的结果的格式也会对应不同。
 
 
 
 

你可能感兴趣的:(数据挖掘,#,数据挖掘,机器学习,数据挖掘)