专栏名称: 表哥有话讲
国内最大的R语言专业学习平台| R官方认证学习实践社区--校企实践交流、名企内推和成果分享,立即关注-掌握R语言全球最新资讯与成果!
目录
相关文章推荐
哔哩哔哩  ·  满级大佬带儿子参加小学六一晚会 ·  17 小时前  
哔哩哔哩  ·  盲人程序员,是怎么写代码的? ·  17 小时前  
哔哩哔哩  ·  哪种狗子最适合带娃? ·  17 小时前  
寿光公安  ·  儿童节,民警竟然教孩子们“掷骰子”! ·  昨天  
51好读  ›  专栏  ›  表哥有话讲

关联规则R语言实战(Apriori算法)

表哥有话讲  · 公众号  ·  · 2017-08-11 13:22

正文

请到「今天看啥」查看全文


3)设定最小提升度的阈值。对第2)步进行计算,求出满足提升度条件的强关联规则,作为最后的关联规则的模型结果。

相比于最原始的一一计算,使用Apripor算法计算频繁项集可以大大地减少运算量,提升计算效率。  到底,理论的梳理就完全结束,下一步我将会对关联规则进行实战演练。

二.实操演练

2.1数据源

因为业务需要保密,所以实战演练部分我并没有用业务中的真实数据来进行记录,而是借用了arules包中和我业务数据很像的Epub数据来对我的建模过程来进行一个回顾和梳理。

Epub数据包含了来自维也纳大学经济与工商管理学院的电子文档平台的下载历史。

library(arules)
#导入数据
>data(Epub)
#查看数据类型
>class(Epub)
[1]"transactions"
#因为我的业务数据是从oracle数据库里面导出来的,所以我这里便把Epub数据转成data.frame格式,然后导出到数据库之后,重新从数据库导入,以便能够记录整个建模流程
>Epub"data.frame"
) 
#因为业务不需要,所以演示时也去掉时间字段
>Epub1:2] 

导出进数据库因为不属于建模流程,这里就不记录了。

2.2数据准备

上一节对数据源进行了基本的阐释下面正式进入正题,我将会从数据库导入开始一步步记录我的建模流程。

首先,是数据准备过程。

#引入链接数据库的RODBC包
library(RODBC)
#连接数据库
channel"数据库名"
,uid="orcl",pwd="orcl")
#读入数据
Epub"select * from Epub")
#查看数据前六行
head(Epub)

此时数据应该是如下表格的data.frame结构:


这个时候,表格是数据库存储的格式而非事务集的格式,因此首先要对数据进行格式转换。

首先,要对数据进行分组,一个transactionID的所有items应该在一个组里,因此,我们可以使用split函数,指定它的分组变量和目标变量:

>Epub#分组之后,将Epub数据转换成事务集形式
>Epub"transacions"
)
#查看Epub数据的前十行
>inspect(Epub[1:10])
  items                    transactionID          
[1]  {doc_154}                session_4795  
[2]  {doc_3d6}                session_4797  
[3]  {doc_16f}                session_479a  
[4]  {doc_11d,doc_1a7,doc_f4} session_47b7  
[5]  {doc_83}                 session_47bb  
[6]  {doc_11d}                session_47c2  
[7]  {doc_368}                session_47cb  
[8]  {doc_11d,doc_192}        session_47d8  
[9]  {doc_364}                session_47e2  
[10] {doc_ec}                 session_47e7  

Eupb已经被转化成了事务集,到此,我们就已经做好数据的准备。

2.3建模

数据准备好之后,就进入整个流程中最重要也是最核心的建模步骤中了。

#查看数据集统计汇总信息






请到「今天看啥」查看全文