先讲一个故事,来自于百度知道。
在一家超市里,有一个有趣的现象:尿布和啤酒赫然摆在一起出售。但是这个奇怪的举措却使尿布和啤酒的销量双双增加了。这不是一个笑话,而是发生在美国沃尔玛连锁店超市的真实案例,并一直为商家所津津乐道。
沃尔玛拥有世界上最大的数据仓库系统,为了能够准确了解顾客在其门店的购买习惯,沃尔玛对其顾客的购物行为进行购物篮分析,想知道顾客经常一起购买的商品有哪些。沃尔玛数据仓库里集中了其各门店的详细原始交易数据。在这些原始交易数据的基础上,沃尔玛利用数据挖掘方法对这些数据进行分析和挖掘。
一个意外的发现是:"跟尿布一起购买最多的商品竟是啤酒!经过大量实际调查和分析,揭示了一个隐藏在"尿布与啤酒"背后的美国人的一种行为模式:在美国,一些年轻的父亲下班后经常要到超市去买婴儿尿布,而他们中有30%~40%的人同时也为自己买一些啤酒。产生这一现象的原因是:美国的太太们常叮嘱她们的丈夫下班后为小孩买尿布,而丈夫们在买尿布后又随手带回了他们喜欢的啤酒。
相信通过这个小故事你已经懂了什么是关联分析,下边上一个demo。
本文通过一个200条的购物数据,一共7种商品,数据量不大,方便了解算法,提高运算速度。
数据网址如下:购物篮数据,
百度网盘:链接:https://pan.baidu.com/s/1YIJ4TXV0iGw4AVXI5ikSvw
提取码:j9so
首先打开test_confidence.txt文件,并读取文件中一共有多少种商品。
fr = open(r'D:\Workspace\jupyterNotebook\datamining\Test1\test_support_confidence.txt','r',encoding='utf-8')
goods = []
for line in fr:
temp = line.strip().split('\t')
#print(type(temp),temp)
for i in temp:
if i not in goods:
goods.append(i)
fr.close()
print(goods)
输出结果:
['啤酒', '苹果', '奶酪', '薯片', '面包', '牛奶', '香蕉']
我们看到一共有7种商品,下边我们把7种商品作为字段,将有数据的字段重写为1,没有数据的字段重写为0,把数据写入text_se.txt文件。
fr = open(r'D:\Workspace\jupyterNotebook\datamining\Test1\test_support_confidence.txt','r',encoding='utf-8')
fw = open(r'D:\Workspace\jupyterNotebook\datamining\Test1\test_se.txt','w',encoding='utf-8')
for line in