热线电话:13121318867

登录
首页精彩阅读决策树(专家药物模型)操作案例
决策树(专家药物模型)操作案例
2016-12-25
收藏

决策树(专家药物模型)操作案例

依据常用案例专家药物模型使用SmartMining桌面版,以决策树算法为背景,说明大数据如何构建专家诊病模型,以及如何通过可视化探索数据,实现决策树同样的计算结果!案例侧重于大数据思维的形成和可视化探索在数据挖掘中重要作用有所体验。专家预测模型工作流如下:

1)商业目标

业务理解:

该案例所用的数据是一份模拟医生诊病的数据,如下:

在处理一个陌生的业务时,一是直接从业务中学习,二是从数据中学习业务。从图中可以看出,其中,年龄、性别、血压、胆固醇、钠、钾是病人的指标,而药物是医生针对病人的情况开出的药物。

确定业务目标:建立专家诊病系统,当把病人的指标输入到该系统时,系统会自动输出该给此类病人开出的药物。核心关键就是将业务目标转化为数据挖掘目标。

数据挖掘目标:建立专家诊病模型,该模型以病人的病例指标为输入,以药物为目标,建立预测模型,该模型可以根据输入指标的值,计算预测值(药物)。

操作实现:

2)新建工作流

可以点击文件菜单下的“新建”开始创建工作流。点击后会弹出以下向导界面:

输入工作流的名字后即可完成创建:

3)导入数据

此时要根据数据存储文件的格式选择相应的导入节点。在这里由于数据源是CSV文件,因此可以选择CSV导入节点(也可以使用可变文件)。左侧节点库中CSV导入节点拖到右侧的工作流中。双击节点或者右键菜单中选择“配置”,弹出如下配置窗口:

点击<浏览>按钮,选择相应的数据文件。

注意,根据数据表的数据结构进行配置,此数据如图配置即可。配置好之后点击<确认>。

节点下方的预警符号从变为黄色说明配置正确,黄色表示节点可以执行。红色表示节点尚未配置或者配置有误,此时节点不可执行。单击节点,点击右键菜单的或者点击工具栏的,即可执行工作流。执行完成后预警符号变成绿色。

点击右键菜单的文件表可以查询数据。

4)理解数据

使用统计学习菜单下的数据审核可以对数据进行描述,这是建模之前必须要做的工作,一方面是为了设计合理的实施方案,另外一方面也是为了更好的选择合适的算法。

将数据审核节点与数据源节点连接,右键单击执行,执行结束之后,右键点击查看统计视图。结果如下图:

从中可以看出每种分类变量的取值及每种取值的个数。比如,从这里我们可以看出药物字段一共包含五种取值,且出现最多的是Y药物。在这里目标变量为分类型,因此只能选择分类预测类模型,如决策树逻辑回归等。

5)预建模

接下来便是尝试建模,看看建模效果。

首先,从数据准备>列菜单下选择类型转换节点。由于性别、血压、胆固醇三个字段实际存储类型该是字符型,但这里是整型,因此为了便于以下分析,使用类型转换节点将它们的类型从整型转化为字符型。在数据挖掘过程汇总,一定要注意数据类型。配置如下:

其次,使用类型节点指定目标变量的角色,将药物的角色设为目标。

在进行模型构建的时候一定要确定字段的角色,给算法以明确的指示。

然后,选择分类预测节点,因为目标变量(药物)为分类型。此处我们重点学习决策树算法。节点连接如工作流所示,在决策树节点配置中选择目标变量药物。其中,决策树节点连接分区节点。决策树训练节点可以采用默认配置,无需修改配置,如下:

最后,使用评估节点评估模型的准确性,默认无需配置。评估结果:

从表3中可以看出,模型测试准确度为97.5%,误判2.5%。但是测试数据的错误率达到了15%。一般我们通过分区节点将数据分为训练数据和测试数据,这样做主要的目标是检测模型是否存在过度拟合,如果没有测试数据集,单独看模型的训练结果很好,但是这样的模型在实际中的适应性比较差。

恭喜你完成了一个简化的数据预建模过程。

从本模型看,预测的准确性比较高,,但是模型的应用结果不好,我们继续尝试,看是否还有优化的可能。

6)数据探索

数据探索最核心的一项工作就是探索输入变量与目标变量(自变量与因变量)的相关性。分析变量的相关性可以使用相关性计算,也可以使用图形分析,而后者直观常用。分析两个分类型变量可以使用条形图散点图或者直方图。分析两个数值型变量可以使用散点图。分析一个数值型变量和一个分类型变量可以使用直方图。分析两个字符型变量的关系可以使用条形图

选择交互条形图进行字符串字段的可视化探索。(节点在可视化探索>交互视图>交互条形图)。分类字段选择目标字段药物,颜色标记选择字符型的字段。通过观察条形图,我们来看药物与几个字段间的相关性。

通过分析,血压和药物字段有着强相关性,因为从图中可以看出使用药物B和药物A的人都是高血压(3表示高血压,2表示正常,1表示低血压),使用药物C的人都是正常,这种很明细的规律反映出两个字段间存在很强的相关关系,如下图所示:

同理,胆固醇和选择药物之间也有一定相关性,而性别和选择药物相关性不大,如下图所示:


接下来分析数值型字段的相关性,此时我们使用条形图。从图中可以看出血液中的钠和钾相关性很弱或者没有。从图形化的方式判断相关性强弱的方法就是看图形中的规律,规律越明显,相关性就越强,否则越弱。

就此图来说,散点图中的每一个点表示一个病例,而我们最想知道的还不是钠和钾的相关性,而是两者与药物的相关性,因为药物才是我们分析的目标。所以我们还想知道散点图中的每个病例使用的什么药物。可视化探索的核心是目标变量与输入变量的关系,所以探索不能够脱离目标变量。

因此,我们使用药物作为颜色区分,重新修正散点图。如下:

从图中可见,下三角区都是深蓝色,说明这部分病例使用的都是Y药物。这是很明显的规律,说明这里面有一种很强的关联。用数学的语言来描述,就是钠和钾的比例与药物有很强的相关性。因此,我们发现了一个很重要的变量就是钠和钾的比例。因此,我们可以派生一个变量:钠钾比。

7)优化输入

首先,使用派生字段节点或者Java代码段节点生成钠钾比字段。配置如下:

其次,使用过滤节点过滤钠和钾字段,尝试在不适用钠、钾字段,而引入钠钾比字段的,通过以上的可视化探索,性别与药物的相关性不强,也过滤掉。所以,配置如下:

过滤后预览数据如下(右键执行,执行完成后,右键查看数据表):

8)重新建模

模型整体评估如下:

我们点击决策树节点右键查看变量重要性视图。


结果如下所示:

从评估图中可看出,模型精度从原来的85%提升带了100%。当然实际中如果遇到预测精度为100%的情况一定就是错的。

下面我们再来解读一下得到的决策树模型,可以直观的了解决策树算法。如下图所示:

从整体来看,得此类病的人有大约一半的人(45%)选择服用了Y药物;

如果病人血液中钠和钾的比例大于14.8285,则选择服用Y药物,准确率为100%;

如果病人血液中钠和钾的比例不大于14.8285,若全部判成X药物准确率只有47.5%,因此再看病人的另外一个指标血压;

如果血压(其值有1、2和3)为2,则全部判为X药物,准确率为100%;

如果血压为1,全部判为C药物,准确率仅50%。再看另外一个指标胆固醇,若胆固醇的值为1,全部判为X药物,则准确率为100%。若胆固醇的值为2,全部判为C药物,则准确率为100%。

如果血压为3,全部判为A药物,则准确率仅56.8%。再看另外一个指标年龄,若年龄大于50.5岁,判为B药物,则准确率100%。若年龄不大于50.5岁,判为A药物,准确率为100%。

总结

第一,在建模中,应该注意过拟合问题。在商业中建模的目的是为了商业应用,因此不仅要保证模型的准确性,更要保证模型的稳定性。

第二,模型应用的核心是模型的风险控制。只有可以控制风险的模型才可以使用,否则不管理论模型建的多么漂亮都是没有实际意义的。

第三,数据挖掘的成果并不只是数学模型,数据挖掘也不等价于高级模型(如决策树神经网络等)。数据挖掘关键是实际应用与指导。

第四,数据挖掘的一个核心工作就是图形化探索,貌似很简单却又最为重要。因为这是数据挖掘思路的源泉。


数据分析咨询请扫描二维码

最新资讯
更多
客服在线
立即咨询