R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据
  MFqKcJmbshKy 2023年11月19日 29 0

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

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

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

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

中药处方数据

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

读取数据

 

 

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

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

转换数据结构

 

 

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

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

将数据转换成事务类型

 

 

trans2 <- as(a_list, "tran

查看每个商品的出现频率

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

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

关联规则挖掘

药对挖掘

 

 

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

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

得到频繁规则挖掘

 

 

inspect(frequent

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

查看求得的频繁项集

 

 

spect(sort(frequentsets,by="suppo

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

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

建立模型

 

 

apriori(dat1,parame

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

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

 

 

summary(rules)#查看规则

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

查看部分规则

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

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

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

可视化

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

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

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

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

 

 

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

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

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

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

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

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

 

 

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

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

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

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

 

 

plot(rules, method="doubledecker" )

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

 

 

ules::inspect(head(rules

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

查看最高置信度样本规则

 

 

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

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

 

 

sort(rules, by="lift

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

得到有价值规则子集

 

 

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

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

按照支持度排序

 

 

sort(x,by="support

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

按照置信度排序

 

 

inspect(sort(x,by="confide

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

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

 

 

method="grouped")

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

组合挖掘

 

 

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

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

得到频繁规则挖掘

 

 

nspect(frequents

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

察看求得的频繁项集

 

 

nspect(sort(frequentsets,by="sup

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

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

建立模型

 

 

apriori(dat1,parameter=list(support=0.24

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

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

 

 

summary(rules)#查看规则

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

查看部分规则

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

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

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

可视化

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

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

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

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

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

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

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

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

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

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

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

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

查看最高置信度样本规则

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

查看最高提升度样本规则

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

 

 

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

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

 

 

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算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据_ide_46

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


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



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月19日 0

暂无评论

推荐阅读
MFqKcJmbshKy