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

本文主要是介绍R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

我们常说的中药挖掘,一般是用药挖掘,还有穴位的挖掘,主要是想找出一些用药的规律点击文末“阅读原文”获取完整代码数据)。

相关视频

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

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

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

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

中药处方数据

e3d63ef9852efe9a0c459d0c44ddc069.png

读取数据

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

7693bacbbb4509b204380ca24d9888ad.png

转换数据结构

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

476a5e9818fa67a9aa5119bbfbb44c69.png

将数据转换成事务类型

trans2 <- as(a_list, "tran

查看每个商品的出现频率

67f3d8a956cb99b296a36b94b66f659b.png

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

关联规则挖掘

药对挖掘

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

d653f942c21678a123f59b17f79841f8.png

得到频繁规则挖掘

inspect(frequent

a870adfd2c35f66dfb6459b084d5c8b2.png

查看求得的频繁项集

spect(sort(frequentsets,by="suppo

ca2ac80bfba4228f2deec8eebc13df22.png

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

建立模型

apriori(dat1,parame

76855d593db066459915debe73eabcfa.png

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

summary(rules)#查看规则

b09d535ea925e1b909992167ffca2403.png

查看部分规则

6668fbc45e14ce7244161728e896f905.png

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

5a29edf4cbf4313c9a8fb2306558bb21.png

可视化

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

17bedc303a91031ac3e0068e12dabfa3.png

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


点击标题查阅往期内容

ee9233a046830e5720abba1e8a1553ba.jpeg

R语言APRIORI关联规则、K-MEANS均值聚类分析中药专利复方治疗用药规律网络可视化

outside_default.png

左右滑动查看更多

outside_default.png

01

24d4107387d2938b7ef62fc50986ca27.png

02

e931953c6f6285b3c118f084632e40dc.png

03

64de1180d4ddcbf8316a68c672cc30a6.png

04

61c1ad430fecc68adb524623e2081cc7.png

f20b024dc2ae23a388ca942da2cd59bd.png

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

2a01e871e77ede4c1e6a9c24ab0ba432.png

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

ef314670d58d96bf8b7b032ffa220a42.png

faa0238f6b496ec597ea6e66fe4fcbee.png

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

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

59846d3fcee420e701499b1d08fdef89.png

84158b70fbad417403ffa59e7415b16c.png

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

plot(rules, method="doubledecker" )

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

ules::inspect(head(rules

185f41429cd3e8ef9fb95560b0dd6a4c.png

查看最高置信度样本规则

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

15c0903cab174d37d30b4529eb1bd9fc.png

sort(rules, by="lift

aff0a643da643a39c23ade90efab8a49.png

得到有价值规则子集

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

d67ac2937ea3d2a934a5321822d191b4.png

按照支持度排序

sort(x,by="support

e5c366829e6a767c987d60e3b6f3a445.png

按照置信度排序

inspect(sort(x,by="confide

5044d9af74570600923cb08aa6d40c1e.png

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

method="grouped")

dac7ae32f7ee0e0ee25a3882d37162f5.png

组合挖掘

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

28c64c46106dc7af5667bca643a5436b.png

得到频繁规则挖掘

nspect(frequents

a8bf28e0347939cc2f1022edb299e5ab.png

查看求得的频繁项集

nspect(sort(frequentsets,by="sup

58b78f559ae88a24d5b7ebcacf59ed7d.png

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

建立模型

apriori(dat1,parameter=list(support=0.24

8863f831f5a5e319d2cec0aac5f942cb.png

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

summary(rules)#查看规则

0dd40caac20c51821f8a58533d50ef67.png

查看部分规则

e93ccde7ff783ed61996b1a6ae990f93.png

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

51e46d2fe722a18415fefb47b1b7514f.png

可视化

15438fc7c5b37ad5d613e31c511a28df.png

d2114fd6cd94bb73647e94b22f497d04.png

253ece3a0a76b5ff2898acd6b038f55b.png

275a8e3b1ebbe7b1ac6473a17e153138.png

5988be1f940f24f69832b7423e4e1b2a.png

fbd8b8d866e9ccd28755b0235a98f3b1.png

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

57ad48d3072d1ab0a2970ec70bdc782f.png

f0df3d3c6588bca2fb6c7fd4823b78cc.png

c727394b6c00078aeeb33775356f3153.png

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

6bc8ef585d55054dae88cb386d07ba75.png

查看最高置信度样本规则

a7fd19604764f414db94f22eb643adb2.png

查看最高提升度样本规则

4d6f720770bd1199c31f830906d83522.png

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

23161cb9b10e59aaee4d224064ffcdf7.png

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.604743pect(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集合进行数据可视化

aa5130a4a26c93843dcdb3aaf7f1ddd2.png

ee8505f72db3ae8f38decf7f221cfab1.png


8e0b9fa777376373ae882ea72d283231.png

点击文末“阅读原文”

获取全文完整代码数据资料。

本文选自《R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化》。

点击标题查阅往期内容

非线性混合效应 NLME模型对抗哮喘药物茶碱动力学研究

Python面板时间序列数据预测:格兰杰因果关系检验Granger causality test药品销售实例与可视化

R语言用关联规则和聚类模型挖掘处方数据探索药物配伍中的规律

用SPSS Modeler的Web复杂网络对所有腧穴进行关联规则分析

PYTHON在线零售数据关联规则挖掘APRIORI算法数据可视化

R语言关联规则模型(Apriori算法)挖掘杂货店的交易数据与交互可视化

R语言关联挖掘实例(购物篮分析)

python关联规则学习:FP-Growth算法对药品进行“菜篮子”分析

基于R的FP树fp growth 关联数据挖掘技术在煤矿隐患管理

python关联规则学习:FP-Growth算法对药品进行“菜篮子”分析

通过Python中的Apriori算法进行关联规则挖掘

Python中的Apriori关联算法-市场购物篮分析

R语言用关联规则和聚类模型挖掘处方数据探索药物配伍中的规律

在R语言中轻松创建关联网络

python主题建模可视化LDA和T-SNE交互式可视化

R语言时间序列数据指数平滑法分析交互式动态可视化

用R语言制作交互式图表和地图

如何用r语言制作交互可视化报告图表

K-means和层次聚类分析癌细胞系微阵列数据和树状图可视化比较

KMEANS均值聚类和层次聚类:亚洲国家地区生活幸福质量异同可视化分析和选择最佳聚类数

PYTHON实现谱聚类算法和改变聚类簇数结果可视化比较

有限混合模型聚类FMM、广义线性回归模型GLM混合应用分析威士忌市场和研究专利申请数据

R语言多维数据层次聚类散点图矩阵、配对图、平行坐标图、树状图可视化城市宏观经济指标数据

r语言有限正态混合模型EM算法的分层聚类、分类和密度估计及可视化

Python Monte Carlo K-Means聚类实战研究

R语言k-Shape时间序列聚类方法对股票价格时间序列聚类

R语言对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归

R语言谱聚类、K-MEANS聚类分析非线性环状数据比较

R语言实现k-means聚类优化的分层抽样(Stratified Sampling)分析各市镇的人口

R语言聚类有效性:确定最优聚类数分析IRIS鸢尾花数据和可视化

Python、R对小说进行文本挖掘和层次聚类可视化分析案例

R语言k-means聚类、层次聚类、主成分(PCA)降维及可视化分析鸢尾花iris数据集

R语言有限混合模型(FMM,finite mixture model)EM算法聚类分析间歇泉喷发时间

R语言用温度对城市层次聚类、kmean聚类、主成分分析和Voronoi图可视化

R语言k-Shape时间序列聚类方法对股票价格时间序列聚类

R语言中的SOM(自组织映射神经网络)对NBA球员聚类分析

R语言复杂网络分析:聚类(社区检测)和可视化

R语言中的划分聚类模型

基于模型的聚类和R语言中的高斯混合模型

r语言聚类分析:k-means和层次聚类

SAS用K-Means 聚类最优k值的选取和分析

用R语言进行网站评论文本挖掘聚类

基于LDA主题模型聚类的商品评论文本挖掘

R语言鸢尾花iris数据集的层次聚类分析

R语言对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归

R语言聚类算法的应用实例

7713e12c938468cc37e5de19f9f5cf20.png

a21239e7923f5e9f876e3207448dc73f.jpeg

be8fe5f9fdd727cfa9824e9df8d0e6fc.png

这篇关于R语言Apriori算法关联规则对中药用药复方配伍规律药方挖掘可视化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/408307

相关文章

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

C语言实现两个变量值交换的三种方式

《C语言实现两个变量值交换的三种方式》两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的交换方式,其中第一种方式是最常用也是最实用的,后两种方式一般只在特殊限制下使用,需要的朋友可以参考下... 目录1.使用临时变量(推荐)2.相加和相减的方式(值较大时可能丢失数据)3.按位异或运算1.使用临时

使用C语言实现交换整数的奇数位和偶数位

《使用C语言实现交换整数的奇数位和偶数位》在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使... 目录一、问题描述二、解决思路三、函数实现四、宏实现五、总结一、问题描述使用C语言代码实现:将一个整

使用Folium在Python中进行地图可视化的操作指南

《使用Folium在Python中进行地图可视化的操作指南》在数据分析和可视化领域,地图可视化是一项非常重要的技能,它能够帮助我们更直观地理解和展示地理空间数据,Folium是一个基于Python的地... 目录引言一、Folium简介与安装1. Folium简介2. 安装Folium二、基础使用1. 创建

C语言字符函数和字符串函数示例详解

《C语言字符函数和字符串函数示例详解》本文详细介绍了C语言中字符分类函数、字符转换函数及字符串操作函数的使用方法,并通过示例代码展示了如何实现这些功能,通过这些内容,读者可以深入理解并掌握C语言中的字... 目录一、字符分类函数二、字符转换函数三、strlen的使用和模拟实现3.1strlen函数3.2st

Go语言中最便捷的http请求包resty的使用详解

《Go语言中最便捷的http请求包resty的使用详解》go语言虽然自身就有net/http包,但是说实话用起来没那么好用,resty包是go语言中一个非常受欢迎的http请求处理包,下面我们一起来学... 目录安装一、一个简单的get二、带查询参数三、设置请求头、body四、设置表单数据五、处理响应六、超