R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据
创作时间:
作者:
@小白创作中心
R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化|附代码数据
引用
51CTO
1.
https://blog.51cto.com/u_14293657/8384858
我们常说的中药挖掘,一般是用药挖掘,还有穴位的挖掘,主要是想找出一些用药的规律。在中医挖掘中,数据的来源比较广泛,有的是通过临床收集用药处方,比如,一个著名老中医针对某一疾病的用药情况;有的是通过古籍,古代流传下来的药方;还有一种情况是在论文数据框里查找专门治疗某一疾病的文献,从中找到处方,用来分析。
Apriori算法是一种最有影响的挖掘关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则,Apriori 算法采用了逐层搜索的迭代的方法,算法简单明了,没有复杂的理论推导,也易于实现。
由于Apriori算法的特性,十分适合中药处方、膏方、方剂的挖掘,甚至于穴位的挖掘。
本文帮助客户得出不同处方的药物组合和频率,挖掘出药方内在的规律。
中药处方数据
读取数据
a_df3=read.xlsx("挖掘用.xlsx",startRow=0, colNames = F)
转换数据结构
a_list=list(0)
for(i in 1:nrow(a_df3)){
a_list[[i]]= unique(strsplit(a_df3[i,],",")[[1]])
}
将数据转换成事务类型
trans2 <- as(a_list, "transactions")
查看每个商品的出现频率
可以看到每个物品出现的频率,从而判断哪些物品的支持度较高。
关联规则挖掘
药对挖掘
dat1 <- as(a_list, "transactions")
frequentsets <- apriori(dat1, parameter=list(support=0.3,minlen=2,maxlen=2))
得到频繁规则挖掘
inspect(frequentsets)
查看求得的频繁项集
inspect(sort(frequentsets,by="support"))
根据支持度对求得的频繁项集排序并查看(等价于inspect(sort(frequentsets)[1:10])。
建立模型
rules <- apriori(dat1,parameter=list(support=0.01,confidence=0.3))
设置支持度为0.01,置信度为0.3
summary(rules) #查看规则
查看部分规则
查看置信度 支持度和提升度
可视化
绘制不同规则图形来表示支持度,置信度和提升度。通过该图可以看到规则前项和规则后项分别有哪些物品 以及每个物品的支持度大小,支持度越大则圆圈越大。
plot(rules, method = NULL, measure = "support", shading = "lift", interactive = TRUE)
从该图可以看到支持度和置信度的关系,置信度越高提升度也越高。从该图可以看到支持度和置信度的关系,提升度越高置信度也越高。
plot(rules, method="matrix3D", measure="lift")
从上图可以看到不同物品之间的关联关系,图中的点越大说明该物品的支持度越高,颜色越深说明该物品的提升度越高。
plot(rules, method="doubledecker" )
查看最高的支持度样本规则
inspect(head(sort(rules, by="support")))
查看最高置信度样本规则
inspect(head(sort(rules, by="confidence")))
查看最高提升度样本规则
inspect(head(sort(rules, by="lift")))
得到有价值规则子集
x <- subset(rules, subset=confidence>0.3 & support>0.2 & lift>=1)
summary(x)
按照支持度排序
inspect(sort(x,by="support"))
按照置信度排序
inspect(sort(x,by="confidence"))
对有价值的x集合进行数据可视化。
plot(x, method="grouped")
组合挖掘
frequentsets <- apriori(dat1,parameter=list(support=0.22,minlen=3,maxlen=3))
得到频繁规则挖掘
inspect(frequentsets)
察看求得的频繁项集
inspect(sort(frequentsets,by="support"))
根据支持度对求得的频繁项集排序并查看(等价于inspect(sort(frequentsets)[1:10])。
建立模型
rules <- apriori(dat1,parameter=list(support=0.24,confidence=0.3))
设置支持度为0.01,置信度为0.3。
summary(rules) #查看规则
查看部分规则
查看置信度 支持度和提升度
可视化
从该图可以看到支持度和置信度的关系,提升度越高置信度也越高。
查看最高的支持度样本规则
查看最高置信度样本规则
查看最高提升度样本规则
x <- subset(rules, subset=confidence>0.3 & support>0.3 & lift>=1) #得到有价值规则子集
summary(x)
inspect(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
inspect(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集合进行数据可视化
热门推荐
首次公开!侵华日军731部队鼠疫实验最新罪证
科普|喝水能预防肾结石吗?该怎么喝才科学?
镓、锗、锑、超硬材料对美出口管制,上市公司相关储量一览
不爱喝奶的你或许只是被“乳糖不耐”的表象蒙蔽
鱼肚子里的白色东西
瑞典科学家研究发现:盖上厚被子睡觉,有助于改善睡眠质量
揭秘175号导弹驱逐舰:中国海军的新型利器
什么是躯体化症状表现?从身体信号解读心理状态!
抢滩万亿海外市场!中国家具出口TOP3区域揭晓(附避坑指南)
壁挂炉和燃气热水器哪个好?全方位对比分析
梨汤润肺止咳祛肺火:传统食疗方详解
花洒水流小怎么办?8种原因及解决方法全解析
第三方身份证验证系统的优势及应用
如何预防乌龟缺钙?
湘电股份:飞轮储能 “绿” 动羊城
甘草:被誉为“众药之王”的中药,这三大功效让医圣张仲景爱不释手
巴西萨尔瓦多市旅游攻略
一文读懂医学影像检查:B超、CT、增强CT、核磁共振、PET-CT的区别与应用
早上和晚上洗澡,哪个危害更大?为了生命安全,洗澡要做好4点
中美俄三国新舰数量对比:俄罗斯50艘,美国30艘,中国有多少?
从垂发系统看,中国海军战力发展已经开始赶超美军
穿上光、看见光、运用光!丁达尔效应的极致浪漫
小学数学学习中有效利用草稿纸的实践探索
春节档电影票房创历史新高 影视股走势分化折射行业考验
乐山市:四川盆地西南边缘的历史文化名城
治疗手足麻木的中药方子
Qt开发中常用的IDE选择指南
玄参和元参一样吗?玄参和人参的区别
重塑总部职能,东风再创业|大整合
如何健康地饮用咖啡