数据挖掘案例—药物选择决策支持
【案例简要描述】
针对病人的病情和体质情况,医生往往需要采用不同的用药。本案例通过数据挖掘,对医院积累的历史数据进行分析,确定病人选择何种药物对治疗疾病最为有效。并开发了相应的药物选择决策支持系统的应用系统。
【背景介绍】
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:病人资料
年龄 | 性别 | 血压 | 胆固醇 | 钠含量 | 钾含量 |
25 |
F | HIGH | HIGH |
0.675996 |
0.074834 |
17 |
F | HIGH | HIGH |
0.539756 |
0.030081 |
23 |
M | LOW | NORMAL |
0.556453 |
0.03618 |
24 |
M | NORMAL | NORMAL |
0.845236 |
0.055498 |
74 |
F | LOW | HIGH |
0.849624 |
0.076902 |
40 |
F | NORMAL | HIGH |
0.67683 |
0.049634 |
32 |
F | HIGH | HIGH |
0.581664 |
0.024803 |
70 |
M | LOW | HIGH |
0.716359 |
0.036936 |
64 |
M | HIGH | NORMAL |
0.640789 |
0.078302 |
45 |
M | HIGH | HIGH |
0.664105 |
0.047819 |
该病人资料也被我们存放在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:模型发布——开发应用系统
数据分析咨询请扫描二维码
《Python数据分析极简入门》 第2节 4 Pandas条件查询 在pandas中,可以使用条件筛选来选择满足特定条件的数据 importpanda ...
2024-11-22数据分析师的工作内容涉及多个方面,主要包括数据的收集、整理、分析和可视化,以支持商业决策和问题解决。以下是数据分析师的一 ...
2024-11-21数据分析师必须掌握的技能可以从多个方面进行归纳和总结。以下是数据分析师需要具备的主要技能: 统计学基础:数据分析师需要 ...
2024-11-21数据分析入门的难易程度因人而异,总体来看,入门并不算特别困难,但需要一定的学习和实践积累。 入门难度:数据分析入门相对 ...
2024-11-21数据分析是一项通过收集、整理和解释数据来发现有用信息的过程,它在现代社会中具有广泛的应用和重要性。数据分析能够帮助人们更 ...
2024-11-21数据分析行业正在迅速发展,随着技术的不断进步和数据量的爆炸式增长,企业对数据分析人才的需求也与日俱增。本文将探讨数据分析 ...
2024-11-21数据分析的常用方法包括多种技术,每种方法都有其特定的应用场景和优势。以下是几种常见的数据分析方法: 对比分析法:通过比 ...
2024-11-21企业数字化转型是指企业利用数字技术对其业务进行改造和升级,以实现提高效率、降低成本、创新业务模式等目标的过程。这一过程不 ...
2024-11-21数据分析作为一个备受追捧的职业领域,吸引着越来越多的女性加入其中。对于女生而言,在选择成为一名数据分析师时,行业选择至关 ...
2024-11-21大数据技术专业主要学习计算机科学、数学、统计学和信息技术等领域的基础理论和技能,旨在培养具备大数据处理、分析和应用能力的 ...
2024-11-21《Python数据分析极简入门》 第2节 3 Pandas数据查看 这里我们创建一个DataFrame命名为df: importnumpyasnpi ...
2024-11-21越老越吃香的行业主要集中在需要长时间经验积累和专业知识的领域。这些行业通常知识更新换代较慢,因此随着年龄的增长,从业者能 ...
2024-11-20数据导入 使用pandas库的read_csv()函数读取CSV文件或使用read_excel()函数读取Excel文件。 支持处理不同格式数据,可指定分隔 ...
2024-11-20大数据与会计专业是一门结合了大数据分析技术和会计财务理论知识的新型复合型学科,旨在培养能够适应现代会计业务新特征的高层次 ...
2024-11-20要成为一名数据分析师,需要掌握一系列硬技能和软技能。以下是成为数据分析师所需的关键技能: 统计学基础 理解基本的统计概念 ...
2024-11-20是的,Python可以用于数据分析。Python在数据分析领域非常流行,因为它拥有丰富的库和工具,能够高效地处理从数据清洗到可视化的 ...
2024-11-20在这个数据驱动的时代,数据分析师的角色变得愈发不可或缺。他们承担着帮助企业从数据中提取有价值信息的责任,而这些信息可以大 ...
2024-11-20数据分析作为现代信息时代的支柱之一,已经成为各行业不可或缺的工具。无论是在商业、科研还是日常决策中,数据分析都扮演着至关 ...
2024-11-20数字化转型已成为当今商业世界的热点话题。它不仅代表着技术的提升,还涉及企业业务流程、组织结构和文化的深层次变革。理解数字 ...
2024-11-20在现代社会的快速变迁中,选择一个具有长期增长潜力的行业显得至关重要。了解未来发展前景好的行业不仅能帮助我们进行职业选择, ...
2024-11-20