R语言中的Apriori关联规则的使用
1.下载Matrix和arules包
install.packages(c("Matrix","arules"))
2.载入引入Matrix和arules包
# 引入Matrix和arules包
library(Matrix)
library(arules)
3.读取数据
# 读入数据
dataset <- mysql_find(sql)
4.数据转换
# 将数据框转为矩阵
dataset2 <- as.matrix(dataset)
# 转换为交易流数据transactions
dataset2.class<-as(dataset2,"transactions")
5.调用apriori算法
rules<-apriori(dataset2.class,parameter=list(supp=0.7,conf=0.8,target="rules"))
# 指定前导为item1
rules<-apriori(dataset2.class,parameter=list(supp=supp,conf=conf,target="rules"),appearance= list(rhs="item1",default="lhs"))
6.将结果保存
# 写入
write.table(inspect(rules), file = paste("app/save/aprio/",filename,".txt",sep =""), col.names = F, row.names = F, quote=F)
封装AprioriHelper.R类
# 引入Matrix和arules库
library(Matrix)
library(arules) # 引入脚本文件
source('Helper/mysql_helper.R', encoding = 'UTF-8') # 构建aprio函数
aprio <- function(sql,supp,conf,filename){ # 读入数据
dataset <- mysql_find(sql)[,:] # 修改列名
names(dataset) <- c("item1", "item2", "item3", "item4", "item5", "item6", "item7", "item8", "item9", "item10", "item11", "item12", "item13", "item14", "item15") # 将数据框转为矩阵
dataset2 <- as.matrix(dataset) # 转换为交易流数据transactions
dataset2.class<-as(dataset2,"transactions") # 调用apriori算法
if(filename=="all"){
rules<-apriori(dataset2.class,parameter=list(supp=supp,conf=conf,target="rules"))
}else{
rules<-apriori(dataset2.class,parameter=list(supp=supp,conf=conf,target="rules"),appearance= list(rhs="item1",default="lhs"))
} # 写入
write.table(inspect(rules), file = paste("app/save/aprio/",filename,".txt",sep =""), col.names = F, row.names = F, quote=F) }
R语言中的Apriori关联规则的使用的更多相关文章
- 掌握R语言中的apply函数族(转)
转自:http://blog.fens.me/r-apply/ 前言 刚开始接触R语言时,会听到各种的R语言使用技巧,其中最重要的一条就是不要用循环,效率特别低,要用向量计算代替循环计算. 那么,这是 ...
- R语言中的factor
对于初学者来说,R语言中的factor有些难以理解.如果直译factor为“因子”,使得其更加难以理解.我倾向于不要翻译,就称其为factor,然后从几个例子中理解: <span style=& ...
- R语言中apply函数
前言 刚开始接触R语言时,会听到各种的R语言使用技巧,其中最重要的一条就是不要用循环,效率特别低,要用向量计算代替循环计算. 那么,这是为什么呢?原因在于R的循环操作for和while,都是基于R语言 ...
- R语言中的MySQL操作
R语言中,针对MySQL数据库的操作执行其实也有很多中方式.本人觉得,熟练掌握一种便可,下面主要就个人的学习使用情况,总结其中一种情况-----使用RMySQL操作数据库. 1.下载DBI和RMySQ ...
- R语言中 fitted()和predict()的区别
fitted是拟合值,predict是预测值.模型是基于给定样本的值建立的,在这些给定样本上做预测就是拟合.在新样本上做预测就是预测. 你可以找一组数据试试,结果如何. fit<-lm(weig ...
- R语言中Fisher判别的使用方法
最近编写了Fisher判别的相关代码时,需要与已有软件比照结果以确定自己代码的正确性,于是找到了安装方便且免费的R.这里把R中进行Fisher判别的方法记录下来. 1. 判别分析与Fisher判别 不 ...
- R 语言中 data table 的相关,内存高效的 增量式 data frame
面对的是这样一个问题,不断读入一行一行数据,append到data frame上,如果用dataframe, rbind() ,可以发现数据大的时候效率明显变低. 原因是 每次bind 都是一次重新 ...
- rugarch包与R语言中的garch族模型
来源:http://www.dataguru.cn/article-794-1.html rugarch包是R中用来拟合和检验garch模型的一个包.该包最早在http://rgarch.r-forg ...
- 关于R语言中set.seed()
在r中取sample时候,经常会有set.seed(某数),经常看见取值很大,其实这里无论括号里取值是多少,想要上下两次取值一样,都需要在每次取值前输入同样的set.seed(某数),才能保证两次取值 ...
随机推荐
- [svc]sudo su权限案例
一 控制sudo 允许执行所有命令,排除某几个命令(带参数) lanny ALL=(ALL) NOPASSWD:ALL, !/bin/su - root, !/usr/sbin/visudo 如果需要 ...
- dbrd 8.4.6 源代码编译安装
---------------------------- 0.系统环境 ---------------------------- db01 192.168.50.10 /dev/sdb1 主节点 db ...
- struts2拦截器的实现原理及源码剖析
拦截器(interceptor)是Struts2最强大的特性之一,也可以说是struts2的核心,拦截器可以让你在Action和result被执行之前或之后进行一些处理.同时,拦截器也可以让你将通用的 ...
- iOS应用安全防护框架概述
iOS应用安全防护框架概述 攻易防难,唯有缜密.多层的防护网络才能可靠的保护我们iOS应用程序的安全.那么,一个完善的iOS应用安全防护框架都要写哪些东西呢? 首先,先梳理一下常见的逆向及攻击工具. ...
- web.py+fastcgi+nginx 502错误解决
用web.py照着官网在服务器上搭好了后台.这次很奇怪地出现了一个Nginx 502 Bad Gateway的错误. 执行上面的kill `pgrep -f "python /path/to ...
- lua文件读写
lua里的文件读写模型来自C语言,分为完整模型(和C一样).简单模型. 1.简单模型 io.input([file]) 设置默认的输入文件,file为文件名(此时会以文本读入)或文件句柄(可以理解为 ...
- Easyui Datagrid相同连续列合并扩展(二)
JS: //合并相同数据的单元格 function MergeCells(seletor, rows, fields) { if(rows == null || rows.length == 0 || ...
- mysql -- 创建存储过程 往数据表中新增字段
需求: 往某数据库的某个表中新增一个字段(若该字段已存在,则不做操作:若该字段不存在,则新增) 百度了n久,没有符合要求的例子,只有参考加自己琢磨,最终终于给弄出来了,以下是几个版本的更迭 第一版: ...
- 【BZOJ】1649: [Usaco2006 Dec]Cow Roller Coaster(dp)
http://www.lydsy.com/JudgeOnline/problem.php?id=1649 又是题解... 设f[i][j]表示费用i长度j得到的最大乐趣 f[i][end[a]]=ma ...
- TCP通信服务端及客户端代码
Java TCP通信使用的是Socket(客服端)和ServerSocket(服务端),具体代码如下. server端代码: import java.io.BufferedReader; import ...