R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

算法云翼客
• 阅读 437

全文链接:http://tecdat.cn/?p=32316

原文出处:拓端数据部落公众号

我们常说的中药挖掘,一般是用药挖掘,还有穴位的挖掘,主要是想找出一些用药的规律。在中医挖掘中,数据的来源比较广泛,有的是通过临床收集用药处方,比如,一个著名老中医针对某一疾病的用药情况;有的是通过古籍,古代流传下来的药方;还有一种情况是在论文数据框里查找专门治疗某一疾病的文献,从中找到处方,用来分析。

Apriori算法是一种最有影响的挖掘关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则,Apriori 算法采用了逐层搜索的迭代的方法,算法简单明了,没有复杂的理论推导,也易于实现。

由于Apriori算法的特性,十分适合中药处方、膏方、方剂的挖掘,甚至于穴位的挖掘。

本文帮助客户得出不同处方的药物组合和频率,挖掘出药方内在的规律。

中药处方数据

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

读取数据

a_df3=read.xlsx("挖掘用.xlsx",startRow=0, colNames = F)

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

转换数据结构

a_list=list(0)  
for(i in 1:nrow(a_df3)){  
   
   
##删除事务中的重复项目
 a_list[[i]]= unique(strsplit(a_df3[i,],",")[[1]])

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

将数据转换成事务类型

trans2 <- as(a_list, "tran

查看每个商品的出现频率

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

可以看到每个物品出现的频率,从而判断哪些物品的支持度较高。

关联规则挖掘

药对挖掘

at(dat1,parameter=list(support=0.3,minlen=2,maxle

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

得到频繁规则挖掘

inspect(frequent

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

查看求得的频繁项集

spect(sort(frequentsets,by="suppo

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

根据支持度对求得的频繁项集排序并查看(等价于inspect(sort(frequentsets)[1:10])。

建立模型

apriori(dat1,parame

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

设置支持度为0.01,置信度为0.3

summary(rules)#查看规则

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

查看部分规则

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

查看置信度 支持度和提升度

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

可视化

绘制不同规则图形来表示支持度,置信度和提升度。

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

通过该图可以看到规则前项和规则后项分别有哪些物品 以及每个物品的支持度大小,支持度越大则圆圈越大。

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

ules, method = NULL,  
     measure = "support", shading = "lift", int

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

从该图可以看到支持度和置信度的关系,置信度越高提升度也越高。

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

从该图可以看到支持度和置信度的关系,提升度越高置信度也越高。

ules, method="matrix3D", measure="lift

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

从上图可以看到不同物品之间的关联关系,图中的点越大说明该物品的支持度越高,颜色越深说明该物品的提升度越高。

plot(rules, method="doubledecker" )  

查看最高的支持度样本规则

ules::inspect(head(rules

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

查看最高置信度样本规则

sort(rules, by="confidenc
nspect(head(rules

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

sort(rules, by="lift

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

得到有价值规则子集

rules,subset=confidence>0.3 & support>0.2 & lift>=1
summary(x)

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

按照支持度排序

sort(x,by="support

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

按照置信度排序

inspect(sort(x,by="confide

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

对有价值的x集合进行数据可视化。

method="grouped")

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

组合挖掘

at(dat1,parameter=list(support=0.22,minlen=3,maxle

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

得到频繁规则挖掘

nspect(frequents

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

察看求得的频繁项集

nspect(sort(frequentsets,by="sup

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

根据支持度对求得的频繁项集排序并查看(等价于inspect(sort(frequentsets)[1:10])

建立模型

apriori(dat1,parameter=list(support=0.24

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

设置支持度为0.01,置信度为0.3。

summary(rules)#查看规则

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

查看部分规则

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

查看置信度 支持度和提升度

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

可视化

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

从该图可以看到支持度和置信度的关系,提升度越高置信度也越高。

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

查看最高的支持度样本规则

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

查看最高置信度样本规则

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

查看最高提升度样本规则

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

confidence>0.3 & support>0.3 & lift>=1)    #得到有价值规则子集
summary(x)

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

aspect(sort(x,by="support"))    #按照支持度排序

##    lhs            rhs    support   confidence lift     
## 45 {川芎,黄芪} => {地龙} 0.3189655 0.7872340  1.602090  
## 43 {地龙,黄芪} => {川芎} 0.3189655 0.9024390  1.586105  
## 44 {川芎,地龙} => {黄芪} 0.3189655 0.8043478  1.481021  
## 42 {川芎,黄芪} => {当归} 0.3103448 0.7659574  1.615474  
## 41 {川芎,当归} => {黄芪} 0.3103448 0.8181818  1.506494  
## 40 {当归,黄芪} => {川芎} 0.3103448 0.8571429  1.506494  
## 37 {当归,地龙} => {川芎} 0.3017241 0.9210526  1.618820  
## 38 {川芎,当归} => {地龙} 0.3017241 0.7954545  1.618820  
## 39 {川芎,地龙} => {当归} 0.3017241 0.7608696  1.604743

pect(sort(x,by="confidence"))    #按照置信度排序

##    lhs            rhs    support   confidence lift     
## 37 {当归,地龙} => {川芎} 0.3017241 0.9210526  1.618820  
## 43 {地龙,黄芪} => {川芎} 0.3189655 0.9024390  1.586105  
## 40 {当归,黄芪} => {川芎} 0.3103448 0.8571429  1.506494  
## 41 {川芎,当归} => {黄芪} 0.3103448 0.8181818  1.506494  
## 44 {川芎,地龙} => {黄芪} 0.3189655 0.8043478  1.481021  
## 38 {川芎,当归} => {地龙} 0.3017241 0.7954545  1.618820  
## 45 {川芎,黄芪} => {地龙} 0.3189655 0.7872340  1.602090  
## 42 {川芎,黄芪} => {当归} 0.3103448 0.7659574  1.615474  
## 39 {川芎,地龙} => {当归} 0.3017241 0.7608696  1.604743

对有价值的x集合进行数据可视化

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据

R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据


R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据
最受欢迎的见解

1.[](http://tecdat.cn/r%e8%af%ad%e8%a8%80%e7%bb%98%e5%88%b6%e7%94%...)Python中的Apriori关联算法-市场购物篮分析

2.[](http://tecdat.cn/r%e8%af%ad%e8%a8%80%e7%94%9f%e5%ad%98%e5%88%...)[](http://tecdat.cn/%e9%80%9a%e8%bf%87%e5%85%b3%e8%81%94%e8%a7%8...)R语言绘制生存曲线估计|生存分析|如何R作生存曲线图

3.[](http://tecdat.cn/r%e8%af%ad%e8%a8%80%e5%a6%82%e4%bd%95%e5%9c%...)[](http://tecdat.cn/%e5%9f%ba%e4%ba%8er%e7%9a%84fp%e6%a0%91fp-gr...)用关联规则数据挖掘探索药物配伍中的规律

4.[](http://tecdat.cn/r%e8%af%ad%e8%a8%80%e4%b8%ad%e4%bd%bf%e7%94%...)通过Python中的Apriori算法进行关联规则挖掘

5.[](http://tecdat.cn/r%e8%af%ad%e8%a8%80%e7%94%9f%e5%ad%98%e5%88%...)用关联规则数据挖掘探索药物配伍中的规律

6.[](http://tecdat.cn/r%e8%af%ad%e8%a8%80ggplot2%e8%af%af%e5%b7%ae...)采用SPSS Modeler的Web复杂网络对所有腧穴进行分析

7.[](http://tecdat.cn/r-%e8%af%ad%e8%a8%80%e7%bb%98%e5%88%b6%e5%8a...)R语言如何在生存分析与COX回归中计算IDI,NRI指标

8.R语言如何找到患者数据中具有差异的指标?(PLS—DA分析)

9.R语言中的生存分析Survival analysis晚期肺癌患者4例

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
3年前
PPDB:今晚老齐直播
【今晚老齐直播】今晚(本周三晚)20:0021:00小白开始“用”飞桨(https://www.oschina.net/action/visit/ad?id1185)由PPDE(飞桨(https://www.oschina.net/action/visit/ad?id1185)开发者专家计划)成员老齐,为深度学习小白指点迷津。
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
PhoneGap设置Icon
参考:http://cordova.apache.org/docs/en/latest/config\_ref/images.html通过config.xml中的<icon标签来设置Icon<iconsrc"res/ios/icon.png"platform"ios"width"57"height"57"densi
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
算法云翼客
算法云翼客
Lv1
纵然万劫不复纵然相思入骨我也待你眉眼如初岁月如故.
文章
4
粉丝
0
获赞
0