关联规则分析报告2009年7月8日目录一前言 (1)二数据预处理 (1)三前7710条真实数据分析 (2)1商品按小类分析 (2)2商品按中类分析 (4)3商品按大类分析 (4)4分析比较 (5)四后44904条随机数据分析 (5)1商品按小类分析 (5)2商品按中类分析 (7)3商品按大类分析 (8)4分析比较 (8)五52614条混合数据分析 (8)1商品按小类分析 (8)2商品按中类分析 (11)3商品按大类分析 (11)4分析比较 (12)六总结 (12)一前言使用关联规则挖掘算法分析购物清单时,会产生不止“啤酒→尿布”的单一关联规则,而将出现涉及多种商品的“纵横交错”的多条关联规则。
针对这一实际问题,本文利用学生日常购物记录数据进行关联分析,通过概念分层从不同粒度上分析商品之间的关联性,从而找到商品之间的关联规则,实现优化超市货物摆放次序的目的。
二数据预处理1)在SQL server 2000 查询分析器里执行下面的SQL语句declare @sql varchar(8000)set @sql = 'select zid ,xh'select @sql = @sql + ' , max(case goodsid when ''' + goodsid + ''' then goodsid end) [' + 'n'+ goodsid + ']'from (select distinct goodsid from rcxfjl) as aset @sql = @sql + ' into table_a from rcxfjl group by zid,xh'exec(@sql)2)在PB里将有购买记录的列改为”yes”for i=1 to dw_1.rowcount()for li_index=1 to long(dw_1.object.datawindow.column.count)if integer(dw_1.getitemstring(i,dw_1.describe('#' + string(li_index) +".name")))>0 thendw_1.setitem(i,dw_1.describe('#' + string(li_index) +".name"),"yes")end ifnextnext3)将处理好的数据直接导出到Excel中4)将Excel表中的空格替换成”?”(在weka中?表示缺省值)三前7710条真实数据分析1 商品按小类分析1.1商品规范化中类商品再分小类对挖掘没有太大意义,故都将其看作一类;对于学生来说,家庭用品也没有太大意义,将其删除掉。
数据预处理过程如下:统一商品名:表1 统一商品表2 删除的商品Minimum support: 0.04 ,Minimum metric <confidence>: 0.4,结果如下,Best rules found:1. N030010001=yes 127 ==> N020010001=yes 71 conf:(0.56)2. N010010002=yes 148 ==> N020010001=yes 66 conf:(0.45)3. N010010001=yes 180 ==> N020010001=yes 79 conf:(0.44)4. N010010002=yes 148 ==> N010010001=yes 63 conf:(0.43)5. N040010001=yes 233 ==> N020010001=yes 99 conf:(0.42)注:N030010001:罐头\八宝粥,020010001:饮料,N010010002:小面包,N010010001:蛋糕,040010001:冲泡包面\粉从关联结果可知,买罐头\八宝粥又买饮料关联性最强,其次是小面包、蛋糕、冲泡包面\粉。
在日常生活购物中,我们买了罐头、面包后再买饮料或牛奶的概率极大,关联结果比较符合事实。
1.2商品筛选筛选出商品的购买次数>25的商品然后进行关联分析,结果如下Minimum support: 0.035 ,Minimum metric <confidence>: 0.3,结果如下,Best rules found:1. N010010005=yes 120 ==> N010010001=yes 53 conf:(0.44)2. N010010005=yes 120 ==> N010010002=yes 53 conf:(0.44)3. N010010002=yes 148 ==> N010010001=yes 63 conf:(0.43)4. N010010002=yes 148 ==> N010010005=yes 53 conf:(0.36)5. N010010001=yes 180 ==> N010010002=yes 63 conf:(0.35)注:N010010005:绿豆糕,N010010001:蛋糕,N010010002:小面包从关联结果可知,买绿豆糕又买蛋糕关联性最强,其次是小面包,关联结果也比较符合事实。
2 商品按中类分析由于总共才有1535个事务,故将算法参数支持度和置信度设置较低,Minimum support: 0.04 ,Minimum metric <confidence>: 0.2。
结果如下,Best rules found:1. N01002=yes 136 ==> N01001=yes 77 conf:(0.57)2. N02002=yes 161 ==> N01001=yes 83 conf:(0.52)3. N03001=yes 127 ==> N01001=yes 65 conf:(0.51)4. N02001=yes 226 ==> N01001=yes 104 conf:(0.46)5. N04001=yes 233 ==> N01001=yes 85 conf:(0.36)6. N01003=yes 176 ==> N01001=yes 62 conf:(0.35)7. N02001=yes 226 ==> N04001=yes 67 conf:(0.3)8. N04001=yes 233 ==> N02001=yes 67 conf:(0.29)9. N01001=yes 494 ==> N02001=yes 104 conf:(0.21)从结果可知,买糖果\巧克力又买饼干\糕点的概率最大,乳品饮料与饼干\糕点、罐头\八宝粥与饼干\糕点、碳酸饮料与饼干\糕点概率次之。
3 商品按大类分析Minimum support: 0.04 ,Minimum metric <confidence>: 0.4,结果如下,Best rules found:1. N02=yes N04=yes 103 ==> N01=yes 69 conf:(0.67)2. N03=yes N02=yes 93 ==> N01=yes 61 conf:(0.66)3. N01=yes N04=yes 106 ==> N02=yes 69 conf:(0.65)4. N03=yes N01=yes 97 ==> N02=yes 61 conf:(0.63)5. N02=yes 436 ==> N01=yes 238 conf:(0.55)6. N03=yes 197 ==> N01=yes 97 conf:(0.49)7. N03=yes 197 ==> N02=yes 93 conf:(0.47)从结果可知买食品\酒饮类、食品\粮油类与买食品\休闲类关联性最大。
注:N01是“食品\休闲类”,N02是“食品\酒饮类”,N03是“食品\冲调类”,N04是“食品\粮油类”。
4 分析比较从上面中类和大类分析可知,食品之间的关联性最大,其实这也是显而易见的,顾客买了罐头\八宝粥后会买饼干\糕点等食品,再买饮料的概率也很大,而实际中超市几乎都是这样安排商品的,大多食品都放在一起饮料放在旁边,这样方便顾客购买,增加销售。
四后44904条随机数据分析1 商品按小类分析1.1商品规范化统一商品名:表3 统一商品表4 删除的商品Minimum support: 0.04 ,Minimum metric <confidence>: 0.3,结果如下,Best rules found:1. N030010001=yes 127 ==> N020010001=yes 71 conf:(0.56)2. N010010002=yes 148 ==> N020010001=yes 66 conf:(0.45)3. N010010001=yes 180 ==> N020010001=yes 79 conf:(0.44)4. N010010002=yes 148 ==> N010010001=yes 63 conf:(0.43)5. N040010001=yes 233 ==> N020010001=yes 99 conf:(0.42)6. N010010001=yes 180 ==> N010010002=yes 63 conf:(0.35)注:N030010001:罐头\八宝粥,020010001:饮料,N010010002:小面包,N010010001:蛋糕,040010001:冲泡包面\粉,N010010005从关联结果可知,买罐头\八宝粥又买饮料关联性最强,其次是小面包与饮料,至于得出这样的结果,原因可能是我选取后面的44904条数据不完全都是随机生成的。
1.2商品筛选筛选出商品的购买次数>190的商品然后进行关联分析,结果如下Minimum support: 0.01 ,Minimum metric <confidence>: 0.1,结果如下,Best rules found:1. N040010003=yes 252 ==> N040010002=yes 59 conf:(0.23)2. N010010002=yes 290 ==> N010010001=yes 65 conf:(0.22)3. N040010002=yes 282 ==> N040010003=yes 59 conf:(0.21)4. N010010001=yes 313 ==> N010010002=yes 65 conf:(0.21)注:N040010003:热干面,N040010002:酱拌面,N010010001:蛋糕,N010010002:小面包从关联结果可知,买热干面又买酱拌面关联性最强,其次是小面包与蛋糕,但其支持度和置信度均较低。