决策树处理医疗数据
一、目标
将所给医疗数据进行预处理,根据病人的四个属性——性别、年龄、病程及术中责任血管,对其与即刻面抽之间的联系进行分析。利用决策树分类方法编程实现数据的分类并绘图。
二、算法思想
在数据预处理中进行如下处理:
性别(gender):F为1,M为2。年龄(age):0-40岁为1,40-50岁为2,50-60岁为3,60-70岁为4。病程(course):0-3年为1,3-6年为2,6-9年为3,9-12年为4,12年以上为5。术中责任血管(vessel):AICA为 1,PICA为2,AICA、PICA为3,AICA、VA为4,PICA、CA为5,其余为0。是否即刻面抽:是为1,否为0。
在决策树 ID3 算法中,通过求概率进而求信息熵,通过求信息熵进而求信息增益,以信息增益为标准挑选信息增益最大的因素作为节点。在创建树的过程中进行遍历,如果类别完全相同则停止划分,如果遍历完所有特征值则选取出现次数最多的类标签。最后以字典类型输出数据。
在决策树绘图中,首先计算出树中叶子节点的个数和树的深度,然后对节点和节点间部分的绘制分别进行函数定义。最后在整个决策树的绘制过程中,利用深度和叶子节点个数对图像区域进行划分,以防止出现绘图中节点过密的情况产生。
三、核心代码
1、决策树算法
1 | import operator |
2、决策树绘制
1 | import matplotlib.pyplot as plt |
四、结果图像
决策树
绘制后决策树