乐趣区

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

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

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

咱们常说的中药开掘,个别是用药开掘,还有穴位的开掘,次要是想找出一些用药的法则。在西医开掘中,数据的起源比拟宽泛, 有的是通过临床收集用药处方,比方,一个驰名老中医针对某一疾病的用药状况; 有的是通过古籍,现代流传下来的药方; 还有一种状况是在论文数据框里查找专门医治某一疾病的文献,从中找到处方,用来剖析。

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, "tran

查看每个商品的呈现频率

能够看到每个物品呈现的频率,从而判断哪些物品的反对度较高。

关联规定开掘

药对开掘

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

失去频繁规定开掘

inspect(frequent

查看求得的频繁项集

spect(sort(frequentsets,by="suppo

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

建设模型

apriori(dat1,parame

设置反对度为 0.01,置信度为 0.3

summary(rules)# 查看规定 

查看局部规定

查看置信度 反对度和晋升度

可视化

绘制不同规定图形来示意反对度,置信度和晋升度。

通过该图能够看到规定前项和规定后项别离有哪些物品 以及每个物品的反对度大小,反对度越大则圆圈越大。

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

从该图能够看到反对度和置信度的关系,置信度越高晋升度也越高。

从该图能够看到反对度和置信度的关系,晋升度越高置信度也越高。

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

从上图能够看到不同物品之间的关联关系,图中的点越大阐明该物品的反对度越高,色彩越深阐明该物品的晋升度越高。

plot(rules, method="doubledecker")  

查看最高的反对度样本规定

ules::inspect(head(rules

查看最高置信度样本规定

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

失去有价值规定子集

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

依照反对度排序

sort(x,by="support

依照置信度排序

inspect(sort(x,by="confide

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

method="grouped")

组合开掘

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

失去频繁规定开掘

nspect(frequents

观察求得的频繁项集

nspect(sort(frequentsets,by="sup

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

建设模型

apriori(dat1,parameter=list(support=0.24

设置反对度为 0.01,置信度为 0.3。

summary(rules)# 查看规定 

查看局部规定

查看置信度 反对度和晋升度

可视化

从该图能够看到反对度和置信度的关系,晋升度越高置信度也越高。

查看最高的反对度样本规定

查看最高置信度样本规定

查看最高晋升度样本规定

confidence>0.3 & support>0.3 & lift>=1)    #失去有价值规定子集
summary(x)
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 汇合进行数据可视化


最受欢迎的见解

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 例

退出移动版