决策树方法在数据中的应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
定义研究对象
图中的根结点对应的是因变量。在根节点中血压已经分别被 分为3类:偏低、正常和偏高。我们现在要了解的是血压偏低、正常和 偏高的人都分别具有哪些特征。从图中可以看出: 研究对象中有18%的人(即66个人)血压偏低 研究对象中有60%的人(即217个人)血压正常 研究对象中有21%的人(即77个人)血压偏高
预测
现在我们已经有了一个可以用来作预测的模型。虽然用决策树 来做决策不是一个可以自动进行的过程,但KnowledgeSEEKER允许 我们将所有变量的分叉保存在外部文件中。此外,我们还可以用百 分比的形式计算出每一个分叉的重要性。使用上述信息,将使我们 有可能产生出有助于预测的规则。
理解模型
2、进入特定分叉 3、扩展模型树 以smoking为分叉变量构造的模型树目前还只有一层。我们可以 对这棵模型树作进一步扩展。在模型树的第二层中选择经常吸烟者相对 应的节点,然后,在Grow下拉菜单中选择Find Split,既可以看到如图 所示的屏幕。
理解模型
KnowledgeSEEKER发现对于描述经常吸烟者特征最为有效的分组 变量就是年龄。也就是说,对于经常吸烟的人而言,年龄将是确定其是 否患高血压的最关键的指标,数据表明年龄在63~73岁之间经常吸烟的 人当中有56.7%患有高血压,而年龄在32~51岁之间且经常吸烟的人当 中患有高血压的比例仅为4.8%。 为进一步描述经常吸烟者的特征,KnowledgeSEEKER总共发现了 6个分叉变量,分别是Age,Height,PorkLastWeek,DrinkPattern, Gender以及SaltConsumption。其中以年龄最为有效。
百度文库
建立模型
目前KnowledgeSEEKER已经构造出模型树的下一层分支。当然,模型树 还可以自动生成出多层分支。 图中的模型树的下一层分支表明上一层的双亲节点是按年龄(age)进行 分叉的。年龄只是影响血压的一个变量,但是在目前这个例子中,年龄似乎是 导致一个人的血压是否偏高的最重要因素。 如图所示,研究对象按年龄分为以下3组: 32~50岁,51~62岁,63~73岁 它们分别对应于模型树的三个叶节点。 此外,还可以用除Age以外的其他字段为模型树创建新的叶节点。在模型 树上通过指定其它字段以创建新的叶节点称为分叉。对于当前这个数据集,系 统会自动发现12个分叉。
理解模型
1、观察其分叉 观察其分叉将使我们可以看到除年龄以外对血压还有影响的其他重要 变量的作用。KnowledgeSEEKER可以计算出所有变量对血压影响的大小并 将使它们按顺序排列起来。用另一个变量直接在根节点下面构造叶节点即 可进入模型树的另一个分叉。这样,我们就可以很容易地观察到其他数据 元素对血压的影响。 对于自动生成的每一个分叉所作的概述将为我们考虑下一步的研究方 向提供有益的线索。很明显,上面所获得的信息中有一些符合我们的预先 估计。例如,一个人年龄越大,患高血压的可能性也就越高;一个人参加 体育活动越多,换高血压的可能性也就越低。这些都是我们预先估计到的。 然而,我们从数据集中也发现了一些预先没有估计到的结果,如人的身高 与其高血压之间的关系就是我们预先没有估计到的。
理解模型
4、强制分叉 有时我们还想观察一下那些没有自动发现的变量的作用。 例如,我们可能想知道PoultryLastWeek对人们患有高血压有什 么影响。为此,我们可以在模型树上作强制分叉。
理解模型
5、对模型进行验证 当我们从一个数据集中发现某些结果之后,总是希望能够 用另外一个数据计再对其进行验证。Angoss将那些用于验证的数 据集又称为测试分区(Test Partition)。 KnowledgeSEEKER允许我们用另一个数据集(即测试分区) 对新发现的结果进行验证。
决策树方法在数据挖掘中的应用
KnowledgeSEEKER简介
KnowledgeSEEKER是一个由Angoss公司开发的基于决策树的数据分 析程序。该程序具有相当完整的分类树分析功能。 KnowledgeSEEKER采用了两种著名的决策树分析算法:CHAID和CART 算法。CHAID算法可以用来对于分类性数据进行挖掘。CART算法则可以对 连续型因变量进行处理。Angoss公司在增强这些算法的用户友好性方面作 了大量的工作。 优点:响应快,模型,文档易于理解,决策树分析直观,性能良好 缺点:决策树不能编辑打印,缺乏数据预处理阶段的函数,没有示例代码 应用行业案例: Frost National银行CRM收益率、客户满意度、产品功效 SASI公司利用其开发行业数据挖掘应用软件(零售行业) Montreal银行客户分片、越区销售模型、市场站的准备、抵押支付的预测、 信用风险的分析
理解模型
6、重新定义挖掘对象 前面所作的演示都是有关“高血压”这一研究对象的,即都是以 Hypertension为模型树的因变量。假如我们想要改变所研究的内容(例如, 想要研究饮酒数量不同的人之间的差别),那么就需要重新定义研究对象。 改变模型树的根节点为DrinkPattern,即新的模型树的根节点对应的 因变量为DrinkPattern,其中可以含有下列值: Regular(经常饮酒) Occasional(偶然饮酒) Former(以前曾经饮酒) Never(从不饮酒) 同前面一样,可以对这棵以DrinkPattern为因变量的模型树作进一步 的扩展。虽然这期间使用KnowledgeSEEKER的工作方式与前面是一样的, 但所要研究的内容与前面完全不同了。即现在要研究的是人们的饮酒方式 及其影响,而前面的研究对象是高血压。
理解模型
7、模型树的自动扩展 前面所演示的都是如何一个一个节点地扩展模型树。此外,还可 以让系统对模型树作自动扩展。 8、数据分布 KnowledgeSEEKER提供了若干种方法以便我们能够对正在挖掘的 数据的状态进行观察。首先,我们能够通过KnowledgeSEEKER对正在 挖掘的原始数据进行详细观察。 另外,还可以通过KnowledgeSEEKER对数据几种不同数据项的交 叉列表视图进行观察。
数据准备
使用的样例数据集是从一个团体健康检查中有关高血压 的研究项目中得到的。Angoss公司已将这一数据集包括在产品演 示中。 有关高血压研究方面的数据(表中给出数据集中各个数据列 的取值范围及其含义说明)
数据准备
数据预处理: 需要标注的区域: Hypertension域中可以出现整数值1,2,3,这几个值将分别被标 注为低,正常,高。 TypeOfMilk域中包含整数值1~5,将分别标注为纯牛奶、2%,脱 脂牛奶,奶粉及根本不喝牛奶 处理导出型的数据域 字段Age中包含的值1,2,3分别表示32~50岁、51~62岁及63~73 岁。然而,字段Age中通常包含的都是某个人的实际年龄而非整数 值1,2,3,因此,字段Age中的值是在数据挖掘开始之前就已经 导出了,即按照实际年龄的范围32~50岁、51~62岁及63~73岁对 该字段选择适当的值。
定义研究对象
1、定义挖掘目标 在开始使用KnowledgeSEEKER之前,有必要定义出挖掘的目标。在 给定的数据集的例子中展示了哪些饮食因素会对人的血压高低有关键 性的影响。其挖掘的目标可以明确地描述为: 分析出饮食因素对血压偏低、正常及偏高所产生的影响。
定义研究对象
2、启动
定义研究对象
3、设置因变量 一开始,字段Hypertension就已经被自动设置为因变量。稍后, 还将改变因变量的设置。打开bpress数据集之后将出现如图所示的屏幕