关联算法—Apriori实操

我就在这里等你关注,不离不弃

——A·May

R-50T-64

「关联 算法

关联算法多用于发现商品之间的联系,最经典的就是购物篮问题。利用关联算法可以发现哪些商品之间存在具有实用性和有效性的关联属性,进而为某些决策提供合理依据。

在关联算法中,我们需要使用的是包arules和arulesViz,在安装和加载这两个包使用的时候,会遇到必须加载grid等情况,慢慢来,少什么包,就安装什么就好了。

了解Apriori

关于Apriori

apriori(data,parameter=list(support,confidence,target))

#data这里要用transactions类数据

#parameter设置个关联参数

#同样的这里仍是最简设置

Apriori算法的四个步骤

step1

读取事实型数据,并将其转为矩阵

step2

将矩阵转为transactions类数据

step3

探索出简单关联规则

step4

可视化简单关联规则

操作过程

step1及step2

事实型数据

每种商品是否购买用0和1表示,这就是事实性数据,这不是关联算法的唯一数据格式要求,但是这是最通用的数据格式,尤其适合问卷调查的结果。

mallapriori.csv,我已放到公众号后台,回复文件名或者关联算法,即可获得百度云链接。

读取及转化的过程

> sapri

> head(sapri)

> msapri

#将信息部分全部删去,只保留商品信息,得到msapri矩阵

> tmsapri

#将msapri矩阵转为tmsapri的transactions型数据

> summary(tmsapri)

#查看transactions类数据的信息

transactions as itemMatrix in sparse format with

1000 rows (elements/itemsets/transactions) and

10 columns (items) and a density of 0.2501

most frequent items:

cannedveg frozenmeal beer fish wine (Other)

303 302 293 292 287 1024

#1000名顾客的购买频率最高的商品

element (itemset/transaction) length distribution:

sizes

0 1 2 3 4 5 6 7 8

77 208 251 222 134 72 24 11 1

#一次购买一个商品的人有208位,以此类推

Min. 1st Qu. Median Mean 3rd Qu. Max.

0.000 1.000 2.000 2.501 3.000 8.000

includes extended item information - examples:

labels

1 freshmeat

2 dairy

3 cannedveg

step3及step4

建立关联规则

> myapri

#tmsapri是transactions类数据

#support是支持度,默认为是0.1,表示应用机会

#confidence是置信度,默认为是0.8,但是一般使用0.5,表示可信度

#target="rules"使得apriori的结果是关联规则,必须要有

> inspect(myapri)

#查看关联结果,发现得出11条有效的关联规则,同时注意lift,support和confidence是对规则有效性的说明,而lift则是对规则实用性的说明,通常大于1为合格,因此,lift指标更具使用价值。

可视化

> plot(myapri,"paracoord")

#对关联规则的可视化,线的颜色和粗细分别表示提升度lift和支持度

> plot(myapri,"graph")

#对关联规则的可视化,大小表示支持度,颜色表示提升度

「结语

我们可以从上述的11条关联规则中得出相应的商品的关联性,那就是我们需要的结论,比如, => 这三者之间的关联性最强,在售卖商品的时候可以将这三个放的近一些,或者做一些优惠活动,把这三种商品捆绑在一起。

以上就是简单的关联算法Apriori,希望对大家有用。

我是May,明天见!

学习数据挖掘交流平台

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180107G08YKH00?refer=cp_1026

同媒体快讯

相关快讯

扫码关注云+社区