尿布和啤酒的故事 这是一个老故事, 但每次看总是能从中想到点什么.在一家超市里,有一个有趣的现象:尿布和啤酒赫然摆在一起出售。但是这个奇怪的举措却使尿布和啤酒的销量双双增加了。这不是一个笑话,而是发生在美国沃尔玛连锁店超市的真实案例,并一直为商家所津津乐道。原来,美国的妇女们经常会嘱咐她们的丈夫下班以后要为孩子买尿布。而丈夫在买完尿布之后又要顺手买回自己爱喝的啤酒,因此啤酒和尿布在一起购买的机会还是很多的。 是什么让沃尔玛发现了尿布和啤酒之间的关系呢?
研究“啤酒与尿布”关联的方法就是购物篮分析,购物篮分析曾经是沃尔玛秘而不宣的独门武器,购物篮分析可以帮助我们在门店的销售过程中找到具有关联关系的商品,并以此获得销售收益的增长!
商品相关性分析是购物篮分析中最重要的部分,购物篮分析英文名为market basket analysis(简称MBA,当然这可不是那个可以用来吓人的学位名称)。在数据分析行业,将购物篮的商品相关性分析称为“数据挖掘算法之王”,可见购物篮商品相关性算法吸引人的地方,这也正是乐此不疲的围绕着购物篮分析进行着研究和探索的根本原因。
下面每一行是一个购物小票,直到遇到五个零00000,输入序列终止,每个字母表示一种商品(字母区分大小写,即a 和A代表不同的产品),请分析哪两个种产品的销售相关性最高:
样例输入:
AABZXY
BMNY
C
CBYPQ
BWVCY
00000
输出(字幕顺序按ASC码升序排列):
BY
pairs = []
while True:
check = input()
if check != "00000":
# 去除重复字符
s1 = set(check)
s2 = "".join(s1)
# 按ASCII排序
lis = list(s2)
lis.sort()
s3 = "".join(lis)
# 两两组合
for i in range(len(s3)):
for j in range(i + 1, len(s3)):
pair = s3[i] + s3[j]
pairs.append(pair)
else:
break
res = max(pairs, key=pairs.count)
print(res)