使用序列模型进行数据挖掘的例子
下面介绍一个使用序列模型进行数据挖掘的例子。
图15-1所示的是超市购物信息数据集,第一列是交易时间,第二列是顾客编号,第三列是购买商品信息,例如,在1993年6月10日,顾客2买了商品10和商品20。
图15-1
下面对这个数据集进行序列模型分析,主要需要5个步骤:
(1)数据排序
(2)查找数据集
(3)数据转换
(4)序列分析
(5)得出结论
第一步,对这组数据进行排序。先根据顾客编号进行排序,得到如图15-2所示的第一个表格,再根据顾客交易时间排序,得到如图15-2所示的第二个表格。
由图15-2可以看出,顾客1先购买了商品30,又购买了商品90;顾客2先购买了商品10和商品20,又购买了商品30,接着又购买了商品40、商品60和商品70。
第二步,查找符合要求的数据集。在这里,我们设定要求序列模型的支持度(Support)大于25%,也就是说,每一类商品的购物信息至少为5×25%=1.25,即有两人购买,才能满足25%的支持度。商品10、商品20、商品50和商品60都分别只有1人购买,商品30有4人购买,商品40有两人购买,商品70和商品90分别有3人购买,商品集(4070)有两人购买。所以,符合支持度要求的商品集如图15-3所示。
图15-2
图15-3
这里分别用1~5代表商品集(30)、(40)、(70)、(4070)、(90)。
第三步,数据转换。将顾客购买的商品转化为1~5编号,如图15-4所示。
图15-4
第四步,进行序列整理。
下面对数据库进行整理,得到如图15-5所示的表格:从中可以找到两组符合支持度为25%的序列模型。
顾客1和顾客4均在购买了商品30后又购买了商品90,顾客2和顾客4均在购买了商品30后又一起购买了商品40和商品70。需要注意的是,序列模型的结果不需要是连续发生的,只要符合先后顺序即可。例如在上面的例子中,顾客4先购买了商品30,第二次购买了商品40和商品70,第三次购买了商品90,虽然购买商品30和商品90的过程不是连续的,但是也符合{(30)(90)}的序列模型。同时,序列模型的元素不必是一个商品,也可以是一个商品集。例如,顾客2第一次购买了商品10和商品20,(1020)就是一个商品集。
此案例的序列模型求解过程如图15-6所示。
图15-5
图15-6