关联规则挖掘用于寻找给定数据集中项之间的有趣的关联或相关关系。
关联规则揭示了数据项间的未知的依赖关系,根据所挖掘的关联关系,可以从一个数据对象的信息来推断另一个数据对象的信息。
例如购物篮分析。牛奶 ⇒ 面包 [支持度:3%,置信度:40%]
支持度3%:意味3%顾客同时购买牛奶和面包。
置信度40%:意味购买牛奶的顾客40%也购买面包。
规则的支持度和置信度是两个规则兴趣度度量,它们分别反映发现规则的有用性和确定性。
这里就使用SQL做简单的购物篮分析(仅实现单维关联规则算法)。
声明1: 使用的数据全部都是随机造出的,因此,分析的结果不代表真实的场景。
声明2: 此次分析过程在Mysql中实现。
建表语句如下:
CREATE TABLE shopcart ( car VARCHAR(50), product VARCHAR(200) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
数据文件见附件。
数据格式如下:
cart,product shopcart_1,家具/家具定制/宜家代购 shopcart_10,玩具/模型/娃娃/人偶 shopcart_10,个人护理/保健/按摩器材 shopcart_10,奶粉/辅食/营养品 shopcart_10,品牌手表/流行手表 shopcart_10,酒店客栈/景点门票/度假旅游 shopcart_100,个人护理/保健/按摩器材 shopcart_100,珠宝/钻石/翡翠/黄金 shopcart_100,品牌保健品 shopcart_100,笔记本电脑 shopcart_100,益智玩具/早教/童车床/出行 shopcart_1000,尿片/洗护/喂哺等用品 shopcart_1000,家装饰品/窗帘/地毯 shopcart_1000,传统滋补品/其他保健营养品 shopcart_1000,女士内衣/男士内衣/家居服 shopcart_1000,电脑硬件/显示器/电脑周边 shopcart_101,网店/网络服务/个性定制/软件 shopcart_101,女装/女士精品 shopcart_101,粮油/蔬果/干货/速食/水产 shopcart_101,乐器/吉他/钢琴/配件 shopcart_102,厨房电器 shopcart_103,奶粉/辅食/营养品 shopcart_103,女鞋
每个商品一条记录,没有真实的交易数据,因此用类目代替商品名称。
第一步,使用自关联(多对多),统计每两种商品同时被购买的次数。
CREATE TABLE tmp1 AS select product_a, product_b, count(distinct cart) as buy_cnt_together from ( select a.cart, a.product as product_a, b.product as product_b from shopcart a join shopcart b on (a.cart = b.cart) ) x group by product_a, product_b;
数据格式:
product_a,product_b,buy_cnt_together 3C数码配件市场,男装,4 3C数码配件市场,益智玩具/早教/童车床/出行,2 3C数码配件市场,童装/童鞋/孕妇装,3 3C数码配件市场,笔记本电脑,2 3C数码配件市场,粮油/蔬果/干货/速食/水产,8 3C数码配件市场,网店/网络服务/个性定制/软件,4 3C数码配件市场,网络设备/路由器/网络相关,2 3C数码配件市场,美容护肤/美体/精油,4 3C数码配件市场,装潢/灯具/五金/安防/卫浴,2 3C数码配件市场,运动/瑜伽/健身/球迷用品,2 3C数码配件市场,运动服/运动包/颈环配件,1 3C数码配件市场,运动鞋,2 3C数码配件市场,酒店客栈/景点门票/度假旅游,2 3C数码配件市场,闪存卡/U盘/移动存储,3 3C数码配件市场,零食/坚果/茶叶/特产,1 3C数码配件市场,音乐/影视/明星/音像,3 3C数码配件市场,饰品/流行首饰/时尚饰品,4 MP3/MP4/iPod/录音笔,MP3/MP4/iPod/录音笔,33 MP3/MP4/iPod/录音笔,ZIPPO/瑞士军刀/眼镜,2 MP3/MP4/iPod/录音笔,个人护理/保健/按摩器材,4 MP3/MP4/iPod/录音笔,乐器/吉他/钢琴/配件,1 MP3/MP4/iPod/录音笔,书籍/杂志/报纸,2 MP3/MP4/iPod/录音笔,办公设备/文具/耗材,2
第二步:计算置信度和支持度
数据和详细参见原文:http://lxw1234.com/archives/2015/04/136.htm