京公网安备 11010802034615号
经营许可证编号:京B2-20210330
数据挖掘案例—药物选择决策支持
针对病人的病情和体质情况,医生往往需要采用不同的用药。本案例通过数据挖掘,对医院积累的历史数据进行分析,确定病人选择何种药物对治疗疾病最为有效,并开发了相应的药物选择决策支持系统的应用系统
【案例名称】药物选择决策支持
【案例类型】数据挖掘
【所属行业】医药卫生
【案例版本】1.0
【完成日期】2003年7月2日
【应用软件】Clementine 7.2英文版
【遵循标准】CRISP-DM
【案例数据来源】Clementine 7.2 Demo自带数据
【案例应用模型】神经网络、C5.0、Logistic回归
【案例用途】通过案例实现以下目的:
1、 CRISP-DM的标准流程及在解决具体业务问题过程中的应用;
2、 理解如何提高数据挖掘模型的效果;
3、 理解结果发布的几种方式。
【案例简要描述】
针对病人的病情和体质情况,医生往往需要采用不同的用药。本案例通过数据挖掘,对医院积累的历史数据进行分析,确定病人选择何种药物对治疗疾病最为有效。并开发了相应的药物选择决策支持系统的应用系统。
案例正文
【背景介绍】
XX病是一种常见的疾病,目前有5种药物可以对其治疗,分别是——A、B、C、X、Y。不同的药物对病人有不同的疗效。历史上,医院往往根据医生的经验去判断针对特定的病人应该选择何种药物。但是由于新医生的加入,这种仅仅靠经验判断的做法造成了很多误诊。
该医院有比较完善的病例留存,为了改变以上局面,也为了更好的利用历史数据和专家经验,该医院决定通过数据挖掘技术对历史数据进行分析研究,并期望能够建立一套有效的药物选择决策支持系统。
【数据说明】
目前有历史病例数据1200条,咨询专家意见,我们提取了其中影响选择药物的若干个变量记入数据库,它们是年龄、性别、血压、胆固醇含量、钠含量、钾含量,最后一个变量是我们需要确定的选择药物,数据存贮在Microsoft Access数据库中。
【数据挖掘过程】
1、 商业理解
在这个阶段我们主要需要描述清楚业务问题,并对我们手头拥有的资源有一个非常清晰的认识。在这个案例中,我们需要根据病人的个人情况和身体特征来确定何种药物对它最为合适。由于问题比较简单,我们的商业理解也比较简单。
2、 数据理解
数据理解阶段用来完成对数据质量、数据之间的基本关系进行探索性分析等项工作。在这个阶段,我们对历史数据中的1200条数据进行图形观察,初步观察病人的情况和身体特征是否与选择药物关系明显。数据流图见图1。
图1:数据理解
下面是产生的一些典型图形,图形解释略。
图2:对数据的初步探索性分析
3、 数据准备
数据准备主要完成对不同的数据源的整合,并且对数据进行适当的变换,使之适合数据挖掘的需要,对于特定的模型,需要把原始数据集合拆分成训练数据集和检验数据集也在这个步骤中完成。
对于本案例来说,由于数据源只有一个,并且数据格式也相对单一简单,我们在数据准备中主要完成对原始数据集的拆分,从而用训练数据集建立模型,用检验数据集对模型的效果进行评估。
在Clementine中,对数据集的拆分,是通过引入一个中间变量来完成的。在本案例中,我们把全部1200条数据中的2/3左右(800左右)作为训练数据集,把1/3左右(400左右)作为检验数据集。我们引入了一个二分变量——拆分变量,这个二分变量对应1200条原始数据有2/3左右为“真”(T),1/3左右为“假”(F)。我们挑出那些拆分变量值取“真”(T)的记录作为训练数据集,那些拆分变量值取“假”(F)的记录作为检验数据集。实现该过程的数据流见图3。
图3:数据准备
4、 模型建立和评估
在模型建立阶段,我们将逐步建立和调整模型,并对如何提高模型的预测效果进行尝试。
(1) 建立最简单的模型。对于训练数据集,我们首先把病人的年龄、性别、血压、胆固醇含量、钠含量、钾含量等不经过任何处理,全部作为预测选择药物的输入变量,而把选择药物作为待预测变量(输出变量)。数据流图见图4,我们建立了神经网络、C5.0和Logistic回归三个模型。
图4:药物选择决策支持模型1
接下来我们用检验数据集对模型进行检验,数据流图见图5。模型检验结果见图6。从检验结果我们可以看出,Logistic模型的评估效果最好,达到了96.21%。
图5:药物选择决策支持模型1检验
图6:药物选择决策支持模型1检验结果
讨论——如何提高模型的效果:从模型检验中我们可以看出,三个模型中可能有不一致的情况,这就使得我们有一种思路,即我们在发布模型的时候,可以考虑把那些三个模型预测一致的才作为预测,而把三者预测不一致的作为待判记录随后进行深入的分析,这样我们就使得模型的精度提高到了98.29%,但是作为牺牲,我们也会约有12%左右的病人是无法判断的,需要我们对记录做进一步的研究。
(2) 为了更好的建立和调整模型,我们对业务进行深入了解,引入医生的业务经验。根据医生对医学理论的讨论和过去实践经验的积累,他们认为人体中的钠含量和钾含量对病人选择何种药物的作用并不是特别明显,但是他们的比例却是影响选择何种药物的一个关键因素,所以在我们下面建立的模型中,我们生成新变量——钠钾比例,而剔除钠含量和钾含量两个变量。数据流图见图7,模型我们仍旧采用神经网络,C5.0和Logistic回归三种模型。
图7:药物选择决策支持模型2
类似(1),我们对模型效果进行检验,检验数据流和检验结果分别如图8和图9所示。
图8:药物选择决策支持模型2检验
图9:药物选择决策支持模型2检验结果
从结果中,我们可以看出,随着我们业务经验的引入,我们的模型效果有了显著的提高,并且我们选择模型也发生了变化。精度由原来的Logistic回归最优96.21%提高到了C5.0最优99.75%。
5、 模型发布
模型建立是为了应用,我们前面的全部工作都在于我们建立的模型能够被最终的业务人员所使用,假设我们由以下10个病人的资料数据,需要根据他们的情况判断使用什么药物最好。
表1:病人资料
该病人资料也被我们存放在Access数据库中。我们可以考虑以下三种方式对我们的模型进行发布供业务人员(医生)使用。
(1) 直接写报告的方式,通过HTML展示。数据流图10,结果展示实际效果如图11。
图10:模型发布数据流1
图11:报告方式发布结果示例
(2) 把选择药物直接写回数据库。数据流如图12,结果大致情形如图13。
图12:模型发布数据流2
图13:模型发布—把结果写回数据库
(3) 通过Clementine Solution Publisher结合Visual C++开发应用系统界面,业务人员(医生)可以直接输入病人资料,实时的得到药物推荐。发布数据流见图14,系统界面如图15。
图14:模型发布数据流3
图15:模型发布——开发应用系统
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
CDA数据分析师 出品 作者:李诗怡 1. 销售漏斗阶段判断 题目:销售漏斗模型中,通过广告、社交媒体等方式触达品牌信息(如浏览品 ...
2026-09-07在Python数据分析中,Pandas库的DataFrame是最核心、最常用的结构化数据表对象,类似于Excel的二维表格,具备规整的行列结构、字 ...
2026-09-07在数据分析、经营复盘、业绩预测与经济统计工作中,平均增速(平均增长率)是衡量数据长期变化趋势、业务发展快慢的核心指标。不 ...
2026-09-07 很多数据分析师精通Excel单元格操作,但当被问到“表结构数据的基本处理单位是什么”“字段和记录的本质区别”“为什么表结 ...
2026-09-07随着大数据技术的快速发展,商业竞争逐步从传统的经验式经营转变为数据驱动的精细化运营。海量的用户行为数据、交易数据、运营数 ...
2026-09-04CDA数据分析师 出品 作者:李诗怡 1. 波士顿矩阵(BCG Matrix) 定义: BCG于1970年提出的业务组合分析工具,以"市场增长率"(纵 ...
2026-09-04 数据分析师八成以上的时间在和数据表格打交道,但许多人拿到Excel后习惯性地先算、先分析,结果回头发现漏了一列关键数据, ...
2026-09-04数据透视表是Excel与Power BI中最核心的数据分析工具,具备快速汇总、维度拆分、动态筛选的能力,可高效完成数据归类与统计展示 ...
2026-09-03在Power BI数据分析可视化场景中,堆积柱状图+折线图是最常用的复合图表组合。堆积柱状图适合展示各细分维度当期数值、结构占比 ...
2026-09-03 很多数据分析师每天与Excel打交道,但当被问到“表格结构数据的基本处理单位是什么”“数据类型误判会引发哪些分析错误”“ ...
2026-09-03CDA数据分析师 出品 作者:李诗怡 一、8个核心数据清洗函数 1. TRIM:一键清除多余空格(最常用) 作用:仅保留文本中"单词/字 ...
2026-09-02数据分析的核心并非单纯操作工具、整理报表或绘制图表,而是依靠科学的思维逻辑挖掘数据价值、解释业务现象、指导经营决策。在完 ...
2026-09-02在社会经济、产业研究、区域治理与大数据实证分析中,面板数据是最具研究价值的数据类型。面板数据同时包含截面维度与时间维度信 ...
2026-09-02 很多数据分析师能熟练计算均值、标准差,但当被问到“如何用一张图让业务方3秒内看懂核心结论”“面对不同数据类型该怎么选 ...
2026-09-02在数据驱动决策的体系中,数据分析按照分析目的可分为描述性分析、诊断性分析、预测性分析与指导性分析四大类型。其中,诊断性分 ...
2026-09-01网络请求是Python爬虫开发、接口测试、数据拉取的核心基础功能,Python生态中主要依靠 urllib 和 requests 两大库实现HTTP请求操 ...
2026-09-01 很多数据分析师面对业务问题时,常常感到“知道要分析,却不知道用什么方法”。其实,数据分析并非无章可循——从三大基础范 ...
2026-09-01在数据库设计与业务数据维护中,自增ID是数据表最常用的主键字段,用于唯一标识每一条业务数据,正常状态下ID应保持连续递增。但 ...
2026-08-31在数理统计、数据分析、经济测算与日常量化评估中,平均值是刻画数据集中趋势、反映整体水平的基础核心指标。在实际应用中,最常 ...
2026-08-31在数据驱动的时代,数据分析早已不是“凭经验、靠感觉”的零散操作,而是一套具备固定逻辑、标准化流程的系统方法——这就是数据 ...
2026-08-31