首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python实现数据挖掘经典算法之关联分析Apriori算法

今天我们要用python实现的是数据挖掘经典算法, Apriori算法。 这个算法主要用于做数据间的关联分析,专业点的说法就是 发现数据的频繁项集和关联规则。

再举个例子吧: 有一个经典的案例: 啤酒和尿布的故事,成年男性在买尿布的时候会买几瓶啤酒,用我们人的思维来思考的话,这二者并没有什么因果关系。然而通过对海量数据进行关联分析,却能够发现这个有趣的知识,在超市调整货架后,明显的提升了超市啤酒尿布的销量。

啤酒-尿布 关联分析 Apriori算法

网上的例子

在网上搜索一下,可以找到很多apriori算法的例子, 这些例子一般来说存在2个问题:

1)数据集太简单,通常是2-3个字段, 无法让人深入理解这个关联分析算法。

2)实现方法很啰嗦, 没有体现出python语言的强大数据结构的妙用。

所以, 我们今天用一个比较复杂的例子来实现apriori算法。

程序的具体要求

编写Apriori算法程序,平台python2

用Apriori 算法找出频繁项集,可以任意设定最小支持度和置信度。

找出强关联规则以及相应的支持度和置信度

结果输出到txt文本

数据集里的问号的数据不参与计数,可以省略

数据集

138行数据, 字段如下:

userID,smoker,drink_level,dress_preference,ambience,transport,marital_status,hijos,birth_year,interest,personality,religion,activity,color,weight,budget,height

再来看几行数据:

可以看到, 其中有数据是缺失的。

对于缺失的数据,我们可以去掉整行,也可以在关联分析的时候不分析这个缺失的字段。

面对如此多的字段, 如果靠人工的话,很难发现某几个字段有关联关系, 还好我们有高级算法和python语言。

代码

这个编辑器也是无语了, 贴上了代码,格式就乱了。

所以就发几张代码截图吧。

有需要完整代码的朋友,可以大胆私信哟。

运行与输出

在命令行运行python apriori.py 之后, 可以得到频繁项集和强关联规则。

频繁项集有2项集,三项集,一直到8项集。

比如这个2项强关联规则:

marital_status:singleactivity:student0.7753623188410.877049180328

表示未婚和学生存在强关联关系, 最后的两个数字是支持度和置信度。

提问

最后提问一个问题,看大家对这个关联分析算法有没有彻底理解:

频繁项集包括不包括一项集?

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200122A0O0UJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券