论文部分内容阅读
摘要:本文以省妇幼保健院历史的住院业务数据为样本,通过数据挖掘的决策树建模方法建立其住院客户的划分模型,得到分类规则,在此基础上将住院客户划分为不同的群体。通过对客户的划分及其特征分析,医院可清楚的了解重点客户并给予重点客户群体以按需要定制的个性化服务,这将极大提升这部分客户的忠诚度和满意度,从而确保医院主流利润和收入来源的长期性和稳定性。
关键词:数据挖掘;决策树;客户划分;建模
中图分类号:TP392 文献标识码:A文章编号:1007-9599 (2011) 16-0000-02
Decision Tree Technology Application in the Clients Division of Hospital
Luo Qiang
(Guangdong Vocational School of Science and Technology,Guangzhou510515,China)
Abstract:The history of the provincial MCH hospital business data as a sample,through data mining decision tree modeling method to build their hospital customers into the model,to get classification rules,on this basis,the customer will be divided into different patient groups.Through the division of customers and characteristics analysis,the hospital can be a clear understanding of key customers and key customer groups to provide customized according to need personalized service,which will greatly enhance this part of the customer loyalty and satisfaction,to ensure the hospital mainstream profits and long-term source of income and stability.
Keywords:Data mining;Decision tree;Customer division;Modeling
一、决策树介绍
决策树(Decision Tree)学习是以实例为基础的归纳学习算法。它着眼于从一组无次序、无规律的事例中推理出决策树表示形成的分类规则。它采用自顶向下的递归方式,在决策树的内部结点进行属性值的比较并根据不同属性值判断从该节点向下的分支,在决策树的叶点得到结论。所以从根到叶结点的一条路径就对应着一条合取规则,整棵决策树就对应着一组析取表达式规则。基于决策树学习算法的一个最大优点就是它在学习过程中不需要使用者了解很多背景知识,只要训练例子能够用属性—结论式的方式表达出来,就能使用该算法来学习。
一棵决策树的内部结点是属性或属性的集合,叶结点是所需要学习划分的类,下面将内结点的属性称为测试属性。当经过一批训练实例集的训练产生一棵决策树,决策树可以根据属性的取值对一个未知实例集进行分类。使用决策树对实例进行分类的时候,由树根开始对该对象的属性逐渐测试其值,并顺着分支向下走,直至到达某个叶结点,此时结点代表的类即为该对象所处的类。
根据决策树的各种不同属性,有以下几种不同的决策树:(1)决策树的内结点的测试属性可能是单变量的,即每个内结点只包含一个属性。也可能是多变量的,即存在包含多个属性的内结点。(2)根据测试属性的不同属性值的个数,可能使得每个内结点有两个或多个分支。如果每个内结点只有两个分支则称之为二叉决策树。(3)每个属性可能是值类型,也可能是枚举类型(二叉决策树既可以被看作是前者,也可以被看作后者)。(4)分类结果既可能是两类,也可能是多类,如果二叉决策树的结果只能有两类则称之为布尔决策树。
二、系统功能结构
该客户关系管理系统主要功能包括客户资料管理、VIP卡管理、随访管理、医患沟通、预约管理、咨询系统和系统维护七大部分。
系统功能结构图如下:
图1:系统功能结构图
(一)住院客户划分模块设计。住院客户划分模块分为两个功能子模块:一个是数据挖掘阶段,利用数据挖掘相关算法建立住院客户划分模块;第二个功能子模块是利用数据挖掘得到的模型对医院住院客户进行划分。两个子模块之间相互联系,相互依从,后一个模块的展开依赖前一模块实现的基础上。
1.住院客户划分模块子模块。该模块是住院客户划分功能的重点所在,它主要完成住院客户划分模块的构建。它的实现主要借助数据挖掘技术中的决策树的相关算法。具体实现过程见流程图。
图2:住院客户划分模型模块流程图
2.住户客户划分子模块。住户客户划分子模块主要是借助住院客户划分模型所得出的划分规则对住院客户进行分类。其实现流程见图3所示。
图3:住院客户划分模块流程图
(二)数据挖掘。本次数据挖掘的主要任务是采用数据挖掘的决策树技术通过分析该院HIS数据库中住院客户的历史数据,从中发现基于价值判断的住院高价值客户、住院一般价值客户和住院低价值客户的基本特征和行为特征,并根据这些特征对医院现有住院客户的价值类型进行判断。
我们选择该院当前全年住院数据,改数据库的DBMS为Oracle8i。改数据库中与本次挖掘任务相关的数据集中于四个表中:zy_t_brjbxx(住院病人基本信息表)、zy_t_zyqk(住院情况表)、zy_t_fp(住院收费发票表)、zy_t_fpfl(住院收费发票分类表)。通过对上述四个表数据进行分析,发现很多对本次挖掘目标没有预测潜力或预测潜力很小的变量,例如:住院病人基本信息中的身份证号码、工作单位及地址、工作电话、单位邮编、联系人姓名等,这些变量应该抛弃。在进行数据选择的过程中可以寻找一些导出新的变量的机会。在这里对数据和客户的了解极为重要。例如本例中,我们有客户的出生日期,这个变量的预测潜力不大,但通过这个变量我们可以容易派生出客户的年龄变量,而客户年龄对于我们的挖掘目标可能有用。又如:通过将四个表的记录进行连接,然后按病人的住院唯一标识(即流水号)进行分组,在每个分组中我们用sum(ZY_T_FPFL.ZJE)可以得到住院消费总金额。
三、住院客户划分建模实验
住院客户划分建模过程在Clementine的易于使用的可视化编程环境下完成,具体包括:
(一)导入数据源。加入Database节点,在数据源对话框中指定数据源的名称及表名。可以此时设定挖掘中使用的数据变量,哪些是输入变量,哪些是输出变量以及变量的属性是区间变量还是分类变量等信息,也可以将来通过其它功能节点完成这些设置。
(二)产生新变量。加入Derive节点,该节点的功能是通过已有变量产生新变量。产生变量的方法由用户通过表达式描述。如果用户不熟悉相关语法,Clementine提供方便的可视化表达式创建对话框帮助用户完成相关操作。前面提到的将年龄字段、住院天数字段的数据进行分组操作就是通过该节点完成的。例如,加入一个Derive节点,指定新变量的变量名为zyts1,输入规则表达式:
If zyts>=0and zyts<=3 then1
Elseifzyts>=4andzyts<=6then 2
Elseifzyts>=7 andzyts<=10 then 3
Eslse 4
endif
就完成了对住院天数字段的数据的分组操作。要产生几个新变量就需要加入几个Derive节点。
(三)数据选择。加入Select节点,该节点用于从数据集中选择指定条件的数据子集。我们在建模时通过条件:
Rysj>=to_datetime(“2010-01-01”)and rysj<=to_datetime(“2010-06-30”)
选择2010年上半年数据作为建模数据集:在对模型进行评估时过过条件:
rysj>=to_datetime(“2010-07-01”)and rysj<=to_datetime(“2010-12-31”)
选择2010年下半年数据作为测试数据集。
(四)数据取样。加入Sample节点,该节点提供的取样方式包括:最初和最后的N个记录、从N个记录中取一个样本和随机取样方式,并制订样本大小为3000条记录。
(五)字段筛选。加入Fiter节点,该节点提供对字段进行筛选并对选出字段重新命名的功能。更具对住院客户的相关信息字段的分析,我们选取如附表一所示字段作为模型的输入变量和输出变量来构建模型。
(六)指定输入变量和输出变量。加入Type节点,指点哪些变量作为建模输入变来那个,哪些作为输出比变量。如附表所示。
(七)决策树建模。加入C5.0建模节点,执行建模过程,通过C5.0算法产生决策树建模模型和规则集。
(八)模型评估。加入Analysis节点,该节点可通过测试数据创建一份报告比较预测模型的精确度。
近年来,随着客户关系管理在各行各业的成功应用,在医疗体制改革不断深入和医疗行业竞争不断激烈的大环境下,客户关系管理变得尤为重要。数据挖掘在医院客户关系管理中的广泛应用也将成为医院客户关系管理发展的必然趋势。本文针对医院住院客户数据,展现了利用决策树技术进行数据挖掘的整个过程,挖掘结果产生的住院客户划分模型对医院经营决策有一定指导价值。
关键词:数据挖掘;决策树;客户划分;建模
中图分类号:TP392 文献标识码:A文章编号:1007-9599 (2011) 16-0000-02
Decision Tree Technology Application in the Clients Division of Hospital
Luo Qiang
(Guangdong Vocational School of Science and Technology,Guangzhou510515,China)
Abstract:The history of the provincial MCH hospital business data as a sample,through data mining decision tree modeling method to build their hospital customers into the model,to get classification rules,on this basis,the customer will be divided into different patient groups.Through the division of customers and characteristics analysis,the hospital can be a clear understanding of key customers and key customer groups to provide customized according to need personalized service,which will greatly enhance this part of the customer loyalty and satisfaction,to ensure the hospital mainstream profits and long-term source of income and stability.
Keywords:Data mining;Decision tree;Customer division;Modeling
一、决策树介绍
决策树(Decision Tree)学习是以实例为基础的归纳学习算法。它着眼于从一组无次序、无规律的事例中推理出决策树表示形成的分类规则。它采用自顶向下的递归方式,在决策树的内部结点进行属性值的比较并根据不同属性值判断从该节点向下的分支,在决策树的叶点得到结论。所以从根到叶结点的一条路径就对应着一条合取规则,整棵决策树就对应着一组析取表达式规则。基于决策树学习算法的一个最大优点就是它在学习过程中不需要使用者了解很多背景知识,只要训练例子能够用属性—结论式的方式表达出来,就能使用该算法来学习。
一棵决策树的内部结点是属性或属性的集合,叶结点是所需要学习划分的类,下面将内结点的属性称为测试属性。当经过一批训练实例集的训练产生一棵决策树,决策树可以根据属性的取值对一个未知实例集进行分类。使用决策树对实例进行分类的时候,由树根开始对该对象的属性逐渐测试其值,并顺着分支向下走,直至到达某个叶结点,此时结点代表的类即为该对象所处的类。
根据决策树的各种不同属性,有以下几种不同的决策树:(1)决策树的内结点的测试属性可能是单变量的,即每个内结点只包含一个属性。也可能是多变量的,即存在包含多个属性的内结点。(2)根据测试属性的不同属性值的个数,可能使得每个内结点有两个或多个分支。如果每个内结点只有两个分支则称之为二叉决策树。(3)每个属性可能是值类型,也可能是枚举类型(二叉决策树既可以被看作是前者,也可以被看作后者)。(4)分类结果既可能是两类,也可能是多类,如果二叉决策树的结果只能有两类则称之为布尔决策树。
二、系统功能结构
该客户关系管理系统主要功能包括客户资料管理、VIP卡管理、随访管理、医患沟通、预约管理、咨询系统和系统维护七大部分。
系统功能结构图如下:
图1:系统功能结构图
(一)住院客户划分模块设计。住院客户划分模块分为两个功能子模块:一个是数据挖掘阶段,利用数据挖掘相关算法建立住院客户划分模块;第二个功能子模块是利用数据挖掘得到的模型对医院住院客户进行划分。两个子模块之间相互联系,相互依从,后一个模块的展开依赖前一模块实现的基础上。
1.住院客户划分模块子模块。该模块是住院客户划分功能的重点所在,它主要完成住院客户划分模块的构建。它的实现主要借助数据挖掘技术中的决策树的相关算法。具体实现过程见流程图。
图2:住院客户划分模型模块流程图
2.住户客户划分子模块。住户客户划分子模块主要是借助住院客户划分模型所得出的划分规则对住院客户进行分类。其实现流程见图3所示。
图3:住院客户划分模块流程图
(二)数据挖掘。本次数据挖掘的主要任务是采用数据挖掘的决策树技术通过分析该院HIS数据库中住院客户的历史数据,从中发现基于价值判断的住院高价值客户、住院一般价值客户和住院低价值客户的基本特征和行为特征,并根据这些特征对医院现有住院客户的价值类型进行判断。
我们选择该院当前全年住院数据,改数据库的DBMS为Oracle8i。改数据库中与本次挖掘任务相关的数据集中于四个表中:zy_t_brjbxx(住院病人基本信息表)、zy_t_zyqk(住院情况表)、zy_t_fp(住院收费发票表)、zy_t_fpfl(住院收费发票分类表)。通过对上述四个表数据进行分析,发现很多对本次挖掘目标没有预测潜力或预测潜力很小的变量,例如:住院病人基本信息中的身份证号码、工作单位及地址、工作电话、单位邮编、联系人姓名等,这些变量应该抛弃。在进行数据选择的过程中可以寻找一些导出新的变量的机会。在这里对数据和客户的了解极为重要。例如本例中,我们有客户的出生日期,这个变量的预测潜力不大,但通过这个变量我们可以容易派生出客户的年龄变量,而客户年龄对于我们的挖掘目标可能有用。又如:通过将四个表的记录进行连接,然后按病人的住院唯一标识(即流水号)进行分组,在每个分组中我们用sum(ZY_T_FPFL.ZJE)可以得到住院消费总金额。
三、住院客户划分建模实验
住院客户划分建模过程在Clementine的易于使用的可视化编程环境下完成,具体包括:
(一)导入数据源。加入Database节点,在数据源对话框中指定数据源的名称及表名。可以此时设定挖掘中使用的数据变量,哪些是输入变量,哪些是输出变量以及变量的属性是区间变量还是分类变量等信息,也可以将来通过其它功能节点完成这些设置。
(二)产生新变量。加入Derive节点,该节点的功能是通过已有变量产生新变量。产生变量的方法由用户通过表达式描述。如果用户不熟悉相关语法,Clementine提供方便的可视化表达式创建对话框帮助用户完成相关操作。前面提到的将年龄字段、住院天数字段的数据进行分组操作就是通过该节点完成的。例如,加入一个Derive节点,指定新变量的变量名为zyts1,输入规则表达式:
If zyts>=0and zyts<=3 then1
Elseifzyts>=4andzyts<=6then 2
Elseifzyts>=7 andzyts<=10 then 3
Eslse 4
endif
就完成了对住院天数字段的数据的分组操作。要产生几个新变量就需要加入几个Derive节点。
(三)数据选择。加入Select节点,该节点用于从数据集中选择指定条件的数据子集。我们在建模时通过条件:
Rysj>=to_datetime(“2010-01-01”)and rysj<=to_datetime(“2010-06-30”)
选择2010年上半年数据作为建模数据集:在对模型进行评估时过过条件:
rysj>=to_datetime(“2010-07-01”)and rysj<=to_datetime(“2010-12-31”)
选择2010年下半年数据作为测试数据集。
(四)数据取样。加入Sample节点,该节点提供的取样方式包括:最初和最后的N个记录、从N个记录中取一个样本和随机取样方式,并制订样本大小为3000条记录。
(五)字段筛选。加入Fiter节点,该节点提供对字段进行筛选并对选出字段重新命名的功能。更具对住院客户的相关信息字段的分析,我们选取如附表一所示字段作为模型的输入变量和输出变量来构建模型。
(六)指定输入变量和输出变量。加入Type节点,指点哪些变量作为建模输入变来那个,哪些作为输出比变量。如附表所示。
(七)决策树建模。加入C5.0建模节点,执行建模过程,通过C5.0算法产生决策树建模模型和规则集。
(八)模型评估。加入Analysis节点,该节点可通过测试数据创建一份报告比较预测模型的精确度。
近年来,随着客户关系管理在各行各业的成功应用,在医疗体制改革不断深入和医疗行业竞争不断激烈的大环境下,客户关系管理变得尤为重要。数据挖掘在医院客户关系管理中的广泛应用也将成为医院客户关系管理发展的必然趋势。本文针对医院住院客户数据,展现了利用决策树技术进行数据挖掘的整个过程,挖掘结果产生的住院客户划分模型对医院经营决策有一定指导价值。